@vtx/map 1.1.48 → 1.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/VtxMap/AMap/AMap.js +6 -8
- package/lib/VtxMap/AMap/AMap.js.map +1 -1
- package/lib/VtxMap/BMap/Map.js +5 -8
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/GMap/Map.js +5 -7
- package/lib/VtxMap/GMap/Map.js.map +1 -1
- package/lib/VtxMap/OMap/Map.js +5 -7
- package/lib/VtxMap/OMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +38 -39
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/TMap/TMap.js +5 -7
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxMap/optimizingPointMap.js +2 -2
- package/lib/VtxMap/optimizingPointMap.js.map +1 -1
- package/lib/VtxMap/zoomMap.js +2 -2
- package/lib/VtxMap/zoomMap.js.map +1 -1
- package/lib/VtxModal/VtxModal.js +2 -2
- package/lib/VtxModal/VtxModal.js.map +1 -1
- package/lib/VtxModal/draggableModal.js +2 -2
- package/lib/VtxModal/draggableModal.js.map +1 -1
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +2 -2
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.js +5 -4
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_MapToolFunction","_immutable","_default2","obj","__esModule","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","_typeof","constructor","prototype","ownKeys","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","toString","slice","name","from","test","iter","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","_inherits","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","Set","Immutable","ArcgisMap","_React$Component","_super","_this","grwkid","wkid","isNaN","parseInt","wkidStr","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editToolbarC","editId","canMoveLabel","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","loadMapJs","loadMapComplete","Promise","resolve","reject","window","GMap","$","getScript","concat","configUrl","arcgisServerURL","Heatmap","mapServerURL","PointCollection","all","then","Map","attr","rel","type","href","appendTo","init","_this2","createMap","initData","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","_t$props2","boundaryName","heatMapData","customizedBoundary","_t$state","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","addPointCollection","setAreaRestriction","setState","event","changeLabel","cmids","map","item","id","position","getGraphic","geometry","tl","toScreen","height","width","html","css","top","offset","left","add","indexOf","append","remove","czIndex","getNode","rangingToolFun","status","lnlt","mapPoint","getDistance","longitude","latitude","paths","distext","Math","round","random","markerContent","config","markerContentX","markerContentY","color","lineWidth","lineType","updateLine","enableDoubleClickZoom","rangkey","Date","getTime","end","index","removeGraphic","lnglats","on","rp","getGraphicParam","attributes","other","rcontent","sl","pellucidity","updatePoint","clickMap","dragMapStart","dragMapEnd","delta","changeDiv","moveStart","moveEnd","dealClusterPoint","updatePointCollection","eval","replace","draw","dealAreaRestriction","zoomStart","display","isHideHeatMap","hide","zoomEnd","show","getScale","coefficient","pow","floor","gs","toldis","isCent","scaleW","children","graphics","graphic","gid","setVisiblePoints","fitView","ids","clickGraphic","ls","ps","mouseOverGraphic","mouseOutGraphic","setCenter","mapCenter","_t$props3","minZoom","maxZoom","mapServer","options","zoom","center","VtxMap","fullExtent","xmin","ymin","xmax","ymax","autoResize","logo","isKeyboardNavigation","showAttribution","backgroundColor","extent","esri","Extent","spatialReference","onModalResize","resize","reposition","addMapLayers","removeAllLayers","services","servs","im","url","basemap","layers","gisServer","tileInfo","TileInfo","format","SpatialReference","origin","lods","tileExtent","inTileExtent","initialExtent","layerInfo","WMTSLayerInfo","identifier","layer","tileMatrixSet","tilematrixset","style","resourceInfo","version","layerInfos","copyright","serviceMode","wmtsLayer","WMTSLayer","UrlTemplate","substring","console","warn","defaultWmtsMapLayers","dtileInfo","dtileExtent","dinTileExtent","dlayerInfo","dresourceInfo","doptions","substr","j","addLayer","_this3","psids","isRepetition","cg","labelContent","labelPixelX","labelPixelY","BAnimationType","deg","Point","marker","label","markerSymbol","symbol","PictureMarkerSymbol","setOffset","Graphic","setAngle","canShowLabel","labelClass","split","join","zIndex","pointAnimation","dealLabelGraphics","setGraphic","setGraphicParam","geometryType","_this4","gc","setUrl","setWidth","setHeight","isAnimation","moveTo","animationDelay","autoRotation","urlleft","setGeometry","_extent","update","_parts","refresh","moveAnimation","lsids","isHidden","linePath","Polyline","SimpleLineSymbol","STYLE_SOLID","STYLE_DASH","Color","a","lineSymbol","removePath","addPath","_t$dealData","dealData","setColor","setStyle","pgsids","rings","lineColor","lineOpacity","polygonPath","Polygon","lineStyle","polygonSymbol","SimpleFillSymbol","setOutline","polygonColor","updatePolygon","removeRing","addRing","_t$dealData2","outline","ccsids","parseFloat","Circle","radius","circleSymbol","circleColor","updateCircle","setSymbol","data","d","lng","lat","size","shape","VotexpointCollection","GMapLib","ds","ind","reDraw","clearPointCollection","clear","clearAllPointCollection","max","visible","opacity","HeatmapOverlay","initialize","option","gradient","setOptions","setDataSet","param","clientY","clientX","getMapExtent","clickLngLat","pixel","screenPoint","gt","c","getCenter","centerAt","setZoomLevel","z","getZoom","setZoom","ary","g","_t$dealData3","dealExtendBounds","ext","setExtent","getCurrentCenter","geographicExtent","getZoomLevel","getLevel","_t$state$gis$extent","gp","gg","pts","mapLayer","area","PI","nowBounds","_getAvailExtent","southWest","northEast","nowCenter","mapSize","calculatePointsDistance","vtxRangingTool","disableDoubleClickZoom","splice","clearAll","_t$state2","pgs","cs","location","w","h","sliderShow","doEdit","toolbars","Edit","eid","gcparam","editGraphicChange","calculateDistance","circleCenter","circleEditPXY","cgc","deactivate","activate","MOVE","EDIT_VERTICES","endEdit","Draw","drawTime","showTooltips","closeDraw","parameter","_t$dealData4","lnglatAry","rs","pop","_t$dealData5","sqrt","drawEnd","cursor","fillSymbol","setMarkerSymbol","dColor","setFillSymbol","setRespectDrawingVertexOrder","POINT","POLYLINE","setLineSymbol","POLYGON","CIRCLE","RECTANGLE","finishDrawing","clusterToolFunction","graphicText","isCluster","newCluster","warning","contains","createCluster","markers","isreal","addClusterPoint","m","text","TextSymbol","bound","ne","sw","pixelNe","pixelSw","newNe","toMap","newSw","markerList","_t$dealData6","_et","clearAreaRestriction","_t$areaRestriction","xmin1","xmax1","ymin1","ymax1","_e$extent","xmin2","xmax2","ymin2","ymax2","containsExtent","e1","e2","equalsPoint","b","fp","ep","totalDistance","path","lngX","latX","lbl","clearInterval","setInterval","yoffset","now","start","notation","xoffset","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","ddeg","_graphicsLayer","tx","ty","lglt","setLatitude","setLongitude","lnglat","delay","urlright","timer","count","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","createElement","componentDidMount","componentWillReceiveProps","nextProps","_this5","_t$state3","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","_t$dataMatch","oldMapPoints","newMapPoints","_t$dataMatch2","_t$dealAdd","_t$dealUpdate","_iterator","_step","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd2","_t$dealUpdate2","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd3","_t$dealUpdate3","_iterator3","_step3","oldMapLines","newMapLines","_t$dataMatch5","_t$dealAdd4","_t$dealUpdate4","_iterator4","_step4","_t$dataMatch6","_iterator5","_step5","clearTimeout","setTimeout","componentWillUnmount","React","Component","_default","exports","module"],"sources":["VtxMap/GMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport {\r\n graphicManage,defaultWmtsMapLayers,getPixelDistance,getDistance,getPolygonArea\r\n} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nconst {Set} = Immutable;\r\nclass ArcgisMap extends React.Component{ \r\n constructor(props){ \r\n super(props);\r\n this.grwkid = 4326;//wkid 坐标系对应,全局使用.\r\n this.wkid = (isNaN(parseInt(props.wkid))?props.wkid:parseInt(props.wkid)) || 4326;//wkid 坐标系对应,全局使用.\r\n this.wkidStr = isNaN(parseInt(props.wkid))?'wkt':'wkid';\r\n this.zIndexGraphics = [];//需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points';//html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\r\n this.Label = {};//所有label 集合\r\n this.labelLayer = {x: 0,y: 0};//label图层 位置管理\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.loadTimer = null;//初始化地图 load时延缓数据处理\r\n this.animTimer = {};//点位跳动动画 定时集合\r\n this.animCount = {};//点位跳动动画 定时计数\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.drawToolbar = null;//绘制对象\r\n this.drawParam = {};//缓存 绘制的数据\r\n this.editToolbar = null;//编辑对象\r\n this.editToolbarC = null;//编辑对象\r\n this.editId = '';//当前编辑的图元id\r\n this.canMoveLabel = false;//编辑点时,label跟着移动开关\r\n //当前鼠标的经纬度,便捷含label点时刷新 \r\n //x,y鼠标坐标 px,py鼠标与点中心偏移坐标 isCount是否计算偏移\r\n this.mouseNowPosition = {x:0,y:0,px:0,py:0,isCount:false};\r\n this.heatmap = null;//热力图对象\r\n this.clusterMarkers = [];//聚合点位id数组\r\n this.clusterPs = [];//聚合集合点\r\n this.clusterPt = [];//地图中聚合点集合\r\n this.morepoints = [];//海量点集合\r\n this.areaRestriction = null;//区域限制数据\r\n this.movePoints = [];\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false,//是否开启状态\r\n line: {},//线\r\n points: [],//点\r\n distance: 0,//测距长度\r\n mapRangingTool: null//测距回调\r\n };\r\n this.rangingTools = {};//测距点线缓存\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n // editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n }\r\n this.loadMapJs();\r\n }\r\n //加载地图信息\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.GMap){\r\n resolve(window.GMap);\r\n }\r\n else{\r\n //加载 js\r\n // $.getScript('http://222.92.212.126:25048/gis/html/js/arcgis_js_api/library/3.9/3.9/init.js',()=>{\r\n $.getScript(`${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/init.js`,()=>{\r\n let Heatmap = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/gisheatmap.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n let PointCollection = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([Heatmap,PointCollection]).then(()=>{\r\n //require是关键字 这边用window区别\r\n window.require([ \r\n \"esri/map\", \"esri/layers/ArcGISTiledMapServiceLayer\", \"dojo/on\",\r\n 'esri/geometry/Point','esri/symbols/SimpleMarkerSymbol',\"esri/Color\",\r\n \"esri/graphic\",\"esri/domUtils\",\"esri/toolbars/edit\",\"esri/symbols/PictureMarkerSymbol\",\r\n \"esri/symbols/TextSymbol\",\"esri/symbols/SimpleLineSymbol\",\"esri/toolbars/draw\",\r\n \"esri/layers/WMTSLayer\",\"esri/geometry/Extent\",\"esri/layers/WMTSLayerInfo\",\r\n \"esri/geometry/Polyline\",\"esri/symbols/SimpleFillSymbol\",\"esri/geometry/Circle\",\r\n \"esri/layers/TileInfo\", \"esri/SpatialReference\",\"esri/dijit/BasemapToggle\",\r\n ], function(Map) {\r\n window.GMap = Map;\r\n resolve(window.GMap);\r\n });\r\n })\r\n });\r\n //加载 css\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/themes/tundra/tundra.css`}).appendTo(\"head\");\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/esri/css/esri.css`}).appendTo(\"head\");\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n // 处理数据(整合)\r\n let initData = ()=>{\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction\r\n } = t.props;\r\n let {boundaryName,heatMapData,customizedBoundary} = t.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = t.state;\r\n //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if(t.props.showControl){\r\n t.showControl();\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\r\n }\r\n //添加海量点\r\n if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n t.setState({\r\n mapCreated:true\r\n })\r\n }\r\n //事件监听\r\n let event = ()=>{\r\n //html点位 根据地图移动和zoom计算位置\r\n let changeLabel = ()=>{\r\n for(let i in t.Label){\r\n let cmids = t.clusterMarkers.map((item)=>item.id);\r\n if(t.Label[i]){\r\n let position = t.GM.getGraphic(i).geometry;\r\n let tl = t.state.gis.toScreen(position);\r\n // let tl = t.state.gis.toScreen(t.Label[i].position);\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n t.Label[i].html.css({\r\n position: 'absolute',\r\n top: tl.y + t.Label[i].offset.y - t.labelLayer.y,\r\n left: tl.x + t.Label[i].offset.x - t.labelLayer.x\r\n });\r\n if(!t.Label[i].add && cmids.indexOf(i) == -1){\r\n $(`#${t.htmlPointsId}`).append(t.Label[i].html);\r\n t.Label[i].add = true;\r\n }\r\n }else{\r\n if(t.Label[i].add && cmids.indexOf(i) == -1){\r\n t.Label[i].html.remove();\r\n t.Label[i].add = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n let czIndex = ()=>{\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(t.zIndexGraphics[i]).getNode());\r\n }\r\n }\r\n /*测距功能*/\r\n let rangingToolFun = (e,status)=>{\r\n if(t.rangingTool.isRanging){\r\n //测距开始\r\n //点击位置\r\n let lnlt = [e.mapPoint.x,e.mapPoint.y];\r\n //2个点以上 计算长度\r\n if(t.rangingTool.points.length > 0){\r\n t.rangingTool.distance += getDistance(lnlt,\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n }else{\r\n t.rangingTool.line.paths = [];\r\n }\r\n t.rangingTool.line.paths.push([...lnlt]);\r\n //处理距离展示\r\n let distext = t.rangingTool.distance > 0\r\n ?(t.rangingTool.distance > 1000\r\n ?`总长:${Math.round(t.rangingTool.distance/10)/100}公里`:`总长:${t.rangingTool.distance}米`)\r\n :'起点';\r\n //加点\r\n let point = {\r\n id: t.rangingTool.points.length + 'vtx_g_rang_p'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div style='z-index:1;'>\r\n <div class='vtx-g-rangingPoint'></div>\r\n <div class='vtx-g-rangingDistance'>${distext}</div>\r\n </div>\r\n `,\r\n config: {\r\n width:130,\r\n height:30,\r\n markerContentX: -5.5,\r\n markerContentY: -12.5,\r\n }\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([point]);\r\n //缓存点信息\r\n t.rangingTool.points.push(point);\r\n if(t.rangingTool.line.paths.length == 2){\r\n //加线\r\n t.rangingTool.line = {\r\n id: 'vtx_g_rang_line'+Math.random(),\r\n paths: [...t.rangingTool.line.paths],\r\n config:{\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid'\r\n }\r\n }\r\n t.addLine([t.rangingTool.line]);\r\n }else if(t.rangingTool.line.paths.length > 2){\r\n t.updateLine([{\r\n ...t.rangingTool.line,\r\n paths: [...t.rangingTool.line.paths]\r\n }]);\r\n }\r\n //双击 测距结束\r\n if(status == 'dbl'){\r\n //开启双击缩放功能\r\n t.state.gis.enableDoubleClickZoom();\r\n let rangkey = new Date().getTime()+Math.random();\r\n //加结束点\r\n let end = {\r\n id: 'vtx_g_rang_end'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div>\r\n <div class='vtx-g-rang-exit'>x</div>\r\n </div>\r\n `,\r\n config: {\r\n width:13,\r\n height:13,\r\n markerContentX: -20,\r\n markerContentY: -20,\r\n },\r\n index: rangkey\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([end]);\r\n //删除提示框 \r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n t.removeGraphic('vtx-g-rang-showRangTool-line','line');\r\n //缓存当前这一条测距数据\r\n t.rangingTools[rangkey] = {...t.rangingTool};\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n })\r\n }\r\n t.rangingTool.isRanging = false;\r\n t.rangingTool = {\r\n ...t.rangingTool,\r\n isRanging: false,//是否开启状态\r\n line: {},//线缓存\r\n points: [],//点\r\n distance: 0//测距长度\r\n }\r\n }\r\n }\r\n }\r\n //地图鼠标移入事件\r\n t.state.gis.on('mouse-over',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n let rp = {\r\n id: 'vtx-g-rang-showRangTool',\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: `\r\n <div class='vtx-g-rang-showRangTool'>单击确定起点</div>\r\n `,\r\n config: {\r\n markerContentX: 20,\r\n markerContentY: 20\r\n }\r\n }\r\n t.addPoint([rp]);\r\n }\r\n });\r\n //地图鼠标移出事件\r\n t.state.gis.on('mouse-out',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n }\r\n });\r\n //地图鼠标移动事件\r\n t.state.gis.on('mouse-move',(e)=>{\r\n //鼠标移动地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n //获取测距提示点位\r\n let rp = {...t.GM.getGraphicParam('vtx-g-rang-showRangTool').attributes};\r\n //删除多余数据,避免other层级太多\r\n delete rp.other;\r\n let rcontent = rp.markerContent;\r\n if(t.rangingTool.points.length > 0){\r\n let distance = getDistance(\r\n [e.mapPoint.x,e.mapPoint.y],\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n // 实时计算距离\r\n distance += t.rangingTool.distance;\r\n let distext = distance > 1000\r\n ?`总长:${Math.round(distance/10)/100}公里`:`总长:${distance}米`;\r\n rcontent = `\r\n <div class='vtx-g-rang-showRangTool'>\r\n <div>${distext}</div>\r\n <div>单击确定地点,双击结束</div>\r\n </div>\r\n `;\r\n //测距移动的线\r\n let sl = {\r\n id: 'vtx-g-rang-showRangTool-line',\r\n paths: [\r\n [ t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude\r\n ],\r\n [e.mapPoint.x,e.mapPoint.y]\r\n ],\r\n config: {\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid',\r\n pellucidity: 0.5\r\n }\r\n };\r\n if(!t.GM.getGraphic('vtx-g-rang-showRangTool-line')){\r\n t.addLine([sl]);\r\n }else{\r\n t.updateLine([sl]);\r\n }\r\n }\r\n rp = {\r\n ...rp,\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: rcontent\r\n }\r\n t.updatePoint([rp]);\r\n }\r\n //编辑移动\r\n if(t.editId && t.canMoveLabel){\r\n t.mouseNowPosition = {\r\n ...t.mouseNowPosition,\r\n x: e.mapPoint.x,\r\n y: e.mapPoint.y\r\n };\r\n }\r\n });\r\n //地图双击事件\r\n t.state.gis.on('dbl-click',(e)=>{\r\n /*测距功能*/\r\n rangingToolFun(e,'dbl');\r\n })\r\n //地图点击事件\r\n t.state.gis.on('click',(e)=>{\r\n let t = this;\r\n /*测距功能*/\r\n rangingToolFun(e);\r\n //地图点击事件\r\n t.clickMap(e);\r\n });\r\n //鼠标拖拽开始事件\r\n t.state.gis.on('mouse-drag-start',(e)=>{\r\n t.dragMapStart(e);\r\n });\r\n //鼠标拖拽结束事件\r\n t.state.gis.on('mouse-drag-end',(e)=>{\r\n t.dragMapEnd(e);\r\n });\r\n //1.地图移动事件\r\n t.state.gis.on('pan',(e)=>{\r\n //切换html图层位置\r\n $(`#${t.htmlPointsId}`).css({\r\n top: t.labelLayer.y + e.delta.y,\r\n left: t.labelLayer.x + e.delta.x\r\n });\r\n $(`#${t.pointCollectionId}`).css({\r\n top: e.delta.y,\r\n left: e.delta.x\r\n });\r\n \r\n if(t.heatmap){\r\n t.heatmap.changeDiv(e.delta.y,e.delta.x);\r\n }\r\n });\r\n //地图拖动开始\r\n t.state.gis.on('pan-start',(e)=>{\r\n t.moveStart(e);\r\n });\r\n //地图拖动结束\r\n t.state.gis.on('pan-end',(e)=>{\r\n t.moveEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n $(`#${t.pointCollectionId}`).css({\r\n top: 0,\r\n left: 0\r\n });\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //记录html图层位置\r\n t.labelLayer = {\r\n x: eval($(`#${t.htmlPointsId}`).css('left').replace('px','')),\r\n y: eval($(`#${t.htmlPointsId}`).css('top').replace('px',''))\r\n }\r\n //html点位 根据地图移动和zoom计算位置\r\n changeLabel();\r\n //热力图重绘\r\n if(t.heatmap){\r\n t.heatmap.draw();\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //处理区域限制逻辑\r\n if(t.areaRestriction){\r\n t.dealAreaRestriction(e);\r\n }\r\n });\r\n // 地图zoom开始\r\n t.state.gis.on('zoom-start',(e)=>{\r\n t.zoomStart(e);\r\n //隐藏label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'none'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.hide();\r\n }\r\n });\r\n // 地图zoom结束\r\n t.state.gis.on('zoom-end',(e)=>{\r\n t.zoomEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n //显示label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'inline-block'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\r\n //刷新label点位位置\r\n changeLabel();\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.show();\r\n t.heatmap.draw();\r\n }\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //重新计算比例尺\r\n if($(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n //计算比例尺数值和长度\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({width: scaleW-2});\r\n $($(`#${t.props.mapId}_zoom_slider_show`).children()[0]).html(toldis);\r\n }\r\n });\r\n //2.图元事件\r\n //图元点击事件\r\n t.state.gis.graphics.on('click',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n t.setVisiblePoints({fitView: e.graphic.attributes.ids});\r\n return false;\r\n }\r\n t.clickGraphic(gid,e);\r\n if(typeof(e.graphic.attributes) == 'object'){\r\n //点击图元的id\r\n //判断是否点击的测距关闭点位\r\n if(gid && gid.indexOf('vtx_g_rang_end') > -1){\r\n let index = t.GM.getGraphicParam(gid).attributes.index;\r\n let ls = t.rangingTools[index].line,\r\n ps = t.rangingTools[index].points;\r\n //删除测距线\r\n t.removeGraphic(ls.id,'line');\r\n //删除关闭点\r\n t.removeGraphic(gid,'point');\r\n //删除中间点\r\n for(let i = 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i].id,'point');\r\n }\r\n //清除测距数据缓存\r\n delete t.rangingTools[index];\r\n }\r\n }\r\n })\r\n //图元鼠标移入事件\r\n t.state.gis.graphics.on('mouse-over',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOverGraphic(gid,e);\r\n });\r\n //图元鼠标移除事件\r\n t.state.gis.graphics.on('mouse-out',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOutGraphic(gid,e);\r\n });\r\n }\r\n //graphics对象存在 直接处理数据,不存在 通过load事件等待\r\n if(t.state.gis.graphics){\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n }\r\n t.state.gis.on('load',()=>{\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n });\r\n }\r\n //创建地图 1.gis服务 需要load 2.wmts wms等服务无需load\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapId,mapZoomLevel,minZoom,maxZoom,mapServer} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [120.404,30.915]\r\n };\r\n if(minZoom){\r\n options.minZoom = parseInt(minZoom);\r\n }\r\n if(maxZoom){\r\n options.maxZoom = parseInt(maxZoom);\r\n }\r\n if(!window.VtxMap){\r\n window.VtxMap = {};\r\n }\r\n let fullExtent = (mapServer || {}).fullExtent || {\r\n xmin : -180.0,ymin : -90.0,xmax : 180.0,ymax : 90.0\r\n };\r\n let map = window.VtxMap[mapId] = t.state.gis = new GMap(t.props.mapId.toString(),{\r\n autoResize: true,\r\n logo : false,\r\n isKeyboardNavigation : false,\r\n showAttribution:true,\r\n backgroundColor: '#f1f1f1',\r\n extent: new esri.geometry.Extent({\r\n ...fullExtent,\r\n spatialReference:{[t.wkidStr]:t.wkid}\r\n }),\r\n ...options\r\n });\r\n window.onModalResize = ()=>{\r\n map.resize(true);\r\n map.reposition();\r\n }\r\n t.addMapLayers(mapServer);\r\n t.htmlPointsId = `${mapId}_${t.htmlPointsId}`;\r\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\r\n }\r\n //处理图层\r\n addMapLayers(mapServer = {}){\r\n let t = this;\r\n //清除所有图层服务\r\n t.state.gis.removeAllLayers();\r\n let services = [...(mapServer.services || [])],\r\n servs = [];\r\n for(let im = 0; im < services.length ; im++){\r\n let url = services[im].url;\r\n //从新加载图层\r\n switch(services[im].type){\r\n case 'gis':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let basemap = new esri.layers[services[im].gisServer || 'ArcGISTiledMapServiceLayer'](url[i]);\r\n servs.push(basemap);\r\n }\r\n break;\r\n case 'wmts':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let tileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n \"format\": services[im].format || \"format/png\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": mapServer.origin || {x : -180,y : 90},\r\n \"lods\": mapServer.lods || []\r\n });\r\n let tileExtent = new esri.geometry.Extent(mapServer.fullExtent.xmin, mapServer.fullExtent.ymin, mapServer.fullExtent.xmax, mapServer.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let inTileExtent = new esri.geometry.Extent(mapServer.initialExtent.xmin, mapServer.initialExtent.ymin, mapServer.initialExtent.xmax, mapServer.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let layerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: tileInfo,\r\n fullExtent: tileExtent,\r\n initialExtent: inTileExtent,\r\n identifier: (services[im].layer || {})[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: services[im].tilematrixset || \"31.25m\",\r\n format: services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let resourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [layerInfo],\r\n copyright: ''\r\n };\r\n let options = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: resourceInfo,\r\n layerInfo: layerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], options);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(wmtsLayer.UrlTemplate.substring(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT'),\r\n wmtsLayer.UrlTemplate.indexOf('&TILEMATRIXSET')\r\n ),`&FORMAT=${services[im].format || 'format/png'}`);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n break;\r\n }\r\n }\r\n if(services.length <= 0){\r\n console.warn('!warning 图层服务必选,或图层类型暂不支持,默认天地图浙江地理wmts图层服务!');\r\n for(let im = 0; im < defaultWmtsMapLayers.services.length ; im++){\r\n let url = defaultWmtsMapLayers.services[im].url;\r\n let dtileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n // \"format\": \"tiles\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": defaultWmtsMapLayers.origin || {x : -180,y : 90},\r\n \"lods\": defaultWmtsMapLayers.lods || []\r\n });\r\n let dtileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.fullExtent.xmin, defaultWmtsMapLayers.fullExtent.ymin, defaultWmtsMapLayers.fullExtent.xmax, defaultWmtsMapLayers.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let dinTileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.initialExtent.xmin, defaultWmtsMapLayers.initialExtent.ymin, defaultWmtsMapLayers.initialExtent.xmax, defaultWmtsMapLayers.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n for(let i = 0 ; i < url.length ; i++){\r\n let dlayerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: dtileInfo,\r\n fullExtent: dtileExtent,\r\n initialExtent: dinTileExtent,\r\n identifier: defaultWmtsMapLayers.services[im].layer[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: defaultWmtsMapLayers.services[im].tilematrixset || \"31.25m\",\r\n format: defaultWmtsMapLayers.services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let dresourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [dlayerInfo],\r\n copyright: ''\r\n };\r\n let doptions = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: dresourceInfo,\r\n layerInfo: dlayerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], doptions);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(\r\n wmtsLayer.UrlTemplate.substr(wmtsLayer.UrlTemplate.indexOf('&FORMAT='),\r\n wmtsLayer.UrlTemplate.substr(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT=')+1).indexOf('&')+1),\r\n `&FORMAT=${defaultWmtsMapLayers.services[im].format || 'format/png'}`\r\n );\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n }\r\n }\r\n for(let j = 0 ; j < servs.length ; j++){\r\n t.state.gis.addLayer(servs[j]);\r\n }\r\n }\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n //添加绘制点\r\n if(type && type !== 'defined'){\r\n psids = [...t.state.drawIds[type]];\r\n }\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n let marker = null,label = null;\r\n if(item.markerContent){\r\n //html点位\r\n //添加透明点(便于事件处理)\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n `${configUrl.mapServerURL}/images/touming.png`, cg.width, cg.height\r\n );\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n }else{\r\n //图片点位\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n (item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`), cg.width, cg.height\r\n );\r\n markerSymbol.setAngle(cg.deg);\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(\r\n cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2)\r\n );\r\n //点位图元\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;z-index: ${cg.zIndex || 0};'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //点跳动动画\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,marker);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n //添加图元到地图\r\n t.state.gis.graphics.add(marker);\r\n //统一处理添加点位 含label和html的添加\r\n //处理label的加点\r\n t.dealLabelGraphics(item.id,label);\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: psids\r\n };\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: psids\r\n // }\r\n // });\r\n }else{\r\n t.state.pointIds = psids;\r\n //所有点缓存在state中\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints){\r\n let t = this;\r\n // let dpoints = [],apoints = [];\r\n mapPoints.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //label对象\r\n let label = null;\r\n if(item.markerContent){\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(`${configUrl.mapServerURL}/images/touming.png`);\r\n }\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n\r\n }else{\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`);\r\n }\r\n gc.symbol.setAngle(cg.deg);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n gc.symbol.setWidth(cg.width);\r\n gc.symbol.setHeight(cg.height);\r\n }\r\n //点位动画效果\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,gc);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n \r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n //gometry 位置信息修改\r\n if(gc.geometry){\r\n // gc.geometry.setLatitude(item.latitude);\r\n // gc.geometry.setLongitude(item.longitude);\r\n gc.setGeometry(position);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent.update(new esri.geometry.Extent(item.longitude,item.latitude,item.longitude,item.latitude,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(position);\r\n }\r\n }\r\n //删除原有的label 下面从新加载\r\n if(t.Label[item.id]){\r\n t.Label[item.id].html.remove();\r\n }\r\n //刷新点位\r\n t.dealLabelGraphics(item.id,label);\r\n //刷新缓存数据\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.state.gis.graphics.refresh(); \r\n t.moveAnimation();\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let lsids = [...t.state.lineIds];\r\n if(type && type !== 'defined'){\r\n lsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = new esri.geometry.Polyline({\r\n paths: [[...item.paths]],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n //线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(style,color,cg.lineWidth);\r\n //创建线对象\r\n let line = new esri.Graphic(linePath,lineSymbol,{id:item.id});\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.hide();\r\n }else{\r\n line.show();\r\n }\r\n lsids.push(item.id);\r\n //添加线图元\r\n t.state.gis.graphics.add(line);\r\n //处理线缓存\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: lsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: lsids\r\n // }\r\n // });\r\n }else{\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\r\n // });\r\n }\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines){\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removePath(0);\r\n //添加新的点位\r\n gc.geometry.addPath([...item.paths]);\r\n let {_extent} = t.dealData(item.paths); \r\n //设置完点位后 需要刷新下点位的显示范围/\r\n gc._extent.update(_extent.longitude,_extent.latitude,_extent.longitude,_extent.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n gc.symbol.setColor(color);\r\n //设置线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.setStyle(style);\r\n //设置线宽\r\n gc.symbol.setWidth(cg.lineWidth);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加面\r\n addPolygon(mapPolygons,type){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n if(type){\r\n pgsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //处理面的点数据\r\n let polygonPath = esri.geometry.Polygon({\r\n //添加最后一个点,使面闭合\r\n rings: [rings],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,cg.lineWidth);\r\n //创建面对象\r\n let polygonSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n polygonSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n polygonSymbol.setColor(polygonColor);\r\n //创建面对象\r\n let polygon = new esri.Graphic(polygonPath,polygonSymbol,{id:item.id});\r\n //添加面图元\r\n t.state.gis.graphics.add(polygon);\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: pgsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: pgsids\r\n // }\r\n // });\r\n }else{\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\r\n // });\r\n }\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons){\r\n let t = this;\r\n mapPolygons.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removeRing(0);\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //添加新的点位\r\n gc.geometry.addRing(rings);\r\n let {_extent} = t.dealData(item.rings);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.outline.setStyle(lineStyle);\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n gc.symbol.outline.setColor(lineColor);\r\n //设置线宽\r\n gc.symbol.outline.setWidth(cg.lineWidth);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n gc.symbol.setColor(polygonColor);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles,type){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if(type){\r\n ccsids = [...t.state.drawIds[type]];\r\n }\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //创建圆对象\r\n let circle = new esri.Graphic(position,circleSymbol,{id:item.id});\r\n //添加图元对象\r\n t.state.gis.graphics.add(circle);\r\n //缓存数据\r\n ccsids.push(item.id);\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: ccsids\r\n // }\r\n // });\r\n }else{\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\r\n // });\r\n }\r\n }\r\n //更新圆\r\n updateCircle(mapCircles){\r\n let t = this;\r\n mapCircles.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //更新位置\r\n gc.setGeometry(position);\r\n //更新样式\r\n gc.setSymbol(circleSymbol);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = (d.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []){\r\n let t = this;\r\n data.map((ds,ind)=>{\r\n t.morepoints.map((item,index)=>{\r\n if(item.id == ds.id){\r\n let points = (ds.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height\r\n };\r\n item.value.reDraw(points,options);\r\n }\r\n })\r\n })\r\n }\r\n //删除海量点\r\n clearPointCollection(ids = []){\r\n let t = this;\r\n ids.map((id,ind)=>{\r\n t.morepoints.map(function (item,index) {\r\n if(id == item.id){\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n //删除全部海量点\r\n clearAllPointCollection(){\r\n let t = this;\r\n t.morepoints.map(function (item,index) {\r\n item.value.clear();\r\n });\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}){\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7\r\n };\r\n if(d.config){\r\n cg = {...cg,...d.config};\r\n }\r\n if(!t.heatmap){\r\n t.heatmap = new GMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.heatmap.initialize(t.state.gis,t.props.mapId);\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: eval(cg.opacity) * 100,\r\n visible: cg.visible\r\n }\r\n if(cg.gradient){\r\n option.gradient = cg.gradient;\r\n }\r\n t.heatmap.setOptions(option);\r\n t.heatmap.setDataSet({\r\n max: cg.max,\r\n data: d.data || []\r\n });\r\n if(cg.visible){\r\n t.isHideHeatMap = false;\r\n t.heatmap.show();\r\n }else{\r\n t.isHideHeatMap = true;\r\n t.heatmap.hide();\r\n }\r\n }\r\n /*事件处理*/\r\n //图元事件\r\n clickGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n //图元鼠标移开事件\r\n mouseOutGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*地图事件*/\r\n //地图点击事件\r\n clickMap(e){\r\n let t = this;\r\n if(typeof(t.props.clickMap) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: (e.mapPoint || {}).x,\r\n lat: (e.mapPoint || {}).y\r\n };\r\n obj.pixel = {\r\n x: (e.screenPoint || {}).x,\r\n y: (e.screenPoint || {}).y\r\n };\r\n t.props.clickMap(obj);\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(e){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n }\r\n }\r\n //地图移动结束后事件\r\n moveEnd(e){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveEnd(obj);\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(e){\r\n let t = this;\r\n if(typeof(t.props.zoomStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(e){\r\n let t = this;\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n }\r\n }\r\n /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n t.state.gis.centerAt(new esri.geometry.Point(gt[0],gt[1],new esri.SpatialReference({[t.wkidStr]: t.wkid})));\r\n }\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.state.gis.getZoom();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(parseInt(zoom));\r\n }\r\n //将制定图元展示在视野内 (强制改变地图中心位置)\r\n /*\r\n 参数arg格式如下1,2\r\n 1.string 格式如:'1,a,2,3,4'\r\n 2.数组 ['1','2']\r\n */\r\n setVisiblePoints (mapVisiblePoints) {\r\n let t = this;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];//图元id集合\r\n let obj = [];//经纬度集合\r\n switch(mapVisiblePoints.fitView){\r\n case 'point':\r\n arg = this.state.pointIds;\r\n break;\r\n case 'line':\r\n arg = this.state.lineIds;\r\n break;\r\n case 'polygon':\r\n arg = this.state.polygonIds;\r\n break;\r\n case 'circle':\r\n arg = this.state.circleIds;\r\n break;\r\n case 'all':\r\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\r\n break;\r\n default:\r\n arg = mapVisiblePoints.fitView;\r\n break;\r\n }\r\n\r\n\r\n if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n }else if(arg instanceof Array){\r\n ary = arg;\r\n }\r\n if(ary[0] instanceof Array){\r\n obj = [...obj,...ary];\r\n }else{\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let g = t.GM.getGraphicParam(ary[i]);\r\n switch(g.geometry.type){\r\n case 'point':\r\n case 'circle':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n break;\r\n case 'polyline':\r\n obj = [...obj,...g.geometry.paths];\r\n break;\r\n case 'polygon':\r\n obj = [...obj,...g.geometry.rings];\r\n break;\r\n }\r\n }\r\n }\r\n let {_extent} = t.dealData(obj);\r\n if(_extent.xmin && _extent.xmax && _extent.ymin && _extent.ymax){\r\n //避免偏移引起的点位漏看\r\n _extent = t.dealExtendBounds(_extent,100);\r\n let ext = new esri.geometry.Extent({..._extent,spatialReference:{ [t.wkidStr]: t.wkid }});\r\n if(!type || type == 'all' || type == 'zoom'){\r\n t.state.gis.setExtent(ext);\r\n }else if(type == 'center'){\r\n t.state.gis.centerAt(ext.getCenter());\r\n }\r\n }\r\n }\r\n /*get方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t = this;\r\n let extent = t.state.gis.geographicExtent;\r\n return [(extent.xmax + extent.xmin)/2,(extent.ymax + extent.ymin)/2];\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getLevel();\r\n }\r\n //获取当前中心点\r\n getCenter(){\r\n let t = this;\r\n let {xmin, ymin, xmax, ymax} = t.state.gis.extent;\r\n return {lng:(xmin+xmax)/2,lat: (ymin+ymax)/2};\r\n }\r\n //获取图元数据\r\n getGraphic (id) {\r\n let t = this;\r\n if(!id){\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if(!gg){\r\n return false;\r\n }\r\n let p = {},pts = [],lng = 0,lat = 0;\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.geometry.x;\r\n lat = gg.geometry.y;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n pts = gg.geometry.paths[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n pts = gg.geometry.rings[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts\r\n }\r\n },\r\n area: getPolygonArea(pts)\r\n }\r\n break;\r\n case 'circle':\r\n lng = gg.geometry.center.x;\r\n lat = gg.geometry.center.y;\r\n let radius = 0;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius\r\n }\r\n },\r\n area: Math.PI*radius*radius\r\n }\r\n break;\r\n }\r\n return p;\r\n }\r\n //获取地图当前的位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis._getAvailExtent();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.xmin,\r\n lat : nowBounds.ymin\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.xmax,\r\n lat : nowBounds.ymax\r\n };\r\n obj.nowCenter = t.getCenter();\r\n obj.zoom = t.getZoomLevel();\r\n obj.mapSize = {width: t.state.gis.width,height: t.state.gis.height};\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n /*工具方法*/\r\n vtxRangingTool(mapRangingTool){\r\n let t = this;\r\n //关闭测距时双击地图缩放功能\r\n t.state.gis.disableDoubleClickZoom();\r\n //开启测距状态\r\n if(!t.rangingTool.isRanging){\r\n t.rangingTool.isRanging = true;\r\n }\r\n //初始测距回调\r\n if(!t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool = mapRangingTool;\r\n }\r\n }\r\n /*功能方法*/\r\n //单个删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n //刪除label\r\n if(t.Label[id]){\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if(!!graphic){\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n t.state.gis.graphics.remove(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n //清空地图\r\n clearAll(){\r\n let t = this;\r\n //清空热力图\r\n if(t.heatmap){\r\n t.heatmap.clear();\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n t.clearAllPointCollection();\r\n //循环所有id删除\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for(let i= 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i],'point');\r\n }\r\n // 删除线\r\n for(let i= 0 ; i < ls.length ; i++){\r\n t.removeGraphic(ls[i],'line');\r\n }\r\n // 删除面\r\n for(let i= 0 ; i < pgs.length ; i++){\r\n t.removeGraphic(pgs[i],'polygon');\r\n }\r\n // 删除圆\r\n for(let i= 0 ; i < cs.length ; i++){\r\n t.removeGraphic(cs[i],'circle');\r\n }\r\n //删除绘制的点\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n for(let i= 0 ; i < point.length ; i++){\r\n t.removeGraphic(point[i]);\r\n }\r\n for(let i= 0 ; i < polyline.length ; i++){\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for(let i= 0 ; i < polygon.length ; i++){\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for(let i= 0 ; i < circle.length ; i++){\r\n t.removeGraphic(circle[i]);\r\n }\r\n for(let i= 0 ; i < rectangle.length ; i++){\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(){\r\n let t = this,type = '',\r\n location={top: 20, left: 20},ls = {top: 20,left: 60},\r\n w = t.state.gis.width,h = t.state.gis.height;\r\n switch(t.props.showControl.location){\r\n case 'tl':\r\n location={top: 20, left: 20};\r\n ls = {top: 20,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: 20};\r\n }\r\n break;\r\n case 'bl':\r\n location={top: h - 83, left: 20};\r\n ls = {top: h - 50,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: 20};\r\n }\r\n break;\r\n case 'tr':\r\n location={top: 20, left: w - 52};\r\n ls = {top: 20,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: w - 93};\r\n }\r\n break;\r\n case 'br':\r\n location={top: h - 83 , left: w - 52};\r\n ls = {top: h - 50,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: w - 93};\r\n }\r\n break;\r\n }\r\n if(!$(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n //计算比例尺数值和长度\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n let sliderShow = `\r\n <div id='${t.props.mapId}_zoom_slider_show' \r\n style='position:absolute;z-index:100;width:${scaleW-2}px;'\r\n >\r\n <div class='zoom_slider_show_scale'>${toldis}</div>\r\n <div class='zoom_slider_show_bottom'></div>\r\n </div>\r\n `\r\n $(`#${t.props.mapId}_root`).append(sliderShow);\r\n }\r\n switch(t.props.showControl.type){\r\n case 'all':\r\n case 'small':\r\n case 'pan':\r\n case 'zoom':\r\n $(`#${t.props.mapId}_zoom_slider`).css({\r\n ...location,\r\n display: 'block'\r\n });\r\n default:\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({\r\n ...ls\r\n });\r\n break;\r\n }\r\n }\r\n //编辑图元\r\n doEdit(id){\r\n let t = this;\r\n if(!t.editToolbar){\r\n t.editToolbar = new esri.toolbars.Edit(t.state.gis);\r\n t.editToolbarC = new esri.toolbars.Edit(t.state.gis);\r\n let changeLabel = (point,eid,gcparam)=>{\r\n let label = '',cg = gcparam.attributes.config;\r\n //判断是不是html点\r\n if(!!gcparam.attributes.markerContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n offset: {\r\n x: cg.markerContentX || 100,\r\n y: cg.markerContentY || 30\r\n },\r\n position: point\r\n }\r\n }else{\r\n //判断是否有label\r\n if(gcparam.attributes.canShowLabel && cg.labelContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: (cg.labelPixelX || 0) + ((cg.markerContentX || -15) + (cg.width || 30)/2),\r\n y: (cg.labelPixelY || 34)+ (cg.markerContentY || -15)\r\n },\r\n position: point\r\n }\r\n }\r\n }\r\n if(label){\r\n t.dealLabelGraphics(eid,label);\r\n }\r\n }\r\n /*点位编辑事件*/\r\n //编辑关闭事件\r\n t.editToolbar.on('deactivate',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let obj = {};\r\n if(eid == 'vtx-circleMove'){\r\n let param = t.getGraphic(t.editId);\r\n obj = {\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n };\r\n }else{\r\n let param = t.getGraphic(eid);\r\n obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n if(eid == 'vtx-circleMove'){\r\n t.removeGraphic('vtx-circleMove','point');\r\n t.removeGraphic('vtx-circleRadius','point');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleMove'),1);\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleRadius'),1);\r\n }\r\n }\r\n if(t.zIndexGraphics.indexOf(eid) > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf(eid),1);\r\n }\r\n t.editId = '';\r\n })\r\n //移动开始事件 开启开关\r\n t.editToolbar.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件\r\n t.editToolbar.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(position);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: position,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px - t.circleEditPXY.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n return false;\r\n }\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n changeLabel(position,eid,gcparam);\r\n });\r\n //移动结束后事件\r\n t.editToolbar.on('graphic-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n //判断是不是点\r\n if(gcparam.geometryType == 'point'){\r\n changeLabel(e.graphic.geometry,eid,gcparam);\r\n }\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(e.graphic.geometry);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: e.graphic.geometry,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: e.graphic.geometry.x - t.circleEditPXY.px,\r\n latitude: e.graphic.geometry.y - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n return false;\r\n }\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n t.props.editGraphicChange({\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n });\r\n }\r\n });\r\n //多折线 多边形 圆事件处理\r\n t.editToolbar.on('vertex-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n let obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n });\r\n //移动开始事件 开启开关 [圆半径]\r\n t.editToolbarC.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件 [圆半径]\r\n t.editToolbarC.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n });\r\n //移动结束后事件 [圆半径]\r\n t.editToolbarC.on('graphic-move-stop',(e)=>{\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n })\r\n }\r\n //取消上一次的编辑\r\n if(t.editId){\r\n t.editToolbar.deactivate();\r\n t.editToolbarC.deactivate();\r\n }\r\n //获取图元对象\r\n let gc = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n if(!gc)return;\r\n switch(gp.geometryType){\r\n case 'point':\r\n //将编辑的图元放在最上面\r\n t.czIndex(id);\r\n if(t.zIndexGraphics.indexOf(id) == -1){\r\n t.zIndexGraphics.push(id);\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , gc);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n t.editToolbar.activate(esri.toolbars.Edit.EDIT_VERTICES , gc);\r\n break;\r\n case 'circle':\r\n // 移动圆的中心点 和 移动圆的半径点\r\n t.addPoint([{\r\n id: 'vtx-circleMove',\r\n longitude: gc.geometry.center.x,\r\n latitude: gc.geometry.center.y,\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n },{\r\n id: 'vtx-circleRadius',\r\n longitude: gc.geometry.rings[0][0][0],\r\n latitude: gc.geometry.rings[0][0][1],\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n }]);\r\n t.circleEditPXY = {\r\n px: gc.geometry.center.x - gc.geometry.rings[0][0][0],\r\n py: gc.geometry.center.y - gc.geometry.rings[0][0][1]\r\n }\r\n t.czIndex('vtx-circleMove');\r\n t.czIndex('vtx-circleRadius');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') == -1){\r\n t.zIndexGraphics.push('vtx-circleMove');\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') == -1){\r\n t.zIndexGraphics.push('vtx-circleRadius');\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleMove'));\r\n t.editToolbarC.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleRadius'));\r\n break;\r\n }\r\n //开启点编辑功能\r\n t.editId = id;\r\n }\r\n //关闭编辑\r\n endEdit(){\r\n let t = this;\r\n t.editToolbar.deactivate();\r\n //单独为了圆的\r\n t.editToolbarC.deactivate();\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this;\r\n if(!t.drawToolbar){\r\n t.drawToolbar = new esri.toolbars.Draw(t.state.gis,{\r\n drawTime: 90,\r\n showTooltips: false\r\n });\r\n t.drawToolbar.on('draw-complete',(e)=>{\r\n //关闭绘制事件\r\n t.closeDraw();\r\n //返回参数\r\n let param = {};\r\n // 绘制内部管理的图元\r\n if(t.drawParam.geometryType == 'point'){\r\n t.addPoint([{\r\n id: t.drawParam.data.id,\r\n longitude: e.geometry.x,\r\n latitude: e.geometry.y,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'point');\r\n //处理点返回参数\r\n param = {\r\n id: t.drawParam.data.id,\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n width: t.drawParam.parameter.width || 30,\r\n height: t.drawParam.parameter.height || 30\r\n }\r\n },\r\n geometry: e.geometry,\r\n geometryType: 'point',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //线\r\n if(t.drawParam.geometryType == 'polyline'){\r\n t.addLine([{\r\n id: t.drawParam.data.id,\r\n paths: e.geometry.paths[0],\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'polyline');\r\n //处理线返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.paths[0]);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n paths: e.geometry.paths[0],\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n distance: t.calculateDistance(e.geometry.paths[0]),\r\n geometryType: 'polyline',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'polygon' || t.drawParam.geometryType == 'rectangle'){\r\n let rs = [...e.geometry.rings[0]];\r\n rs.pop();\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: rs,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n //处理面返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.rings[0]);\r\n param={\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: e.geometry.rings[0],\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(e.geometry.rings[0]),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'circle'){\r\n if(e.geometry._extent){\r\n let radius = getDistance(\r\n [e.geometry._extent.xmin,e.geometry._extent.ymin],\r\n [e.geometry._extent.xmax,e.geometry._extent.ymax],\r\n t.state.gis,\r\n t.grwkid\r\n )/2;\r\n radius = Math.sqrt(Math.pow(radius,2)*2)/2;\r\n t.addCircle([{\r\n id: t.drawParam.data.id,\r\n longitude: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n latitude: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2,\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n param = {\r\n area: Math.PI*Math.pow(radius,2),\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n geometry: {\r\n type: t.drawParam.geometryType,\r\n x: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n y: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2, \r\n radius\r\n },\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n }\r\n // t.GM.setGraphicParam(t.drawParam.data.id,param);\r\n //绘制返回\r\n if('drawEnd' in t.props && typeof(t.props.drawEnd) == 'function'){\r\n t.props.drawEnd(param);\r\n }\r\n })\r\n }\r\n //避免连点\r\n t.closeDraw();\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'crosshair'\r\n });\r\n let drawParam = {};\r\n //初始化参数\r\n drawParam.geometryType = obj.geometryType || 'point';\r\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\r\n drawParam.data = obj.data?{...obj.data}:{};\r\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\r\n //缓存 绘制的数据\r\n t.drawParam = drawParam;\r\n //判断id是否存在\r\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\r\n if(len > -1){\r\n //如果id存在 删除存在的图元,清除drawId中的id数据\r\n t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let lineSymbol = null,fillSymbol = null;\r\n if(drawParam.geometryType !== 'point'){\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(drawParam.parameter.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = null;\r\n //线和面圆的线透明参数不同\r\n if(drawParam.geometryType == 'polyline'){\r\n lineColor = new esri.Color(drawParam.parameter.color);\r\n lineColor.a = drawParam.parameter.pellucidity;\r\n }else{\r\n lineColor = new esri.Color(drawParam.parameter.lineColor);\r\n lineColor.a = drawParam.parameter.lineOpacity;\r\n }\r\n //生成线类型对象\r\n lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,drawParam.parameter.lineWidth);\r\n }else{\r\n //点的样式\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`, \r\n (drawParam.parameter.width || 30), (drawParam.parameter.height || 30)\r\n );\r\n //设置点偏移\r\n markerSymbol.setOffset(\r\n (drawParam.parameter.markerContentX || -15) + (drawParam.parameter.width || 30)/2,\r\n -((drawParam.parameter.markerContentY || -15) + (drawParam.parameter.height || 30)/2)\r\n );\r\n t.drawToolbar.setMarkerSymbol(markerSymbol);\r\n }\r\n //处理面 矩形 圆的样式\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n //创建面对象\r\n fillSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n fillSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let dColor = new esri.Color(drawParam.parameter.color);\r\n dColor.a = drawParam.parameter.pellucidity;\r\n fillSymbol.setColor(dColor);\r\n //添加线的样式\r\n t.drawToolbar.setFillSymbol(fillSymbol);\r\n t.drawToolbar.setRespectDrawingVertexOrder(true);\r\n }\r\n //重新设置绘制类型和数据\r\n let geometryType = esri.toolbars.Draw.POINT;\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n geometryType = esri.toolbars.Draw.POINT;\r\n\r\n break;\r\n case 'polyline':\r\n geometryType = esri.toolbars.Draw.POLYLINE;\r\n //添加线的样式\r\n t.drawToolbar.setLineSymbol(lineSymbol);\r\n break;\r\n case 'polygon':\r\n geometryType = esri.toolbars.Draw.POLYGON;\r\n break;\r\n case 'circle':\r\n geometryType = esri.toolbars.Draw.CIRCLE;\r\n break;\r\n case 'rectangle':\r\n geometryType = esri.toolbars.Draw.RECTANGLE;\r\n break;\r\n }\r\n t.drawToolbar.activate(geometryType);\r\n }\r\n //关闭绘制\r\n closeDraw(){\r\n let t = this;\r\n if(t.drawToolbar){\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'default'\r\n });\r\n //先关闭上次绘制的事件\r\n t.drawToolbar.finishDrawing();\r\n //销毁上次绘制的类型设定\r\n t.drawToolbar.deactivate();\r\n }\r\n }\r\n //点聚合\r\n cluster(ids){\r\n let t = this;\r\n //获取聚合点id 空则是全部点位\r\n t.clusterMarkers = t.clusterToolFunction(ids);\r\n //处理聚合点逻辑\r\n t.dealClusterPoint();\r\n }\r\n //处理聚合点逻辑\r\n dealClusterPoint(){\r\n let t = this;\r\n //当前窗口信息\r\n let ext = t.dealExtendBounds(t.state.gis.extent);\r\n t.clusterPs = [];\r\n //清除原来聚合点\r\n for(let i = 0 ; i < t.clusterPt.length; i++){\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphic);\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphicText);\r\n }\r\n for(let i = 0; i < t.clusterMarkers.length ; i++){\r\n t.clusterMarkers[i].isCluster = false;\r\n }\r\n //处理后的聚合点位数据\r\n for(let i = 0 ; i < t.clusterMarkers.length ; i++){\r\n let gc = t.clusterMarkers[i].marker,\r\n distance = 4000000,newCluster = null;\r\n //过滤不是点的图元id\r\n if(gc.geometry.type !== 'point'){\r\n console.warning(`设置聚合的图元不符号类型!`);\r\n }else{\r\n //过滤窗口视线外的点位\r\n if(ext.contains(gc.geometry)){\r\n //聚合点集合空时 创建一个集合\r\n if(t.clusterPs.length === 0){\r\n t.createCluster(t.clusterMarkers[i]);\r\n }else{\r\n for(let j = 0 ; j < t.clusterPs.length; j++){\r\n //判断点是否在聚合点范围内\r\n let d = t.calculatePointsDistance(\r\n [gc.geometry.x,gc.geometry.y],\r\n [t.clusterPs[j].center.x,t.clusterPs[j].center.y]\r\n )\r\n //获取最优聚合点\r\n if(d < distance){\r\n distance = d;\r\n newCluster = t.clusterPs[j];\r\n }\r\n }\r\n //存在聚合 就添加进聚合 没有聚合就新建一个自己的聚合\r\n if(newCluster && newCluster.extent.contains(gc.geometry)){\r\n t.clusterMarkers[i].isCluster = true;\r\n newCluster.markers.push(t.clusterMarkers[i]);\r\n newCluster.isreal = true;\r\n }else{\r\n t.createCluster(t.clusterMarkers[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //添加cluster聚合点\r\n for(let i = 0 ; i < t.clusterPs.length; i++){\r\n if(t.clusterPs[i].isreal){\r\n //添加聚合集合点\r\n t.addClusterPoint(t.clusterPs[i]);\r\n }else{\r\n let m = t.clusterPs[i].markers[0];\r\n if(!m.marker.getNode()){\r\n //存在html的label处理\r\n if(m.html){\r\n t.dealLabelGraphics(m.id,m.html);\r\n }\r\n //添加回原有的点\r\n t.state.gis.graphics.add(m.marker);\r\n }\r\n }\r\n }\r\n }\r\n //处理聚合点的添加\r\n addClusterPoint(cluster){\r\n let t = this;\r\n let len = cluster.markers.length,ids=[];\r\n let url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m4.png',\r\n w = 90;\r\n if(len < 50){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m3.png';\r\n w = 78;\r\n }\r\n if(len < 30){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m2.png';\r\n w = 66;\r\n }\r\n if(len < 20){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m1.png';\r\n w = 56;\r\n }\r\n if(len < 10){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m0.png';\r\n w = 53;\r\n }\r\n //处理聚合中点位\r\n for(let i = 0 ; i < len ; i++){\r\n ids.push(cluster.markers[i].id);\r\n if(cluster.markers[i].marker.getNode()){\r\n t.state.gis.graphics.remove(cluster.markers[i].marker);\r\n if(cluster.markers[i].html){\r\n cluster.markers[i].html.html.remove();\r\n }\r\n }\r\n }\r\n //添加聚合点\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n url, w, w\r\n );\r\n //设置文字点位(记录聚合点数量)\r\n let text = new esri.symbol.TextSymbol(len).setColor(new esri.Color('#fff'));\r\n //文字居中\r\n text.setOffset(0.5,-5);\r\n //创建点位对象\r\n let graphic = new esri.Graphic(cluster.center,markerSymbol,{id: 'vtx-clusterPoint',ids,cluster}),\r\n graphicText = new esri.Graphic(cluster.center,text,{id: 'vtx-clusterPoint',ids,cluster});\r\n //添加聚合点位到地图\r\n t.state.gis.graphics.add(graphic);\r\n t.state.gis.graphics.add(graphicText);\r\n t.clusterPt.push({graphic,graphicText});\r\n }\r\n //新增cluster\r\n createCluster(m){\r\n let t = this;\r\n let gc = m.marker;\r\n //不是集合里面的点\r\n if(!m.isCluster){\r\n m.isCluster = true;\r\n t.clusterPs.push({\r\n extent: t.dealExtendBounds(gc._extent),\r\n center: gc.geometry,\r\n markers: [m],\r\n isreal: false\r\n });\r\n }\r\n }\r\n //处理聚合的间距\r\n dealExtendBounds(extent,area){\r\n let t = this,bound = area || 60;\r\n let ne = new esri.geometry.Point(extent.xmax,extent.ymax),\r\n sw = new esri.geometry.Point(extent.xmin,extent.ymin),\r\n pixelNe = t.state.gis.toScreen(ne),\r\n pixelSw = t.state.gis.toScreen(sw);\r\n pixelNe.x += bound;\r\n pixelNe.y -= bound;\r\n pixelSw.x -= bound;\r\n pixelSw.y += bound;\r\n let newNe = t.state.gis.toMap(pixelNe),\r\n newSw = t.state.gis.toMap(pixelSw);\r\n return new esri.geometry.Extent(newSw.x,newSw.y,newNe.x,newNe.y, new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n let markerList = [];\r\n for(let i = 0; i < ary.length ; i++){\r\n let obj = {\r\n id: ary[i],\r\n marker: t.GM.getGraphic(ary[i]),\r\n isCluster: false\r\n }\r\n if(t.Label[ary[i]]){\r\n obj.html = t.Label[ary[i]];\r\n }\r\n markerList.push(obj);\r\n }\r\n return markerList;\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction){\r\n let t = this;\r\n let {_extent:_et} = t.dealData(areaRestriction);\r\n t.areaRestriction = new esri.geometry.Extent({\r\n ..._et,spatialReference: {wkid: t.grwkid}\r\n });\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction(){\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e){\r\n let t = this;\r\n //如果在区域内,不处理\r\n if(t.areaRestriction.contains(e.extent.getCenter())){\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return; \r\n // }\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = t.areaRestriction;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e.extent;\r\n let x = e.extent.getCenter().x,y = e.extent.getCenter().y;\r\n if(x < xmin1)x = xmin1+0.1;\r\n if(x > xmax1)x = xmax1-0.1;\r\n if(y < ymin1)y = ymin1+0.1;\r\n if(y > ymax1)y = ymax1-0.1;\r\n let center = new esri.geometry.Point(x,y);\r\n t.state.gis.centerAt(center);\r\n }\r\n /*公共方法*/\r\n //判断extent1是否在extent2内部\r\n containsExtent(e1,e2){\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = e1;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e2;\r\n return (xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1);\r\n }\r\n //将图元z-index设置成最高\r\n czIndex(id){\r\n let t = this;\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\r\n }\r\n equalsPoint(a,b){\r\n return (a.x == b.x && a.y == b.y);\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp,ep){\r\n return getDistance(fp,ep,this.state.gis,this.state.grwkid);\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return 0;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return totalDistance;\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(paths){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n path = paths.map((item,index)=>{\r\n let lng = item[0],lat = item[1];\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n return {lnglatAry,_extent,path};\r\n }\r\n //处理点位图元的添加 和 更新\r\n dealLabelGraphics(id,label){\r\n let t = this;\r\n if(label){\r\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\r\n //经纬度转top和left\r\n let tl = t.state.gis.toScreen(position),lbl = {...label};\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n //设置label的位置(通过定位来实现)\r\n label.html.css({\r\n position: 'absolute',\r\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x\r\n });\r\n //添加点位到(地图)\r\n $(`#${t.htmlPointsId}`).append(label.html);\r\n lbl.add = true;\r\n }else{\r\n lbl.add = false;\r\n }\r\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\r\n t.Label[id] = lbl;\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id,marker){\r\n let t = this;\r\n //null时关闭跳动\r\n if(!!marker){\r\n if(t.animTimer[id]){\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(()=>{\r\n //点被隐藏时,没有执行,定时不关\r\n if(marker.symbol){\r\n let shape = {...marker.symbol};\r\n //初始数据 点位有变动,重新刷新数据\r\n if(!t.animCount[id] || shape.yoffset != t.animCount[id].now){\r\n t.animCount[id] = {\r\n start: shape.yoffset,\r\n now: shape.yoffset,\r\n notation: -1\r\n };\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 20){\r\n t.animCount[id].notation = -1;\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 0){\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.yoffset = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\r\n marker.symbol.setOffset(shape.xoffset,shape.yoffset);\r\n t.state.gis.graphics.refresh();\r\n }\r\n },35);\r\n }else{\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime,ddeg} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc || !gc._graphicsLayer){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n let gg = gc.geometry;\r\n let tx = gg.x + rx,ty = gg.y + ry;\r\n let lglt = new esri.geometry.Point(tx,ty);\r\n gc.geometry.setLatitude(ty);\r\n gc.geometry.setLongitude(tx);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(lglt);\r\n gc._graphicsLayer.refresh();\r\n if(t.Label[id] && t.Label[id].add){\r\n let tl = t.state.gis.toScreen(lglt);\r\n //设置label的位置(通过定位来实现)\r\n t.Label[id].html.css({\r\n position: 'absolute',\r\n top: tl.y + (t.Label[id].offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (t.Label[id].offset.x || 0) - t.labelLayer.x\r\n });\r\n }\r\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\r\n t.movePoints[i].waitTime = 0;\r\n if(deleteTime <= 0){\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a,b)=>{return b-a});\r\n for(let i = 0 ; i < deleteIndex.length ; i++){\r\n t.movePoints.splice(deleteIndex[i],1);\r\n }\r\n if(nowMovePoints.length == 0){\r\n clearInterval(t.moveToTimer);\r\n }\r\n },10);\r\n }\r\n //点位移动动画效果\r\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\r\n delay = delay || 3;\r\n let t = this,timer = 10;\r\n delay = eval(delay)*1000;\r\n let count = delay/timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.geometry,e = new esri.geometry.Point(lnglat[0],lnglat[1]);\r\n if(t.equalsPoint(s,e)){\r\n return false;\r\n }else{\r\n let ddeg = 0,url= null;\r\n //计算角度,旋转\r\n if(autoRotation){\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.geometry,lnglat);\r\n if(urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n url = urlleft;\r\n }else{\r\n url = urlright;\r\n }\r\n gc.symbol.setUrl(url);\r\n gc.symbol.setAngle(ddeg);\r\n gc._graphicsLayer.refresh();\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.x - s.x)/count, ry = (e.y - s.y)/count;\r\n let isHave = false;\r\n for(let i = 0 ; i < t.movePoints.length ;i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1,{\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp,ep){\r\n let t = this;\r\n let spLngLat = sp;\r\n if(Array.isArray(sp)){\r\n spLngLat = new esri.geometry.Point(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.toScreen(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.toScreen(new esri.geometry.Point(ep[0],ep[1])),\r\n deg = 0;\r\n if(e.x != s.x){\r\n var tan = (e.y - s.y)/(e.x - s.x),\r\n atan = Math.atan(tan);\r\n deg = atan*360/(2*Math.PI);\r\n //degree correction;\r\n if(e.x < s.x){\r\n deg = -deg + 90 + 90;\r\n\r\n } else {\r\n deg = -deg;\r\n }\r\n deg = -deg;\r\n }else {\r\n var disy = e.y- s.y ;\r\n var bias = 0;\r\n if(disy > 0)\r\n bias=-1;\r\n else\r\n bias = 1;\r\n if(disy == 0)\r\n bias = 0; \r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return (\r\n <div id={_map.mapId} style={{width:'100%',height:'100%',backgroundColor: '#f1f1f1'}}></div>\r\n )\r\n }\r\n\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.loadMapComplete.then(()=>{\r\n t.init();\r\n }) \r\n }\r\n //已加载组件,收到新的参数时调用\r\n componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n t.grwkid = nextProps.grwkid || 4326;\r\n //新参数处理方法\r\n let initData = ()=>{\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll\r\n } = nextProps;\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && t.props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,t.props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints,t.props.mapPoints)){\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.editId){\r\n oldMapPoints = t.props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,t.props.mapPolygons)){\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.editId){\r\n oldMapPolygons = t.props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles,t.props.mapCircles)){\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.editId){\r\n oldMapCircles = t.props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines,t.props.mapLines)){\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.editId){\r\n oldMapLines = t.props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && t.props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,t.props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n //绘制边界线\r\n // if(boundaryName instanceof Array && !t.deepEqual(boundaryName,t.props.boundaryName)){\r\n // let newBDName = Set(boundaryName);\r\n // let oldBDName = Set(t.props.boundaryName);\r\n // let removedBoundaryName = oldBDName.subtract(newBDName).toJS();\r\n // let addedBoundaryName = newBDName.subtract(oldBDName).toJS();\r\n // t.removeBaiduBoundary(removedBoundaryName);\r\n // t.addBaiduBoundary(addedBoundaryName);\r\n // }\r\n // 获取热力图\r\n if(heatMapData && !t.deepEqual(heatMapData,t.props.heatMapData)){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //图元编辑调用\r\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\r\n t.doEdit(editGraphicId);\r\n }\r\n //关闭图元编辑\r\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\r\n t.endEdit();\r\n }\r\n //开启图元绘制\r\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置最优视野\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n // //开关路况\r\n // if(isOpenTrafficInfo){\r\n // t.openTrafficInfo();\r\n // }else{\r\n // t.hideTrafficInfo();\r\n // }\r\n //设置区域限制\r\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\r\n t.clearAreaRestriction();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n }\r\n //graphics对象存在 直接处理数据,不存在 延迟处理数据\r\n if(!t.state.gis || !t.state.gis.graphics){\r\n if(t.loadTimer){\r\n clearTimeout(t.loadTimer);\r\n }\r\n t.loadTimer = setTimeout(()=>{\r\n initData();\r\n },300);\r\n }else{\r\n initData();\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for(let j in t.animTimer){\r\n if(t.animTimer[j]){\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\nexport default ArcgisMap;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_MapToolFunction","_immutable","_default2","obj","__esModule","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","_typeof","constructor","prototype","ownKeys","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","toString","slice","name","from","test","iter","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","_inherits","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","Set","Immutable","ArcgisMap","_React$Component","_super","_this","grwkid","wkid","isNaN","parseInt","wkidStr","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editToolbarC","editId","canMoveLabel","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","mapCreated","state","gis","mapId","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","loadMapJs","loadMapComplete","Promise","resolve","reject","window","GMap","$","getScript","concat","configUrl","arcgisServerURL","Heatmap","mapServerURL","PointCollection","all","then","Map","attr","rel","type","href","appendTo","init","_this2","createMap","initData","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","_t$props2","boundaryName","heatMapData","customizedBoundary","_t$state","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","addPointCollection","setAreaRestriction","event","changeLabel","cmids","map","item","id","position","getGraphic","geometry","tl","toScreen","height","width","html","css","top","offset","left","add","indexOf","append","remove","czIndex","getNode","rangingToolFun","status","lnlt","mapPoint","getDistance","longitude","latitude","paths","distext","Math","round","random","markerContent","config","markerContentX","markerContentY","color","lineWidth","lineType","updateLine","enableDoubleClickZoom","rangkey","Date","getTime","end","index","removeGraphic","lnglats","on","rp","getGraphicParam","attributes","other","rcontent","sl","pellucidity","updatePoint","clickMap","dragMapStart","dragMapEnd","delta","changeDiv","moveStart","moveEnd","dealClusterPoint","updatePointCollection","eval","replace","draw","dealAreaRestriction","zoomStart","display","isHideHeatMap","hide","zoomEnd","show","getScale","coefficient","pow","floor","gs","toldis","isCent","scaleW","children","graphics","graphic","gid","setVisiblePoints","fitView","ids","clickGraphic","ls","ps","mouseOverGraphic","mouseOutGraphic","setCenter","mapCenter","_t$props3","minZoom","maxZoom","mapServer","options","zoom","center","VtxMap","fullExtent","xmin","ymin","xmax","ymax","autoResize","logo","isKeyboardNavigation","showAttribution","backgroundColor","extent","esri","Extent","spatialReference","onModalResize","resize","reposition","addMapLayers","removeAllLayers","services","servs","im","url","basemap","layers","gisServer","tileInfo","TileInfo","format","SpatialReference","origin","lods","tileExtent","inTileExtent","initialExtent","layerInfo","WMTSLayerInfo","identifier","layer","tileMatrixSet","tilematrixset","style","resourceInfo","version","layerInfos","copyright","serviceMode","wmtsLayer","WMTSLayer","UrlTemplate","substring","console","warn","defaultWmtsMapLayers","dtileInfo","dtileExtent","dinTileExtent","dlayerInfo","dresourceInfo","doptions","substr","j","addLayer","_this3","psids","isRepetition","cg","labelContent","labelPixelX","labelPixelY","BAnimationType","deg","Point","marker","label","markerSymbol","symbol","PictureMarkerSymbol","setOffset","Graphic","setAngle","canShowLabel","labelClass","split","join","zIndex","pointAnimation","dealLabelGraphics","setGraphic","setGraphicParam","geometryType","_this4","gc","setUrl","setWidth","setHeight","isAnimation","moveTo","animationDelay","autoRotation","urlleft","setGeometry","_extent","update","_parts","refresh","moveAnimation","lsids","isHidden","linePath","Polyline","SimpleLineSymbol","STYLE_SOLID","STYLE_DASH","Color","a","lineSymbol","removePath","addPath","_t$dealData","dealData","setColor","setStyle","pgsids","rings","lineColor","lineOpacity","polygonPath","Polygon","lineStyle","polygonSymbol","SimpleFillSymbol","setOutline","polygonColor","updatePolygon","removeRing","addRing","_t$dealData2","outline","ccsids","parseFloat","Circle","radius","circleSymbol","circleColor","updateCircle","setSymbol","data","d","lng","lat","size","shape","VotexpointCollection","GMapLib","ds","ind","reDraw","clearPointCollection","clear","clearAllPointCollection","max","visible","opacity","HeatmapOverlay","initialize","option","gradient","setOptions","setDataSet","param","clientY","clientX","getMapExtent","clickLngLat","pixel","screenPoint","gt","c","getCenter","centerAt","setZoomLevel","z","getZoom","setZoom","ary","g","_t$dealData3","dealExtendBounds","ext","setExtent","getCurrentCenter","geographicExtent","getZoomLevel","getLevel","_t$state$gis$extent","gp","gg","pts","mapLayer","area","PI","nowBounds","_getAvailExtent","southWest","northEast","nowCenter","mapSize","calculatePointsDistance","vtxRangingTool","disableDoubleClickZoom","splice","clearAll","_t$state2","pgs","cs","location","w","h","sliderShow","doEdit","toolbars","Edit","eid","gcparam","editGraphicChange","calculateDistance","circleCenter","circleEditPXY","cgc","deactivate","activate","MOVE","EDIT_VERTICES","endEdit","Draw","drawTime","showTooltips","closeDraw","parameter","_t$dealData4","lnglatAry","rs","pop","_t$dealData5","sqrt","drawEnd","cursor","fillSymbol","setMarkerSymbol","dColor","setFillSymbol","setRespectDrawingVertexOrder","POINT","POLYLINE","setLineSymbol","POLYGON","CIRCLE","RECTANGLE","finishDrawing","clusterToolFunction","graphicText","isCluster","newCluster","warning","contains","createCluster","markers","isreal","addClusterPoint","m","text","TextSymbol","bound","ne","sw","pixelNe","pixelSw","newNe","toMap","newSw","markerList","_t$dealData6","_et","clearAreaRestriction","_t$areaRestriction","xmin1","xmax1","ymin1","ymax1","_e$extent","xmin2","xmax2","ymin2","ymax2","containsExtent","e1","e2","equalsPoint","b","fp","ep","totalDistance","path","lngX","latX","lbl","clearInterval","setInterval","yoffset","now","start","notation","xoffset","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","ddeg","_graphicsLayer","tx","ty","lglt","setLatitude","setLongitude","lnglat","delay","urlright","timer","count","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","createElement","componentDidMount","UNSAFE_componentWillReceiveProps","nextProps","_this5","_t$state3","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","_t$dataMatch","oldMapPoints","newMapPoints","_t$dataMatch2","_t$dealAdd","_t$dealUpdate","_iterator","_step","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd2","_t$dealUpdate2","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd3","_t$dealUpdate3","_iterator3","_step3","oldMapLines","newMapLines","_t$dataMatch5","_t$dealAdd4","_t$dealUpdate4","_iterator4","_step4","_t$dataMatch6","_iterator5","_step5","clearTimeout","setTimeout","componentWillUnmount","React","Component","_default","exports","module"],"sources":["VtxMap/GMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport {\r\n graphicManage,defaultWmtsMapLayers,getPixelDistance,getDistance,getPolygonArea\r\n} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nconst {Set} = Immutable;\r\nclass ArcgisMap extends React.Component{ \r\n constructor(props){ \r\n super(props);\r\n this.grwkid = 4326;//wkid 坐标系对应,全局使用.\r\n this.wkid = (isNaN(parseInt(props.wkid))?props.wkid:parseInt(props.wkid)) || 4326;//wkid 坐标系对应,全局使用.\r\n this.wkidStr = isNaN(parseInt(props.wkid))?'wkt':'wkid';\r\n this.zIndexGraphics = [];//需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points';//html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\r\n this.Label = {};//所有label 集合\r\n this.labelLayer = {x: 0,y: 0};//label图层 位置管理\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.loadTimer = null;//初始化地图 load时延缓数据处理\r\n this.animTimer = {};//点位跳动动画 定时集合\r\n this.animCount = {};//点位跳动动画 定时计数\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.drawToolbar = null;//绘制对象\r\n this.drawParam = {};//缓存 绘制的数据\r\n this.editToolbar = null;//编辑对象\r\n this.editToolbarC = null;//编辑对象\r\n this.editId = '';//当前编辑的图元id\r\n this.canMoveLabel = false;//编辑点时,label跟着移动开关\r\n //当前鼠标的经纬度,便捷含label点时刷新 \r\n //x,y鼠标坐标 px,py鼠标与点中心偏移坐标 isCount是否计算偏移\r\n this.mouseNowPosition = {x:0,y:0,px:0,py:0,isCount:false};\r\n this.heatmap = null;//热力图对象\r\n this.clusterMarkers = [];//聚合点位id数组\r\n this.clusterPs = [];//聚合集合点\r\n this.clusterPt = [];//地图中聚合点集合\r\n this.morepoints = [];//海量点集合\r\n this.areaRestriction = null;//区域限制数据\r\n this.movePoints = [];\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false,//是否开启状态\r\n line: {},//线\r\n points: [],//点\r\n distance: 0,//测距长度\r\n mapRangingTool: null//测距回调\r\n };\r\n this.rangingTools = {};//测距点线缓存\r\n this.mapCreated = false\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n // editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n }\r\n this.loadMapJs();\r\n }\r\n //加载地图信息\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.GMap){\r\n resolve(window.GMap);\r\n }\r\n else{\r\n //加载 js\r\n // $.getScript('http://222.92.212.126:25048/gis/html/js/arcgis_js_api/library/3.9/3.9/init.js',()=>{\r\n $.getScript(`${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/init.js`,()=>{\r\n let Heatmap = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/gisheatmap.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n let PointCollection = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([Heatmap,PointCollection]).then(()=>{\r\n //require是关键字 这边用window区别\r\n window.require([ \r\n \"esri/map\", \"esri/layers/ArcGISTiledMapServiceLayer\", \"dojo/on\",\r\n 'esri/geometry/Point','esri/symbols/SimpleMarkerSymbol',\"esri/Color\",\r\n \"esri/graphic\",\"esri/domUtils\",\"esri/toolbars/edit\",\"esri/symbols/PictureMarkerSymbol\",\r\n \"esri/symbols/TextSymbol\",\"esri/symbols/SimpleLineSymbol\",\"esri/toolbars/draw\",\r\n \"esri/layers/WMTSLayer\",\"esri/geometry/Extent\",\"esri/layers/WMTSLayerInfo\",\r\n \"esri/geometry/Polyline\",\"esri/symbols/SimpleFillSymbol\",\"esri/geometry/Circle\",\r\n \"esri/layers/TileInfo\", \"esri/SpatialReference\",\"esri/dijit/BasemapToggle\",\r\n ], function(Map) {\r\n window.GMap = Map;\r\n resolve(window.GMap);\r\n });\r\n })\r\n });\r\n //加载 css\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/themes/tundra/tundra.css`}).appendTo(\"head\");\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: `${configUrl.arcgisServerURL}/html/js/arcgis_js_api/library/3.9/3.9/js/esri/css/esri.css`}).appendTo(\"head\");\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n // 处理数据(整合)\r\n let initData = ()=>{\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction\r\n } = t.props;\r\n let {boundaryName,heatMapData,customizedBoundary} = t.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = t.state;\r\n //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if(t.props.showControl){\r\n t.showControl();\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\r\n }\r\n //添加海量点\r\n if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n this.mapCreated = true\r\n }\r\n //事件监听\r\n let event = ()=>{\r\n //html点位 根据地图移动和zoom计算位置\r\n let changeLabel = ()=>{\r\n for(let i in t.Label){\r\n let cmids = t.clusterMarkers.map((item)=>item.id);\r\n if(t.Label[i]){\r\n let position = t.GM.getGraphic(i).geometry;\r\n let tl = t.state.gis.toScreen(position);\r\n // let tl = t.state.gis.toScreen(t.Label[i].position);\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n t.Label[i].html.css({\r\n position: 'absolute',\r\n top: tl.y + t.Label[i].offset.y - t.labelLayer.y,\r\n left: tl.x + t.Label[i].offset.x - t.labelLayer.x\r\n });\r\n if(!t.Label[i].add && cmids.indexOf(i) == -1){\r\n $(`#${t.htmlPointsId}`).append(t.Label[i].html);\r\n t.Label[i].add = true;\r\n }\r\n }else{\r\n if(t.Label[i].add && cmids.indexOf(i) == -1){\r\n t.Label[i].html.remove();\r\n t.Label[i].add = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n let czIndex = ()=>{\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(t.zIndexGraphics[i]).getNode());\r\n }\r\n }\r\n /*测距功能*/\r\n let rangingToolFun = (e,status)=>{\r\n if(t.rangingTool.isRanging){\r\n //测距开始\r\n //点击位置\r\n let lnlt = [e.mapPoint.x,e.mapPoint.y];\r\n //2个点以上 计算长度\r\n if(t.rangingTool.points.length > 0){\r\n t.rangingTool.distance += getDistance(lnlt,\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n }else{\r\n t.rangingTool.line.paths = [];\r\n }\r\n t.rangingTool.line.paths.push([...lnlt]);\r\n //处理距离展示\r\n let distext = t.rangingTool.distance > 0\r\n ?(t.rangingTool.distance > 1000\r\n ?`总长:${Math.round(t.rangingTool.distance/10)/100}公里`:`总长:${t.rangingTool.distance}米`)\r\n :'起点';\r\n //加点\r\n let point = {\r\n id: t.rangingTool.points.length + 'vtx_g_rang_p'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div style='z-index:1;'>\r\n <div class='vtx-g-rangingPoint'></div>\r\n <div class='vtx-g-rangingDistance'>${distext}</div>\r\n </div>\r\n `,\r\n config: {\r\n width:130,\r\n height:30,\r\n markerContentX: -5.5,\r\n markerContentY: -12.5,\r\n }\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([point]);\r\n //缓存点信息\r\n t.rangingTool.points.push(point);\r\n if(t.rangingTool.line.paths.length == 2){\r\n //加线\r\n t.rangingTool.line = {\r\n id: 'vtx_g_rang_line'+Math.random(),\r\n paths: [...t.rangingTool.line.paths],\r\n config:{\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid'\r\n }\r\n }\r\n t.addLine([t.rangingTool.line]);\r\n }else if(t.rangingTool.line.paths.length > 2){\r\n t.updateLine([{\r\n ...t.rangingTool.line,\r\n paths: [...t.rangingTool.line.paths]\r\n }]);\r\n }\r\n //双击 测距结束\r\n if(status == 'dbl'){\r\n //开启双击缩放功能\r\n t.state.gis.enableDoubleClickZoom();\r\n let rangkey = new Date().getTime()+Math.random();\r\n //加结束点\r\n let end = {\r\n id: 'vtx_g_rang_end'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div>\r\n <div class='vtx-g-rang-exit'>x</div>\r\n </div>\r\n `,\r\n config: {\r\n width:13,\r\n height:13,\r\n markerContentX: -20,\r\n markerContentY: -20,\r\n },\r\n index: rangkey\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([end]);\r\n //删除提示框 \r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n t.removeGraphic('vtx-g-rang-showRangTool-line','line');\r\n //缓存当前这一条测距数据\r\n t.rangingTools[rangkey] = {...t.rangingTool};\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n })\r\n }\r\n t.rangingTool.isRanging = false;\r\n t.rangingTool = {\r\n ...t.rangingTool,\r\n isRanging: false,//是否开启状态\r\n line: {},//线缓存\r\n points: [],//点\r\n distance: 0//测距长度\r\n }\r\n }\r\n }\r\n }\r\n //地图鼠标移入事件\r\n t.state.gis.on('mouse-over',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n let rp = {\r\n id: 'vtx-g-rang-showRangTool',\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: `\r\n <div class='vtx-g-rang-showRangTool'>单击确定起点</div>\r\n `,\r\n config: {\r\n markerContentX: 20,\r\n markerContentY: 20\r\n }\r\n }\r\n t.addPoint([rp]);\r\n }\r\n });\r\n //地图鼠标移出事件\r\n t.state.gis.on('mouse-out',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n t.removeGraphic('vtx-g-rang-showRangTool','point');\r\n }\r\n });\r\n //地图鼠标移动事件\r\n t.state.gis.on('mouse-move',(e)=>{\r\n //鼠标移动地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n //获取测距提示点位\r\n let rp = {...t.GM.getGraphicParam('vtx-g-rang-showRangTool').attributes};\r\n //删除多余数据,避免other层级太多\r\n delete rp.other;\r\n let rcontent = rp.markerContent;\r\n if(t.rangingTool.points.length > 0){\r\n let distance = getDistance(\r\n [e.mapPoint.x,e.mapPoint.y],\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n // 实时计算距离\r\n distance += t.rangingTool.distance;\r\n let distext = distance > 1000\r\n ?`总长:${Math.round(distance/10)/100}公里`:`总长:${distance}米`;\r\n rcontent = `\r\n <div class='vtx-g-rang-showRangTool'>\r\n <div>${distext}</div>\r\n <div>单击确定地点,双击结束</div>\r\n </div>\r\n `;\r\n //测距移动的线\r\n let sl = {\r\n id: 'vtx-g-rang-showRangTool-line',\r\n paths: [\r\n [ t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude\r\n ],\r\n [e.mapPoint.x,e.mapPoint.y]\r\n ],\r\n config: {\r\n color: '#ff0000',\r\n lineWidth: 2,\r\n lineType: 'solid',\r\n pellucidity: 0.5\r\n }\r\n };\r\n if(!t.GM.getGraphic('vtx-g-rang-showRangTool-line')){\r\n t.addLine([sl]);\r\n }else{\r\n t.updateLine([sl]);\r\n }\r\n }\r\n rp = {\r\n ...rp,\r\n longitude: e.mapPoint.x,\r\n latitude: e.mapPoint.y,\r\n markerContent: rcontent\r\n }\r\n t.updatePoint([rp]);\r\n }\r\n //编辑移动\r\n if(t.editId && t.canMoveLabel){\r\n t.mouseNowPosition = {\r\n ...t.mouseNowPosition,\r\n x: e.mapPoint.x,\r\n y: e.mapPoint.y\r\n };\r\n }\r\n });\r\n //地图双击事件\r\n t.state.gis.on('dbl-click',(e)=>{\r\n /*测距功能*/\r\n rangingToolFun(e,'dbl');\r\n })\r\n //地图点击事件\r\n t.state.gis.on('click',(e)=>{\r\n let t = this;\r\n /*测距功能*/\r\n rangingToolFun(e);\r\n //地图点击事件\r\n t.clickMap(e);\r\n });\r\n //鼠标拖拽开始事件\r\n t.state.gis.on('mouse-drag-start',(e)=>{\r\n t.dragMapStart(e);\r\n });\r\n //鼠标拖拽结束事件\r\n t.state.gis.on('mouse-drag-end',(e)=>{\r\n t.dragMapEnd(e);\r\n });\r\n //1.地图移动事件\r\n t.state.gis.on('pan',(e)=>{\r\n //切换html图层位置\r\n $(`#${t.htmlPointsId}`).css({\r\n top: t.labelLayer.y + e.delta.y,\r\n left: t.labelLayer.x + e.delta.x\r\n });\r\n $(`#${t.pointCollectionId}`).css({\r\n top: e.delta.y,\r\n left: e.delta.x\r\n });\r\n \r\n if(t.heatmap){\r\n t.heatmap.changeDiv(e.delta.y,e.delta.x);\r\n }\r\n });\r\n //地图拖动开始\r\n t.state.gis.on('pan-start',(e)=>{\r\n t.moveStart(e);\r\n });\r\n //地图拖动结束\r\n t.state.gis.on('pan-end',(e)=>{\r\n t.moveEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n $(`#${t.pointCollectionId}`).css({\r\n top: 0,\r\n left: 0\r\n });\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //记录html图层位置\r\n t.labelLayer = {\r\n x: eval($(`#${t.htmlPointsId}`).css('left').replace('px','')),\r\n y: eval($(`#${t.htmlPointsId}`).css('top').replace('px',''))\r\n }\r\n //html点位 根据地图移动和zoom计算位置\r\n changeLabel();\r\n //热力图重绘\r\n if(t.heatmap){\r\n t.heatmap.draw();\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //处理区域限制逻辑\r\n if(t.areaRestriction){\r\n t.dealAreaRestriction(e);\r\n }\r\n });\r\n // 地图zoom开始\r\n t.state.gis.on('zoom-start',(e)=>{\r\n t.zoomStart(e);\r\n //隐藏label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'none'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.hide();\r\n }\r\n });\r\n // 地图zoom结束\r\n t.state.gis.on('zoom-end',(e)=>{\r\n t.zoomEnd(e);\r\n //聚合点位id存在,则执行聚合运算\r\n if(t.clusterMarkers.length > 0){\r\n t.dealClusterPoint();\r\n }\r\n //显示label根节点\r\n $(`#${t.htmlPointsId}`).css({display:'inline-block'});\r\n //海量点dom\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\r\n //刷新label点位位置\r\n changeLabel();\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.show();\r\n t.heatmap.draw();\r\n }\r\n //重画海量点\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //见需要在顶部显示的图元重新排位置\r\n for(let i = 0 ; i < t.zIndexGraphics.length; i++){\r\n t.czIndex(t.zIndexGraphics[i]);\r\n }\r\n //重新计算比例尺\r\n if($(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n //计算比例尺数值和长度\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({width: scaleW-2});\r\n $($(`#${t.props.mapId}_zoom_slider_show`).children()[0]).html(toldis);\r\n }\r\n });\r\n //2.图元事件\r\n //图元点击事件\r\n t.state.gis.graphics.on('click',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n t.setVisiblePoints({fitView: e.graphic.attributes.ids});\r\n return false;\r\n }\r\n t.clickGraphic(gid,e);\r\n if(typeof(e.graphic.attributes) == 'object'){\r\n //点击图元的id\r\n //判断是否点击的测距关闭点位\r\n if(gid && gid.indexOf('vtx_g_rang_end') > -1){\r\n let index = t.GM.getGraphicParam(gid).attributes.index;\r\n let ls = t.rangingTools[index].line,\r\n ps = t.rangingTools[index].points;\r\n //删除测距线\r\n t.removeGraphic(ls.id,'line');\r\n //删除关闭点\r\n t.removeGraphic(gid,'point');\r\n //删除中间点\r\n for(let i = 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i].id,'point');\r\n }\r\n //清除测距数据缓存\r\n delete t.rangingTools[index];\r\n }\r\n }\r\n })\r\n //图元鼠标移入事件\r\n t.state.gis.graphics.on('mouse-over',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOverGraphic(gid,e);\r\n });\r\n //图元鼠标移除事件\r\n t.state.gis.graphics.on('mouse-out',(e)=>{\r\n if(!e.graphic.attributes){\r\n return;\r\n }\r\n let gid = e.graphic.attributes.id;\r\n //聚合点位不执行 图元事件\r\n if(gid == 'vtx-clusterPoint'){\r\n return false;\r\n }\r\n t.mouseOutGraphic(gid,e);\r\n });\r\n }\r\n //graphics对象存在 直接处理数据,不存在 通过load事件等待\r\n if(t.state.gis.graphics){\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n }\r\n t.state.gis.on('load',()=>{\r\n $(`#${t.props.mapId}_gc`).css({'z-index': 1});\r\n //添加自定义图元 图层\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.htmlPointsId} class='vtx_gmap_html_points' ></div>`\r\n );\r\n //海量点图元容器\r\n $(`#${t.props.mapId}_layers`).append(\r\n `<div id=${t.pointCollectionId} class='vtx_gmap_html_pointCollection' ></div>`\r\n );\r\n //隐藏比例尺控制 (便于后期控制显示)\r\n $(`#${t.props.mapId}_zoom_slider`).css({display: 'none'});\r\n //事件监听\r\n event();\r\n t.setCenter(t.props.mapCenter);\r\n //处理数据\r\n initData();\r\n });\r\n }\r\n //创建地图 1.gis服务 需要load 2.wmts wms等服务无需load\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapId,mapZoomLevel,minZoom,maxZoom,mapServer} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [120.404,30.915]\r\n };\r\n if(minZoom){\r\n options.minZoom = parseInt(minZoom);\r\n }\r\n if(maxZoom){\r\n options.maxZoom = parseInt(maxZoom);\r\n }\r\n if(!window.VtxMap){\r\n window.VtxMap = {};\r\n }\r\n let fullExtent = (mapServer || {}).fullExtent || {\r\n xmin : -180.0,ymin : -90.0,xmax : 180.0,ymax : 90.0\r\n };\r\n let map = window.VtxMap[mapId] = t.state.gis = new GMap(t.props.mapId.toString(),{\r\n autoResize: true,\r\n logo : false,\r\n isKeyboardNavigation : false,\r\n showAttribution:true,\r\n backgroundColor: '#f1f1f1',\r\n extent: new esri.geometry.Extent({\r\n ...fullExtent,\r\n spatialReference:{[t.wkidStr]:t.wkid}\r\n }),\r\n ...options\r\n });\r\n window.onModalResize = ()=>{\r\n map.resize(true);\r\n map.reposition();\r\n }\r\n t.addMapLayers(mapServer);\r\n t.htmlPointsId = `${mapId}_${t.htmlPointsId}`;\r\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\r\n }\r\n //处理图层\r\n addMapLayers(mapServer = {}){\r\n let t = this;\r\n //清除所有图层服务\r\n t.state.gis.removeAllLayers();\r\n let services = [...(mapServer.services || [])],\r\n servs = [];\r\n for(let im = 0; im < services.length ; im++){\r\n let url = services[im].url;\r\n //从新加载图层\r\n switch(services[im].type){\r\n case 'gis':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let basemap = new esri.layers[services[im].gisServer || 'ArcGISTiledMapServiceLayer'](url[i]);\r\n servs.push(basemap);\r\n }\r\n break;\r\n case 'wmts':\r\n for(let i = 0 ; i < url.length ; i++){\r\n let tileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n \"format\": services[im].format || \"format/png\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": mapServer.origin || {x : -180,y : 90},\r\n \"lods\": mapServer.lods || []\r\n });\r\n let tileExtent = new esri.geometry.Extent(mapServer.fullExtent.xmin, mapServer.fullExtent.ymin, mapServer.fullExtent.xmax, mapServer.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let inTileExtent = new esri.geometry.Extent(mapServer.initialExtent.xmin, mapServer.initialExtent.ymin, mapServer.initialExtent.xmax, mapServer.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let layerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: tileInfo,\r\n fullExtent: tileExtent,\r\n initialExtent: inTileExtent,\r\n identifier: (services[im].layer || {})[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: services[im].tilematrixset || \"31.25m\",\r\n format: services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let resourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [layerInfo],\r\n copyright: ''\r\n };\r\n let options = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: resourceInfo,\r\n layerInfo: layerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], options);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(wmtsLayer.UrlTemplate.substring(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT'),\r\n wmtsLayer.UrlTemplate.indexOf('&TILEMATRIXSET')\r\n ),`&FORMAT=${services[im].format || 'format/png'}`);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n break;\r\n }\r\n }\r\n if(services.length <= 0){\r\n console.warn('!warning 图层服务必选,或图层类型暂不支持,默认天地图浙江地理wmts图层服务!');\r\n for(let im = 0; im < defaultWmtsMapLayers.services.length ; im++){\r\n let url = defaultWmtsMapLayers.services[im].url;\r\n let dtileInfo = new esri.layers.TileInfo({\r\n \"dpi\": 96,\r\n // \"format\": \"tiles\",\r\n \"compressionQuality\": 0,\r\n \"spatialReference\": new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid || 4326\r\n }),\r\n \"rows\": 256,\r\n \"cols\": 256,\r\n \"origin\": defaultWmtsMapLayers.origin || {x : -180,y : 90},\r\n \"lods\": defaultWmtsMapLayers.lods || []\r\n });\r\n let dtileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.fullExtent.xmin, defaultWmtsMapLayers.fullExtent.ymin, defaultWmtsMapLayers.fullExtent.xmax, defaultWmtsMapLayers.fullExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n let dinTileExtent = new esri.geometry.Extent(defaultWmtsMapLayers.initialExtent.xmin, defaultWmtsMapLayers.initialExtent.ymin, defaultWmtsMapLayers.initialExtent.xmax, defaultWmtsMapLayers.initialExtent.ymax, new esri.SpatialReference({\r\n [t.wkidStr]: t.wkid\r\n }));\r\n for(let i = 0 ; i < url.length ; i++){\r\n let dlayerInfo = new esri.layers.WMTSLayerInfo({\r\n tileInfo: dtileInfo,\r\n fullExtent: dtileExtent,\r\n initialExtent: dinTileExtent,\r\n identifier: defaultWmtsMapLayers.services[im].layer[i] || \"SRTM_Color_Index\",\r\n tileMatrixSet: defaultWmtsMapLayers.services[im].tilematrixset || \"31.25m\",\r\n format: defaultWmtsMapLayers.services[im].format || \"png\",\r\n style: \"default\"\r\n });\r\n let dresourceInfo = {\r\n version: \"1.0.0\",\r\n layerInfos: [dlayerInfo],\r\n copyright: ''\r\n };\r\n let doptions = {\r\n serviceMode: \"KVP\",\r\n resourceInfo: dresourceInfo,\r\n layerInfo: dlayerInfo,\r\n };\r\n let wmtsLayer = new esri.layers.WMTSLayer(url[i], doptions);\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace(\r\n wmtsLayer.UrlTemplate.substr(wmtsLayer.UrlTemplate.indexOf('&FORMAT='),\r\n wmtsLayer.UrlTemplate.substr(\r\n wmtsLayer.UrlTemplate.indexOf('&FORMAT=')+1).indexOf('&')+1),\r\n `&FORMAT=${defaultWmtsMapLayers.services[im].format || 'format/png'}`\r\n );\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('SERVICE','service');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&VERSION','&version');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&REQUEST','&request');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&LAYER','&layer');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&STYLE','&format');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&FORMAT','&style');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIXSET','&tileMatrixSet');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEMATRIX','&tileMatrix');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILEROW','&tileRow');\r\n wmtsLayer.UrlTemplate = wmtsLayer.UrlTemplate.replace('&TILECOL','&tileCol');\r\n servs.push(wmtsLayer);\r\n }\r\n }\r\n }\r\n for(let j = 0 ; j < servs.length ; j++){\r\n t.state.gis.addLayer(servs[j]);\r\n }\r\n }\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n //添加绘制点\r\n if(type && type !== 'defined'){\r\n psids = [...t.state.drawIds[type]];\r\n }\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n let marker = null,label = null;\r\n if(item.markerContent){\r\n //html点位\r\n //添加透明点(便于事件处理)\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n `${configUrl.mapServerURL}/images/touming.png`, cg.width, cg.height\r\n );\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n }else{\r\n //图片点位\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n (item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`), cg.width, cg.height\r\n );\r\n markerSymbol.setAngle(cg.deg);\r\n //设置偏移点的位置到左上角(原来在中心)\r\n markerSymbol.setOffset(\r\n cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2)\r\n );\r\n //点位图元\r\n marker = new esri.Graphic(position, markerSymbol,{id:item.id});\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;z-index: ${cg.zIndex || 0};'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //点跳动动画\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,marker);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n //添加图元到地图\r\n t.state.gis.graphics.add(marker);\r\n //统一处理添加点位 含label和html的添加\r\n //处理label的加点\r\n t.dealLabelGraphics(item.id,label);\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: psids\r\n };\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: psids\r\n // }\r\n // });\r\n }else{\r\n t.state.pointIds = psids;\r\n //所有点缓存在state中\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints){\r\n let t = this;\r\n // let dpoints = [],apoints = [];\r\n mapPoints.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //创建arcgis的经纬度对象\r\n let position = new esri.geometry.Point({\r\n longitude: item.longitude,\r\n latitude: item.latitude,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //label对象\r\n let label = null;\r\n if(item.markerContent){\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(`${configUrl.mapServerURL}/images/touming.png`);\r\n }\r\n //设置markercontent的数据,用于label加点到地图\r\n label = {\r\n html: $(item.markerContent),\r\n offset: {\r\n x: cg.markerContentX,\r\n y: cg.markerContentY\r\n },\r\n position\r\n }\r\n\r\n }else{\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setUrl(item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`);\r\n }\r\n gc.symbol.setAngle(cg.deg);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n //设置label的数据,用于label加点到地图\r\n label = {\r\n html: $(\r\n `<div style='margin-left: 0;'>\r\n <div class='${labelClass}'>${cg.labelContent}</div>\r\n </div>`\r\n ),\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: cg.labelPixelX + (cg.markerContentX + cg.width/2),\r\n y: cg.labelPixelY + (cg.markerContentY)\r\n },\r\n position \r\n }\r\n }\r\n }\r\n //symbol 样式信息修改\r\n if(gc.symbol){\r\n gc.symbol.setOffset(cg.markerContentX + cg.width/2, -(cg.markerContentY + cg.height/2));\r\n gc.symbol.setWidth(cg.width);\r\n gc.symbol.setHeight(cg.height);\r\n }\r\n //点位动画效果\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,gc);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n \r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n //gometry 位置信息修改\r\n if(gc.geometry){\r\n // gc.geometry.setLatitude(item.latitude);\r\n // gc.geometry.setLongitude(item.longitude);\r\n gc.setGeometry(position);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(item.longitude,item.latitude,item.longitude,item.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent.update(new esri.geometry.Extent(item.longitude,item.latitude,item.longitude,item.latitude,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(position);\r\n }\r\n }\r\n //删除原有的label 下面从新加载\r\n if(t.Label[item.id]){\r\n t.Label[item.id].html.remove();\r\n }\r\n //刷新点位\r\n t.dealLabelGraphics(item.id,label);\r\n //刷新缓存数据\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.state.gis.graphics.refresh(); \r\n t.moveAnimation();\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let lsids = [...t.state.lineIds];\r\n if(type && type !== 'defined'){\r\n lsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = new esri.geometry.Polyline({\r\n paths: [[...item.paths]],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n //线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(style,color,cg.lineWidth);\r\n //创建线对象\r\n let line = new esri.Graphic(linePath,lineSymbol,{id:item.id});\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.hide();\r\n }else{\r\n line.show();\r\n }\r\n lsids.push(item.id);\r\n //添加线图元\r\n t.state.gis.graphics.add(line);\r\n //处理线缓存\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: lsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: lsids\r\n // }\r\n // });\r\n }else{\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\r\n // });\r\n }\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines){\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removePath(0);\r\n //添加新的点位\r\n gc.geometry.addPath([...item.paths]);\r\n let {_extent} = t.dealData(item.paths); \r\n //设置完点位后 需要刷新下点位的显示范围/\r\n gc._extent.update(_extent.longitude,_extent.latitude,_extent.longitude,_extent.latitude,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n //处理颜色和透明度 使用rgba处理透明度\r\n let color = new esri.Color(cg.color);\r\n color.a = cg.pellucidity;\r\n gc.symbol.setColor(color);\r\n //设置线类型\r\n let style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n style = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.setStyle(style);\r\n //设置线宽\r\n gc.symbol.setWidth(cg.lineWidth);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加面\r\n addPolygon(mapPolygons,type){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n if(type){\r\n pgsids = [...t.state.drawIds[type]];\r\n }\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //处理面的点数据\r\n let polygonPath = esri.geometry.Polygon({\r\n //添加最后一个点,使面闭合\r\n rings: [rings],\r\n spatialReference: { wkid: t.grwkid}\r\n });\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,cg.lineWidth);\r\n //创建面对象\r\n let polygonSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n polygonSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n polygonSymbol.setColor(polygonColor);\r\n //创建面对象\r\n let polygon = new esri.Graphic(polygonPath,polygonSymbol,{id:item.id});\r\n //添加面图元\r\n t.state.gis.graphics.add(polygon);\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: pgsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: pgsids\r\n // }\r\n // });\r\n }else{\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\r\n // });\r\n }\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons){\r\n let t = this;\r\n mapPolygons.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //删除原来的点位\r\n gc.geometry.removeRing(0);\r\n let rings = [...item.rings];\r\n if(item.rings[0][0] != item.rings[item.rings.length -1][0] || item.rings[0][1] != item.rings[item.rings.length -1][1]){\r\n rings = [...rings,item.rings[0]]\r\n }\r\n //添加新的点位\r\n gc.geometry.addRing(rings);\r\n let {_extent} = t.dealData(item.rings);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,new esri.SpatialReference({ wkid: t.grwkid }));\r\n // gc._extent.update(new esri.geometry.Extent(_extent.xmin,_extent.ymin,_extent.xmax,_extent.ymax,{ wkid: t.grwkid }));\r\n // gc._extent._parts[0].extent = {...gc._extent._parts[0].extent,..._extent};\r\n\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n gc.symbol.outline.setStyle(lineStyle);\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n gc.symbol.outline.setColor(lineColor);\r\n //设置线宽\r\n gc.symbol.outline.setWidth(cg.lineWidth);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let polygonColor = new esri.Color(cg.color);\r\n polygonColor.a = cg.pellucidity;\r\n gc.symbol.setColor(polygonColor);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles,type){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if(type){\r\n ccsids = [...t.state.drawIds[type]];\r\n }\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //创建圆对象\r\n let circle = new esri.Graphic(position,circleSymbol,{id:item.id});\r\n //添加图元对象\r\n t.state.gis.graphics.add(circle);\r\n //缓存数据\r\n ccsids.push(item.id);\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //添加绘制点\r\n if(type){\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n // t.setState({\r\n // drawIds:{\r\n // ...t.state.drawIds,\r\n // [type]: ccsids\r\n // }\r\n // });\r\n }else{\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\r\n // });\r\n }\r\n }\r\n //更新圆\r\n updateCircle(mapCircles){\r\n let t = this;\r\n mapCircles.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let center = new esri.geometry.Point(parseFloat(item.longitude),parseFloat(item.latitude));\r\n //创建圆 位置对象\r\n let position = new esri.geometry.Circle({center:center,radius: parseFloat(item.radius)});\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(cg.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = new esri.Color(cg.lineColor);\r\n lineColor.a = cg.lineOpacity;\r\n //生成线类型对象\r\n let lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,parseFloat(cg.lineWidth));\r\n //创建面对象\r\n let circleSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n circleSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let circleColor = new esri.Color(cg.color);\r\n circleColor.a = cg.pellucidity;\r\n circleSymbol.setColor(circleColor);\r\n //更新位置\r\n gc.setGeometry(position);\r\n //更新样式\r\n gc.setSymbol(circleSymbol);\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n }\r\n });\r\n });\r\n //刷新图元\r\n t.state.gis.graphics.refresh();\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = (d.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []){\r\n let t = this;\r\n data.map((ds,ind)=>{\r\n t.morepoints.map((item,index)=>{\r\n if(item.id == ds.id){\r\n let points = (ds.points || []).map((d,i)=>{\r\n let p = new esri.geometry.Point(d.lng,d.lat);\r\n p = t.state.gis.toScreen(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: t.state.gis.width,\r\n height: t.state.gis.height\r\n };\r\n item.value.reDraw(points,options);\r\n }\r\n })\r\n })\r\n }\r\n //删除海量点\r\n clearPointCollection(ids = []){\r\n let t = this;\r\n ids.map((id,ind)=>{\r\n t.morepoints.map(function (item,index) {\r\n if(id == item.id){\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n //删除全部海量点\r\n clearAllPointCollection(){\r\n let t = this;\r\n t.morepoints.map(function (item,index) {\r\n item.value.clear();\r\n });\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}){\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7\r\n };\r\n if(d.config){\r\n cg = {...cg,...d.config};\r\n }\r\n if(!t.heatmap){\r\n t.heatmap = new GMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.heatmap.initialize(t.state.gis,t.props.mapId);\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: eval(cg.opacity) * 100,\r\n visible: cg.visible\r\n }\r\n if(cg.gradient){\r\n option.gradient = cg.gradient;\r\n }\r\n t.heatmap.setOptions(option);\r\n t.heatmap.setDataSet({\r\n max: cg.max,\r\n data: d.data || []\r\n });\r\n if(cg.visible){\r\n t.isHideHeatMap = false;\r\n t.heatmap.show();\r\n }else{\r\n t.isHideHeatMap = true;\r\n t.heatmap.hide();\r\n }\r\n }\r\n /*事件处理*/\r\n //图元事件\r\n clickGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n //图元鼠标移开事件\r\n mouseOutGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*地图事件*/\r\n //地图点击事件\r\n clickMap(e){\r\n let t = this;\r\n if(typeof(t.props.clickMap) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: (e.mapPoint || {}).x,\r\n lat: (e.mapPoint || {}).y\r\n };\r\n obj.pixel = {\r\n x: (e.screenPoint || {}).x,\r\n y: (e.screenPoint || {}).y\r\n };\r\n t.props.clickMap(obj);\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(e){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(e){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n }\r\n }\r\n //地图移动结束后事件\r\n moveEnd(e){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveEnd(obj);\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(e){\r\n let t = this;\r\n if(typeof(t.props.zoomStart) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(e){\r\n let t = this;\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n }\r\n }\r\n /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n t.state.gis.centerAt(new esri.geometry.Point(gt[0],gt[1],new esri.SpatialReference({[t.wkidStr]: t.wkid})));\r\n }\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.state.gis.getZoom();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(parseInt(zoom));\r\n }\r\n //将制定图元展示在视野内 (强制改变地图中心位置)\r\n /*\r\n 参数arg格式如下1,2\r\n 1.string 格式如:'1,a,2,3,4'\r\n 2.数组 ['1','2']\r\n */\r\n setVisiblePoints (mapVisiblePoints) {\r\n let t = this;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];//图元id集合\r\n let obj = [];//经纬度集合\r\n switch(mapVisiblePoints.fitView){\r\n case 'point':\r\n arg = this.state.pointIds;\r\n break;\r\n case 'line':\r\n arg = this.state.lineIds;\r\n break;\r\n case 'polygon':\r\n arg = this.state.polygonIds;\r\n break;\r\n case 'circle':\r\n arg = this.state.circleIds;\r\n break;\r\n case 'all':\r\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\r\n break;\r\n default:\r\n arg = mapVisiblePoints.fitView;\r\n break;\r\n }\r\n\r\n\r\n if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n }else if(arg instanceof Array){\r\n ary = arg;\r\n }\r\n if(ary[0] instanceof Array){\r\n obj = [...obj,...ary];\r\n }else{\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let g = t.GM.getGraphicParam(ary[i]);\r\n switch(g.geometry.type){\r\n case 'point':\r\n case 'circle':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n break;\r\n case 'polyline':\r\n obj = [...obj,...g.geometry.paths];\r\n break;\r\n case 'polygon':\r\n obj = [...obj,...g.geometry.rings];\r\n break;\r\n }\r\n }\r\n }\r\n let {_extent} = t.dealData(obj);\r\n if(_extent.xmin && _extent.xmax && _extent.ymin && _extent.ymax){\r\n //避免偏移引起的点位漏看\r\n _extent = t.dealExtendBounds(_extent,100);\r\n let ext = new esri.geometry.Extent({..._extent,spatialReference:{ [t.wkidStr]: t.wkid }});\r\n if(!type || type == 'all' || type == 'zoom'){\r\n t.state.gis.setExtent(ext);\r\n }else if(type == 'center'){\r\n t.state.gis.centerAt(ext.getCenter());\r\n }\r\n }\r\n }\r\n /*get方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t = this;\r\n let extent = t.state.gis.geographicExtent;\r\n return [(extent.xmax + extent.xmin)/2,(extent.ymax + extent.ymin)/2];\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getLevel();\r\n }\r\n //获取当前中心点\r\n getCenter(){\r\n let t = this;\r\n let {xmin, ymin, xmax, ymax} = t.state.gis.extent;\r\n return {lng:(xmin+xmax)/2,lat: (ymin+ymax)/2};\r\n }\r\n //获取图元数据\r\n getGraphic (id) {\r\n let t = this;\r\n if(!id){\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if(!gg){\r\n return false;\r\n }\r\n let p = {},pts = [],lng = 0,lat = 0;\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.geometry.x;\r\n lat = gg.geometry.y;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n pts = gg.geometry.paths[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n pts = gg.geometry.rings[0];\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts\r\n }\r\n },\r\n area: getPolygonArea(pts)\r\n }\r\n break;\r\n case 'circle':\r\n lng = gg.geometry.center.x;\r\n lat = gg.geometry.center.y;\r\n let radius = 0;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius\r\n }\r\n },\r\n area: Math.PI*radius*radius\r\n }\r\n break;\r\n }\r\n return p;\r\n }\r\n //获取地图当前的位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis._getAvailExtent();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.xmin,\r\n lat : nowBounds.ymin\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.xmax,\r\n lat : nowBounds.ymax\r\n };\r\n obj.nowCenter = t.getCenter();\r\n obj.zoom = t.getZoomLevel();\r\n obj.mapSize = {width: t.state.gis.width,height: t.state.gis.height};\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n /*工具方法*/\r\n vtxRangingTool(mapRangingTool){\r\n let t = this;\r\n //关闭测距时双击地图缩放功能\r\n t.state.gis.disableDoubleClickZoom();\r\n //开启测距状态\r\n if(!t.rangingTool.isRanging){\r\n t.rangingTool.isRanging = true;\r\n }\r\n //初始测距回调\r\n if(!t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool = mapRangingTool;\r\n }\r\n }\r\n /*功能方法*/\r\n //单个删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n //刪除label\r\n if(t.Label[id]){\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if(!!graphic){\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n t.state.gis.graphics.remove(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n //清空地图\r\n clearAll(){\r\n let t = this;\r\n //清空热力图\r\n if(t.heatmap){\r\n t.heatmap.clear();\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n t.clearAllPointCollection();\r\n //循环所有id删除\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for(let i= 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i],'point');\r\n }\r\n // 删除线\r\n for(let i= 0 ; i < ls.length ; i++){\r\n t.removeGraphic(ls[i],'line');\r\n }\r\n // 删除面\r\n for(let i= 0 ; i < pgs.length ; i++){\r\n t.removeGraphic(pgs[i],'polygon');\r\n }\r\n // 删除圆\r\n for(let i= 0 ; i < cs.length ; i++){\r\n t.removeGraphic(cs[i],'circle');\r\n }\r\n //删除绘制的点\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n for(let i= 0 ; i < point.length ; i++){\r\n t.removeGraphic(point[i]);\r\n }\r\n for(let i= 0 ; i < polyline.length ; i++){\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for(let i= 0 ; i < polygon.length ; i++){\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for(let i= 0 ; i < circle.length ; i++){\r\n t.removeGraphic(circle[i]);\r\n }\r\n for(let i= 0 ; i < rectangle.length ; i++){\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(){\r\n let t = this,type = '',\r\n location={top: 20, left: 20},ls = {top: 20,left: 60},\r\n w = t.state.gis.width,h = t.state.gis.height;\r\n switch(t.props.showControl.location){\r\n case 'tl':\r\n location={top: 20, left: 20};\r\n ls = {top: 20,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: 20};\r\n }\r\n break;\r\n case 'bl':\r\n location={top: h - 83, left: 20};\r\n ls = {top: h - 50,left: 70};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: 20};\r\n }\r\n break;\r\n case 'tr':\r\n location={top: 20, left: w - 52};\r\n ls = {top: 20,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: 20,left: w - 93};\r\n }\r\n break;\r\n case 'br':\r\n location={top: h - 83 , left: w - 52};\r\n ls = {top: h - 50,left: w - 152};\r\n if(!t.props.showControl.type){\r\n ls = {top: h - 50,left: w - 93};\r\n }\r\n break;\r\n }\r\n if(!$(`#${t.props.mapId}_zoom_slider_show`)[0]){\r\n let getScale = t.state.gis.getScale()*0.025399998/96;\r\n //分母系数\r\n let coefficient = Math.pow(10,Math.floor(getScale).toString().length-1);\r\n //判断系数 , 总长度值\r\n let gs = getScale/coefficient,toldis = 1,isCent = false;\r\n if(gs < 1){\r\n isCent = true;\r\n gs *= 10;\r\n }\r\n //计算比例尺数值和长度\r\n if(gs >= 5){\r\n toldis = 5*coefficient*100\r\n }else if(gs >= 2){\r\n toldis = 2*coefficient*100;\r\n }else{\r\n toldis = 1*coefficient*100;\r\n }\r\n let scaleW = toldis/getScale;\r\n if(isCent){\r\n scaleW /= 10;\r\n toldis /= 10;\r\n }\r\n //宽度矫正处理\r\n if(scaleW<50){\r\n toldis *= 1.5;\r\n scaleW = toldis/getScale;\r\n }\r\n //处理比例尺值显示\r\n toldis = toldis >= 1000? `${Math.round(toldis/1000)}公里`: `${toldis}米`;\r\n let sliderShow = `\r\n <div id='${t.props.mapId}_zoom_slider_show' \r\n style='position:absolute;z-index:100;width:${scaleW-2}px;'\r\n >\r\n <div class='zoom_slider_show_scale'>${toldis}</div>\r\n <div class='zoom_slider_show_bottom'></div>\r\n </div>\r\n `\r\n $(`#${t.props.mapId}_root`).append(sliderShow);\r\n }\r\n switch(t.props.showControl.type){\r\n case 'all':\r\n case 'small':\r\n case 'pan':\r\n case 'zoom':\r\n $(`#${t.props.mapId}_zoom_slider`).css({\r\n ...location,\r\n display: 'block'\r\n });\r\n default:\r\n $(`#${t.props.mapId}_zoom_slider_show`).css({\r\n ...ls\r\n });\r\n break;\r\n }\r\n }\r\n //编辑图元\r\n doEdit(id){\r\n let t = this;\r\n if(!t.editToolbar){\r\n t.editToolbar = new esri.toolbars.Edit(t.state.gis);\r\n t.editToolbarC = new esri.toolbars.Edit(t.state.gis);\r\n let changeLabel = (point,eid,gcparam)=>{\r\n let label = '',cg = gcparam.attributes.config;\r\n //判断是不是html点\r\n if(!!gcparam.attributes.markerContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n offset: {\r\n x: cg.markerContentX || 100,\r\n y: cg.markerContentY || 30\r\n },\r\n position: point\r\n }\r\n }else{\r\n //判断是否有label\r\n if(gcparam.attributes.canShowLabel && cg.labelContent){\r\n label = {\r\n html: t.Label[eid].html,\r\n //offset 需要处理 图片点位的位置(将点位偏移和宽度加入计算)\r\n offset: {\r\n x: (cg.labelPixelX || 0) + ((cg.markerContentX || -15) + (cg.width || 30)/2),\r\n y: (cg.labelPixelY || 34)+ (cg.markerContentY || -15)\r\n },\r\n position: point\r\n }\r\n }\r\n }\r\n if(label){\r\n t.dealLabelGraphics(eid,label);\r\n }\r\n }\r\n /*点位编辑事件*/\r\n //编辑关闭事件\r\n t.editToolbar.on('deactivate',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let obj = {};\r\n if(eid == 'vtx-circleMove'){\r\n let param = t.getGraphic(t.editId);\r\n obj = {\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n };\r\n }else{\r\n let param = t.getGraphic(eid);\r\n obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n if(eid == 'vtx-circleMove'){\r\n t.removeGraphic('vtx-circleMove','point');\r\n t.removeGraphic('vtx-circleRadius','point');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleMove'),1);\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf('vtx-circleRadius'),1);\r\n }\r\n }\r\n if(t.zIndexGraphics.indexOf(eid) > -1){\r\n t.zIndexGraphics.splice(t.zIndexGraphics.indexOf(eid),1);\r\n }\r\n t.editId = '';\r\n })\r\n //移动开始事件 开启开关\r\n t.editToolbar.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件\r\n t.editToolbar.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n });\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(position);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: position,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px - t.circleEditPXY.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n return false;\r\n }\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n changeLabel(position,eid,gcparam);\r\n });\r\n //移动结束后事件\r\n t.editToolbar.on('graphic-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n //关闭label移动限制开关\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n //判断是不是点\r\n if(gcparam.geometryType == 'point'){\r\n changeLabel(e.graphic.geometry,eid,gcparam);\r\n }\r\n //圆中心点的移动\r\n if(eid == 'vtx-circleMove'){\r\n t.GM.getGraphic('vtx-circleMove').setGeometry(e.graphic.geometry);\r\n let circleCenter = new esri.geometry.Circle({\r\n center: e.graphic.geometry,\r\n radius: t.GM.getGraphic(t.editId).geometry.radius\r\n });\r\n t.GM.getGraphic(t.editId).setGeometry(circleCenter);\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(\r\n new esri.geometry.Point({\r\n longitude: e.graphic.geometry.x - t.circleEditPXY.px,\r\n latitude: e.graphic.geometry.y - t.circleEditPXY.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n })\r\n );\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n return false;\r\n }\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n t.props.editGraphicChange({\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n });\r\n }\r\n });\r\n //多折线 多边形 圆事件处理\r\n t.editToolbar.on('vertex-move-stop',(e)=>{\r\n let eid = e.graphic.attributes.id;\r\n let gcparam = t.GM.getGraphicParam(eid);\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(eid);\r\n let obj = {\r\n e:e.graphic,param,\r\n id: eid,\r\n geometry: e.graphic.geometry,\r\n }\r\n switch(obj.geometry.type){\r\n case 'polyline':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n paths: obj.geometry.paths[0]\r\n }\r\n obj.distance = t.calculateDistance(obj.geometry.paths);\r\n break;\r\n case 'polygon':\r\n obj.geometry = {\r\n ...obj.geometry,\r\n rings: obj.geometry.rings[0]\r\n }\r\n obj.area = getPolygonArea(obj.geometry.rings);\r\n break;\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n });\r\n //移动开始事件 开启开关 [圆半径]\r\n t.editToolbarC.on('graphic-move-start',(e)=>{\r\n //label可以跟着点位移动,避免label直接跟着鼠标移动\r\n t.canMoveLabel = true;\r\n });\r\n //移动中事件 [圆半径]\r\n t.editToolbarC.on('graphic-move',(e)=>{\r\n //计算鼠标点 与中心点的偏移值\r\n if(!t.mouseNowPosition.isCount){\r\n t.mouseNowPosition.isCount = true;\r\n t.mouseNowPosition.px = t.mouseNowPosition.x - e.graphic.geometry.x;\r\n t.mouseNowPosition.py = t.mouseNowPosition.y - e.graphic.geometry.y;\r\n }\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n });\r\n //移动结束后事件 [圆半径]\r\n t.editToolbarC.on('graphic-move-stop',(e)=>{\r\n t.canMoveLabel = false;\r\n t.mouseNowPosition.isCount = false;\r\n let cgc = t.GM.getGraphic(t.editId),\r\n eid = e.graphic.attributes.id,\r\n position = new esri.geometry.Point({\r\n longitude: t.mouseNowPosition.x - t.mouseNowPosition.px,\r\n latitude: t.mouseNowPosition.y - t.mouseNowPosition.py,\r\n spatialReference:{ wkid: t.grwkid }\r\n }),\r\n radius = t.calculatePointsDistance(\r\n [cgc.geometry.center.x,cgc.geometry.center.y],\r\n [t.mouseNowPosition.x - t.mouseNowPosition.px,t.mouseNowPosition.y - t.mouseNowPosition.py]\r\n );\r\n t.circleEditPXY = {\r\n px: cgc.geometry.center.x - (t.mouseNowPosition.x - t.mouseNowPosition.px),\r\n py: cgc.geometry.center.y - (t.mouseNowPosition.y - t.mouseNowPosition.py)\r\n }\r\n cgc.setGeometry(new esri.geometry.Circle({\r\n center: new esri.geometry.Point(cgc.geometry.center.x,cgc.geometry.center.y),\r\n radius: radius\r\n }));\r\n t.GM.getGraphic('vtx-circleRadius').setGeometry(position);\r\n t.state.gis.graphics.refresh();\r\n if('editGraphicChange' in t.props && typeof(t.props.editGraphicChange) == 'function'){\r\n let param = t.getGraphic(t.editId);\r\n t.props.editGraphicChange({\r\n area: Math.PI*Math.pow(t.GM.getGraphic(t.editId).geometry.radius,2),\r\n e: t.GM.getGraphic(t.editId),\r\n param,\r\n id: t.editId,\r\n geometry: t.GM.getGraphic(t.editId).geometry,\r\n });\r\n }\r\n })\r\n }\r\n //取消上一次的编辑\r\n if(t.editId){\r\n t.editToolbar.deactivate();\r\n t.editToolbarC.deactivate();\r\n }\r\n //获取图元对象\r\n let gc = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n if(!gc)return;\r\n switch(gp.geometryType){\r\n case 'point':\r\n //将编辑的图元放在最上面\r\n t.czIndex(id);\r\n if(t.zIndexGraphics.indexOf(id) == -1){\r\n t.zIndexGraphics.push(id);\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , gc);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n t.editToolbar.activate(esri.toolbars.Edit.EDIT_VERTICES , gc);\r\n break;\r\n case 'circle':\r\n // 移动圆的中心点 和 移动圆的半径点\r\n t.addPoint([{\r\n id: 'vtx-circleMove',\r\n longitude: gc.geometry.center.x,\r\n latitude: gc.geometry.center.y,\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n },{\r\n id: 'vtx-circleRadius',\r\n longitude: gc.geometry.rings[0][0][0],\r\n latitude: gc.geometry.rings[0][0][1],\r\n url: 'http://api0.map.bdimg.com/images/node.gif',\r\n config: {\r\n width: 11,\r\n height: 11,\r\n markerContentY: -5.5,\r\n markerContentX: -5.5\r\n }\r\n }]);\r\n t.circleEditPXY = {\r\n px: gc.geometry.center.x - gc.geometry.rings[0][0][0],\r\n py: gc.geometry.center.y - gc.geometry.rings[0][0][1]\r\n }\r\n t.czIndex('vtx-circleMove');\r\n t.czIndex('vtx-circleRadius');\r\n if(t.zIndexGraphics.indexOf('vtx-circleMove') == -1){\r\n t.zIndexGraphics.push('vtx-circleMove');\r\n }\r\n if(t.zIndexGraphics.indexOf('vtx-circleRadius') == -1){\r\n t.zIndexGraphics.push('vtx-circleRadius');\r\n }\r\n t.editToolbar.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleMove'));\r\n t.editToolbarC.activate(esri.toolbars.Edit.MOVE , t.GM.getGraphic('vtx-circleRadius'));\r\n break;\r\n }\r\n //开启点编辑功能\r\n t.editId = id;\r\n }\r\n //关闭编辑\r\n endEdit(){\r\n let t = this;\r\n t.editToolbar.deactivate();\r\n //单独为了圆的\r\n t.editToolbarC.deactivate();\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this;\r\n if(!t.drawToolbar){\r\n t.drawToolbar = new esri.toolbars.Draw(t.state.gis,{\r\n drawTime: 90,\r\n showTooltips: false\r\n });\r\n t.drawToolbar.on('draw-complete',(e)=>{\r\n //关闭绘制事件\r\n t.closeDraw();\r\n //返回参数\r\n let param = {};\r\n // 绘制内部管理的图元\r\n if(t.drawParam.geometryType == 'point'){\r\n t.addPoint([{\r\n id: t.drawParam.data.id,\r\n longitude: e.geometry.x,\r\n latitude: e.geometry.y,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'point');\r\n //处理点返回参数\r\n param = {\r\n id: t.drawParam.data.id,\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n url: t.drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n config: {\r\n width: t.drawParam.parameter.width || 30,\r\n height: t.drawParam.parameter.height || 30\r\n }\r\n },\r\n geometry: e.geometry,\r\n geometryType: 'point',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //线\r\n if(t.drawParam.geometryType == 'polyline'){\r\n t.addLine([{\r\n id: t.drawParam.data.id,\r\n paths: e.geometry.paths[0],\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],'polyline');\r\n //处理线返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.paths[0]);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n paths: e.geometry.paths[0],\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n distance: t.calculateDistance(e.geometry.paths[0]),\r\n geometryType: 'polyline',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'polygon' || t.drawParam.geometryType == 'rectangle'){\r\n let rs = [...e.geometry.rings[0]];\r\n rs.pop();\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: rs,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n //处理面返回参数\r\n let {lnglatAry,_extent} = t.dealData(e.geometry.rings[0]);\r\n param={\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: e.geometry.rings[0],\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(e.geometry.rings[0]),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if(t.drawParam.geometryType == 'circle'){\r\n if(e.geometry._extent){\r\n let radius = getDistance(\r\n [e.geometry._extent.xmin,e.geometry._extent.ymin],\r\n [e.geometry._extent.xmax,e.geometry._extent.ymax],\r\n t.state.gis,\r\n t.grwkid\r\n )/2;\r\n radius = Math.sqrt(Math.pow(radius,2)*2)/2;\r\n t.addCircle([{\r\n id: t.drawParam.data.id,\r\n longitude: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n latitude: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2,\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }],t.drawParam.geometryType);\r\n param = {\r\n area: Math.PI*Math.pow(radius,2),\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n geometry: {\r\n type: t.drawParam.geometryType,\r\n x: (e.geometry._extent.xmin+e.geometry._extent.xmax)/2,\r\n y: (e.geometry._extent.ymin+e.geometry._extent.ymax)/2, \r\n radius\r\n },\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n }\r\n // t.GM.setGraphicParam(t.drawParam.data.id,param);\r\n //绘制返回\r\n if('drawEnd' in t.props && typeof(t.props.drawEnd) == 'function'){\r\n t.props.drawEnd(param);\r\n }\r\n })\r\n }\r\n //避免连点\r\n t.closeDraw();\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'crosshair'\r\n });\r\n let drawParam = {};\r\n //初始化参数\r\n drawParam.geometryType = obj.geometryType || 'point';\r\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\r\n drawParam.data = obj.data?{...obj.data}:{};\r\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\r\n //缓存 绘制的数据\r\n t.drawParam = drawParam;\r\n //判断id是否存在\r\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\r\n if(len > -1){\r\n //如果id存在 删除存在的图元,清除drawId中的id数据\r\n t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let lineSymbol = null,fillSymbol = null;\r\n if(drawParam.geometryType !== 'point'){\r\n //线类型\r\n let lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n switch(drawParam.parameter.lineType){\r\n case 'solid':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_SOLID;\r\n break;\r\n case 'dashed':\r\n lineStyle = esri.symbol.SimpleLineSymbol.STYLE_DASH;\r\n break;\r\n }\r\n //处理边框线颜色和透明度 使用rgba处理透明度\r\n let lineColor = null;\r\n //线和面圆的线透明参数不同\r\n if(drawParam.geometryType == 'polyline'){\r\n lineColor = new esri.Color(drawParam.parameter.color);\r\n lineColor.a = drawParam.parameter.pellucidity;\r\n }else{\r\n lineColor = new esri.Color(drawParam.parameter.lineColor);\r\n lineColor.a = drawParam.parameter.lineOpacity;\r\n }\r\n //生成线类型对象\r\n lineSymbol = new esri.symbol.SimpleLineSymbol(lineStyle,lineColor,drawParam.parameter.lineWidth);\r\n }else{\r\n //点的样式\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`, \r\n (drawParam.parameter.width || 30), (drawParam.parameter.height || 30)\r\n );\r\n //设置点偏移\r\n markerSymbol.setOffset(\r\n (drawParam.parameter.markerContentX || -15) + (drawParam.parameter.width || 30)/2,\r\n -((drawParam.parameter.markerContentY || -15) + (drawParam.parameter.height || 30)/2)\r\n );\r\n t.drawToolbar.setMarkerSymbol(markerSymbol);\r\n }\r\n //处理面 矩形 圆的样式\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n //创建面对象\r\n fillSymbol = new esri.symbol.SimpleFillSymbol();\r\n //添加边框线数据\r\n fillSymbol.setOutline(lineSymbol);\r\n //处理填充颜色和透明度 使用rgba处理透明度\r\n let dColor = new esri.Color(drawParam.parameter.color);\r\n dColor.a = drawParam.parameter.pellucidity;\r\n fillSymbol.setColor(dColor);\r\n //添加线的样式\r\n t.drawToolbar.setFillSymbol(fillSymbol);\r\n t.drawToolbar.setRespectDrawingVertexOrder(true);\r\n }\r\n //重新设置绘制类型和数据\r\n let geometryType = esri.toolbars.Draw.POINT;\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n geometryType = esri.toolbars.Draw.POINT;\r\n\r\n break;\r\n case 'polyline':\r\n geometryType = esri.toolbars.Draw.POLYLINE;\r\n //添加线的样式\r\n t.drawToolbar.setLineSymbol(lineSymbol);\r\n break;\r\n case 'polygon':\r\n geometryType = esri.toolbars.Draw.POLYGON;\r\n break;\r\n case 'circle':\r\n geometryType = esri.toolbars.Draw.CIRCLE;\r\n break;\r\n case 'rectangle':\r\n geometryType = esri.toolbars.Draw.RECTANGLE;\r\n break;\r\n }\r\n t.drawToolbar.activate(geometryType);\r\n }\r\n //关闭绘制\r\n closeDraw(){\r\n let t = this;\r\n if(t.drawToolbar){\r\n $(`#${t.props.mapId}_container`).css({\r\n cursor: 'default'\r\n });\r\n //先关闭上次绘制的事件\r\n t.drawToolbar.finishDrawing();\r\n //销毁上次绘制的类型设定\r\n t.drawToolbar.deactivate();\r\n }\r\n }\r\n //点聚合\r\n cluster(ids){\r\n let t = this;\r\n //获取聚合点id 空则是全部点位\r\n t.clusterMarkers = t.clusterToolFunction(ids);\r\n //处理聚合点逻辑\r\n t.dealClusterPoint();\r\n }\r\n //处理聚合点逻辑\r\n dealClusterPoint(){\r\n let t = this;\r\n //当前窗口信息\r\n let ext = t.dealExtendBounds(t.state.gis.extent);\r\n t.clusterPs = [];\r\n //清除原来聚合点\r\n for(let i = 0 ; i < t.clusterPt.length; i++){\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphic);\r\n t.state.gis.graphics.remove(t.clusterPt[i].graphicText);\r\n }\r\n for(let i = 0; i < t.clusterMarkers.length ; i++){\r\n t.clusterMarkers[i].isCluster = false;\r\n }\r\n //处理后的聚合点位数据\r\n for(let i = 0 ; i < t.clusterMarkers.length ; i++){\r\n let gc = t.clusterMarkers[i].marker,\r\n distance = 4000000,newCluster = null;\r\n //过滤不是点的图元id\r\n if(gc.geometry.type !== 'point'){\r\n console.warning(`设置聚合的图元不符号类型!`);\r\n }else{\r\n //过滤窗口视线外的点位\r\n if(ext.contains(gc.geometry)){\r\n //聚合点集合空时 创建一个集合\r\n if(t.clusterPs.length === 0){\r\n t.createCluster(t.clusterMarkers[i]);\r\n }else{\r\n for(let j = 0 ; j < t.clusterPs.length; j++){\r\n //判断点是否在聚合点范围内\r\n let d = t.calculatePointsDistance(\r\n [gc.geometry.x,gc.geometry.y],\r\n [t.clusterPs[j].center.x,t.clusterPs[j].center.y]\r\n )\r\n //获取最优聚合点\r\n if(d < distance){\r\n distance = d;\r\n newCluster = t.clusterPs[j];\r\n }\r\n }\r\n //存在聚合 就添加进聚合 没有聚合就新建一个自己的聚合\r\n if(newCluster && newCluster.extent.contains(gc.geometry)){\r\n t.clusterMarkers[i].isCluster = true;\r\n newCluster.markers.push(t.clusterMarkers[i]);\r\n newCluster.isreal = true;\r\n }else{\r\n t.createCluster(t.clusterMarkers[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //添加cluster聚合点\r\n for(let i = 0 ; i < t.clusterPs.length; i++){\r\n if(t.clusterPs[i].isreal){\r\n //添加聚合集合点\r\n t.addClusterPoint(t.clusterPs[i]);\r\n }else{\r\n let m = t.clusterPs[i].markers[0];\r\n if(!m.marker.getNode()){\r\n //存在html的label处理\r\n if(m.html){\r\n t.dealLabelGraphics(m.id,m.html);\r\n }\r\n //添加回原有的点\r\n t.state.gis.graphics.add(m.marker);\r\n }\r\n }\r\n }\r\n }\r\n //处理聚合点的添加\r\n addClusterPoint(cluster){\r\n let t = this;\r\n let len = cluster.markers.length,ids=[];\r\n let url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m4.png',\r\n w = 90;\r\n if(len < 50){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m3.png';\r\n w = 78;\r\n }\r\n if(len < 30){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m2.png';\r\n w = 66;\r\n }\r\n if(len < 20){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m1.png';\r\n w = 56;\r\n }\r\n if(len < 10){\r\n url = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m0.png';\r\n w = 53;\r\n }\r\n //处理聚合中点位\r\n for(let i = 0 ; i < len ; i++){\r\n ids.push(cluster.markers[i].id);\r\n if(cluster.markers[i].marker.getNode()){\r\n t.state.gis.graphics.remove(cluster.markers[i].marker);\r\n if(cluster.markers[i].html){\r\n cluster.markers[i].html.html.remove();\r\n }\r\n }\r\n }\r\n //添加聚合点\r\n let markerSymbol = new esri.symbol.PictureMarkerSymbol(\r\n url, w, w\r\n );\r\n //设置文字点位(记录聚合点数量)\r\n let text = new esri.symbol.TextSymbol(len).setColor(new esri.Color('#fff'));\r\n //文字居中\r\n text.setOffset(0.5,-5);\r\n //创建点位对象\r\n let graphic = new esri.Graphic(cluster.center,markerSymbol,{id: 'vtx-clusterPoint',ids,cluster}),\r\n graphicText = new esri.Graphic(cluster.center,text,{id: 'vtx-clusterPoint',ids,cluster});\r\n //添加聚合点位到地图\r\n t.state.gis.graphics.add(graphic);\r\n t.state.gis.graphics.add(graphicText);\r\n t.clusterPt.push({graphic,graphicText});\r\n }\r\n //新增cluster\r\n createCluster(m){\r\n let t = this;\r\n let gc = m.marker;\r\n //不是集合里面的点\r\n if(!m.isCluster){\r\n m.isCluster = true;\r\n t.clusterPs.push({\r\n extent: t.dealExtendBounds(gc._extent),\r\n center: gc.geometry,\r\n markers: [m],\r\n isreal: false\r\n });\r\n }\r\n }\r\n //处理聚合的间距\r\n dealExtendBounds(extent,area){\r\n let t = this,bound = area || 60;\r\n let ne = new esri.geometry.Point(extent.xmax,extent.ymax),\r\n sw = new esri.geometry.Point(extent.xmin,extent.ymin),\r\n pixelNe = t.state.gis.toScreen(ne),\r\n pixelSw = t.state.gis.toScreen(sw);\r\n pixelNe.x += bound;\r\n pixelNe.y -= bound;\r\n pixelSw.x -= bound;\r\n pixelSw.y += bound;\r\n let newNe = t.state.gis.toMap(pixelNe),\r\n newSw = t.state.gis.toMap(pixelSw);\r\n return new esri.geometry.Extent(newSw.x,newSw.y,newNe.x,newNe.y, new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n let markerList = [];\r\n for(let i = 0; i < ary.length ; i++){\r\n let obj = {\r\n id: ary[i],\r\n marker: t.GM.getGraphic(ary[i]),\r\n isCluster: false\r\n }\r\n if(t.Label[ary[i]]){\r\n obj.html = t.Label[ary[i]];\r\n }\r\n markerList.push(obj);\r\n }\r\n return markerList;\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction){\r\n let t = this;\r\n let {_extent:_et} = t.dealData(areaRestriction);\r\n t.areaRestriction = new esri.geometry.Extent({\r\n ..._et,spatialReference: {wkid: t.grwkid}\r\n });\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction(){\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e){\r\n let t = this;\r\n //如果在区域内,不处理\r\n if(t.areaRestriction.contains(e.extent.getCenter())){\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return; \r\n // }\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = t.areaRestriction;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e.extent;\r\n let x = e.extent.getCenter().x,y = e.extent.getCenter().y;\r\n if(x < xmin1)x = xmin1+0.1;\r\n if(x > xmax1)x = xmax1-0.1;\r\n if(y < ymin1)y = ymin1+0.1;\r\n if(y > ymax1)y = ymax1-0.1;\r\n let center = new esri.geometry.Point(x,y);\r\n t.state.gis.centerAt(center);\r\n }\r\n /*公共方法*/\r\n //判断extent1是否在extent2内部\r\n containsExtent(e1,e2){\r\n let {xmin:xmin1,xmax: xmax1,ymin: ymin1,ymax: ymax1} = e1;\r\n let {xmin:xmin2,xmax: xmax2,ymin: ymin2,ymax: ymax2} = e2;\r\n return (xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1);\r\n }\r\n //将图元z-index设置成最高\r\n czIndex(id){\r\n let t = this;\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\r\n }\r\n equalsPoint(a,b){\r\n return (a.x == b.x && a.y == b.y);\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp,ep){\r\n return getDistance(fp,ep,this.state.gis,this.state.grwkid);\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return 0;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return totalDistance;\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(paths){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n path = paths.map((item,index)=>{\r\n let lng = item[0],lat = item[1];\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n return {lnglatAry,_extent,path};\r\n }\r\n //处理点位图元的添加 和 更新\r\n dealLabelGraphics(id,label){\r\n let t = this;\r\n if(label){\r\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\r\n //经纬度转top和left\r\n let tl = t.state.gis.toScreen(position),lbl = {...label};\r\n //渲染優化\r\n if(!(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)){\r\n //设置label的位置(通过定位来实现)\r\n label.html.css({\r\n position: 'absolute',\r\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x\r\n });\r\n //添加点位到(地图)\r\n $(`#${t.htmlPointsId}`).append(label.html);\r\n lbl.add = true;\r\n }else{\r\n lbl.add = false;\r\n }\r\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\r\n t.Label[id] = lbl;\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id,marker){\r\n let t = this;\r\n //null时关闭跳动\r\n if(!!marker){\r\n if(t.animTimer[id]){\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(()=>{\r\n //点被隐藏时,没有执行,定时不关\r\n if(marker.symbol){\r\n let shape = {...marker.symbol};\r\n //初始数据 点位有变动,重新刷新数据\r\n if(!t.animCount[id] || shape.yoffset != t.animCount[id].now){\r\n t.animCount[id] = {\r\n start: shape.yoffset,\r\n now: shape.yoffset,\r\n notation: -1\r\n };\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 20){\r\n t.animCount[id].notation = -1;\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 0){\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.yoffset = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\r\n marker.symbol.setOffset(shape.xoffset,shape.yoffset);\r\n t.state.gis.graphics.refresh();\r\n }\r\n },35);\r\n }else{\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime,ddeg} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc || !gc._graphicsLayer){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n let gg = gc.geometry;\r\n let tx = gg.x + rx,ty = gg.y + ry;\r\n let lglt = new esri.geometry.Point(tx,ty);\r\n gc.geometry.setLatitude(ty);\r\n gc.geometry.setLongitude(tx);\r\n //设置完点位后 需要刷新下点位的显示范围\r\n gc._extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n if(gc._extent._parts && gc._extent._parts[0]){\r\n gc._extent._parts[0].extent.update(tx,ty,tx,ty,new esri.SpatialReference({ wkid: t.grwkid }));\r\n }\r\n // gc._extent._parts[0].extent = gc._extent.centerAt(lglt);\r\n gc._graphicsLayer.refresh();\r\n if(t.Label[id] && t.Label[id].add){\r\n let tl = t.state.gis.toScreen(lglt);\r\n //设置label的位置(通过定位来实现)\r\n t.Label[id].html.css({\r\n position: 'absolute',\r\n top: tl.y + (t.Label[id].offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (t.Label[id].offset.x || 0) - t.labelLayer.x\r\n });\r\n }\r\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\r\n t.movePoints[i].waitTime = 0;\r\n if(deleteTime <= 0){\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a,b)=>{return b-a});\r\n for(let i = 0 ; i < deleteIndex.length ; i++){\r\n t.movePoints.splice(deleteIndex[i],1);\r\n }\r\n if(nowMovePoints.length == 0){\r\n clearInterval(t.moveToTimer);\r\n }\r\n },10);\r\n }\r\n //点位移动动画效果\r\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\r\n delay = delay || 3;\r\n let t = this,timer = 10;\r\n delay = eval(delay)*1000;\r\n let count = delay/timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.geometry,e = new esri.geometry.Point(lnglat[0],lnglat[1]);\r\n if(t.equalsPoint(s,e)){\r\n return false;\r\n }else{\r\n let ddeg = 0,url= null;\r\n //计算角度,旋转\r\n if(autoRotation){\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.geometry,lnglat);\r\n if(urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n url = urlleft;\r\n }else{\r\n url = urlright;\r\n }\r\n gc.symbol.setUrl(url);\r\n gc.symbol.setAngle(ddeg);\r\n gc._graphicsLayer.refresh();\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.x - s.x)/count, ry = (e.y - s.y)/count;\r\n let isHave = false;\r\n for(let i = 0 ; i < t.movePoints.length ;i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1,{\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp,ep){\r\n let t = this;\r\n let spLngLat = sp;\r\n if(Array.isArray(sp)){\r\n spLngLat = new esri.geometry.Point(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.toScreen(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.toScreen(new esri.geometry.Point(ep[0],ep[1])),\r\n deg = 0;\r\n if(e.x != s.x){\r\n var tan = (e.y - s.y)/(e.x - s.x),\r\n atan = Math.atan(tan);\r\n deg = atan*360/(2*Math.PI);\r\n //degree correction;\r\n if(e.x < s.x){\r\n deg = -deg + 90 + 90;\r\n\r\n } else {\r\n deg = -deg;\r\n }\r\n deg = -deg;\r\n }else {\r\n var disy = e.y- s.y ;\r\n var bias = 0;\r\n if(disy > 0)\r\n bias=-1;\r\n else\r\n bias = 1;\r\n if(disy == 0)\r\n bias = 0; \r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return (\r\n <div id={_map.mapId} style={{width:'100%',height:'100%',backgroundColor: '#f1f1f1'}}></div>\r\n )\r\n }\r\n\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.loadMapComplete.then(()=>{\r\n t.init();\r\n }) \r\n }\r\n //已加载组件,收到新的参数时调用\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n t.grwkid = nextProps.grwkid || 4326;\r\n //新参数处理方法\r\n let initData = ()=>{\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll\r\n } = nextProps;\r\n // 等待地图加载\r\n if(!t.mapCreated)return;\r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && t.props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,t.props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints,t.props.mapPoints)){\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.editId){\r\n oldMapPoints = t.props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,t.props.mapPolygons)){\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.editId){\r\n oldMapPolygons = t.props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles,t.props.mapCircles)){\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.editId){\r\n oldMapCircles = t.props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines,t.props.mapLines)){\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.editId){\r\n oldMapLines = t.props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && t.props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,t.props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n //绘制边界线\r\n // if(boundaryName instanceof Array && !t.deepEqual(boundaryName,t.props.boundaryName)){\r\n // let newBDName = Set(boundaryName);\r\n // let oldBDName = Set(t.props.boundaryName);\r\n // let removedBoundaryName = oldBDName.subtract(newBDName).toJS();\r\n // let addedBoundaryName = newBDName.subtract(oldBDName).toJS();\r\n // t.removeBaiduBoundary(removedBoundaryName);\r\n // t.addBaiduBoundary(addedBoundaryName);\r\n // }\r\n // 获取热力图\r\n if(heatMapData && !t.deepEqual(heatMapData,t.props.heatMapData)){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //图元编辑调用\r\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\r\n t.doEdit(editGraphicId);\r\n }\r\n //关闭图元编辑\r\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\r\n t.endEdit();\r\n }\r\n //开启图元绘制\r\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置最优视野\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n // //开关路况\r\n // if(isOpenTrafficInfo){\r\n // t.openTrafficInfo();\r\n // }else{\r\n // t.hideTrafficInfo();\r\n // }\r\n //设置区域限制\r\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\r\n t.clearAreaRestriction();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n }\r\n //graphics对象存在 直接处理数据,不存在 延迟处理数据\r\n if(!t.state.gis || !t.state.gis.graphics){\r\n if(t.loadTimer){\r\n clearTimeout(t.loadTimer);\r\n }\r\n t.loadTimer = setTimeout(()=>{\r\n initData();\r\n },300);\r\n }else{\r\n initData();\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for(let j in t.animTimer){\r\n if(t.animTimer[j]){\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\nexport default ArcgisMap;"],"mappings":"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"}
|