React Native for Arcgis 地图开发GeoprocessingCtrl(十八)

针对GP相关调用的封装
```javascript
import React, {memo} from 'react';
import {ScrollView, Text} from 'react-native';
// import HTMLView from 'react-native-htmlview';
import {List} from '@ant-design/react-native';
const Code = () => {
return (


{
`import React, {useState, useEffect} from 'react';
import {View, Text, ScrollView, StyleSheet} from 'react-native';
import {Button, List, Switch} from '@ant-design/react-native';
import {GeoprocessingCtrl, LayerManager, MapManager, MapView} from '@haibalai/react-native-arcgis';
import {connect} from 'react-redux';
import WidthDrawer from '../../../../components/WithDrawer/index';
import {Colors} from 'react-native/Libraries/NewAppScreen';
const MapId = 'baseMap';
const GraphicLayerId = 'graphic点';
const MapImageLayerId = '水闸-MapImageLayer';
const FeatureLayerId = '水闸-featurelayer';
const MapImageLayerIds = [
'水闸-MapImageLayer',
'原水管线-MapImageLayer',
'海堤-MapImageLayer',
'海洋环境区划-MapImageLayer',
];
const FeatureLayerIds = [
'水闸-featurelayer',
'原水管线-featurelayer',
'原水管线-featurelayer',
'海洋环境区划-featurelayer',
];
const GraphicLayerIds = ['graphic点', 'graphic线', 'graphic面'];
const GeoX = 1.2664272368526626e7;
const GeoY = 2595847.2157473154;
const Geo4490X = 113.78868474700005;
const Geo4490Y = 22.693641836999973;
const paramsStr =
'{"input":{"spatialReference":{"wkid":3857},"geometryType":"esriGeometryPoint","features":[{"geometry":{"spatialReference":{"wkid":3857},"x":12679332.138,"y":2581655.568},"attributes":{"FID":1,"id":1}}],"exceededTransferLimit":null}}';
const gpUrl =
'';
/** sideBar组件
*

  • @param {*} renderCb renderCb是一个函数, 每次触发并且向里面传值(对象),content组件就以sideBarData的属性去接受
    */
    const SideBar = ({renderCb, Home}: any) => {
    const [content, changeContent] = useState('');
    const [errorContent, changeErrorContent] = useState('');
    const [singleMapImageLayerStatus, setSingleMapImageLayerStatus] = useState(false);
    const [multiMapImageLayerStatus, setMultiMapImageLayerStatus] = useState(false);
    const [singleFeatureLayerStatus, setSingleFeatureStatus] = useState(false);
    const [multiFeatureLayerStatus, setMultiFeatureLayerStatus] = useState(false);
    const [singleGraphicLayerStatus, setSingleGraphicLayerStatus] = useState(false);
    const [multiGraphicLayerStatus, setMultiGraphicLayerStatus] = useState(false);
    useEffect(() => {
    renderCb({content, errorContent});
    }, [content, errorContent, renderCb]);
    const getGeoX = () => {
    let coordinate = Home.coordinate;
    if (coordinate === '4490') {
    return Geo4490X;
    } else {
    return GeoX;
    }
    };
    const getGeoY = () => {
    let coordinate = Home.coordinate;
    if (coordinate === '4490') {
    return Geo4490Y;
    } else {
    return GeoY;
    }
    };
    const onSwitchSingleMapImageLayer = (e: boolean) => {
    if (e) {
    LayerManager.showLayer(MapId, MapImageLayerId);
    } else {
    LayerManager.hideLayer(MapId, MapImageLayerId);
    }
    setSingleMapImageLayerStatus(e);
    };
    const onSwitchMultiMapImageLayer = (e: boolean) => {
    if (e) {
    LayerManager.showLayers(MapId, MapImageLayerIds);
    } else {
    LayerManager.hideLayers(MapId, MapImageLayerIds);
    }
    setMultiMapImageLayerStatus(e);
    };
    const onSwitchSingleFeatureLayer = (e: boolean) => {
    if (e) {
    LayerManager.showLayer(MapId, FeatureLayerId);
    } else {
    LayerManager.hideLayer(MapId, FeatureLayerId);
    }
    setSingleFeatureStatus(e);
    };
    const onSwitchMultiFeatureLayer = (e: boolean) => {
    if (e) {
    LayerManager.showLayers(MapId, FeatureLayerIds);
    } else {
    LayerManager.hideLayers(MapId, FeatureLayerIds);
    }
    setMultiFeatureLayerStatus(e);
    };
    const onSwitchSingleGraphicLayer = (e: boolean) => {

 

posted @ 2022-11-23 16:41  haibalai  阅读(25)  评论(0编辑  收藏  举报