@vtx/map 1.2.23 → 1.2.25

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.
Files changed (65) hide show
  1. package/lib/VtxMap/AMap/AMap.js +658 -1035
  2. package/lib/VtxMap/AMap/AMap.js.map +1 -1
  3. package/lib/VtxMap/BMap/Map.js +781 -1227
  4. package/lib/VtxMap/BMap/Map.js.map +1 -1
  5. package/lib/VtxMap/GMap/Map.js +1063 -1583
  6. package/lib/VtxMap/GMap/Map.js.map +1 -1
  7. package/lib/VtxMap/Map.js +23 -59
  8. package/lib/VtxMap/Map.js.map +1 -1
  9. package/lib/VtxMap/MapToolFunction.js +30 -67
  10. package/lib/VtxMap/MapToolFunction.js.map +1 -1
  11. package/lib/VtxMap/OMap/Map.js +888 -1384
  12. package/lib/VtxMap/OMap/Map.js.map +1 -1
  13. package/lib/VtxMap/OlMap/Map.js +789 -1329
  14. package/lib/VtxMap/OlMap/Map.js.map +1 -1
  15. package/lib/VtxMap/TMap/TMap.js +680 -1097
  16. package/lib/VtxMap/TMap/TMap.js.map +1 -1
  17. package/lib/VtxMap/index.js +2 -9
  18. package/lib/VtxMap/index.js.map +1 -1
  19. package/lib/VtxMap/mapPlayer.js +74 -131
  20. package/lib/VtxMap/mapPlayer.js.map +1 -1
  21. package/lib/VtxMap/optimizingPointMap.js +42 -101
  22. package/lib/VtxMap/optimizingPointMap.js.map +1 -1
  23. package/lib/VtxMap/style/css.js +0 -6
  24. package/lib/VtxMap/style/css.js.map +1 -1
  25. package/lib/VtxMap/style/index.js +0 -6
  26. package/lib/VtxMap/style/index.js.map +1 -1
  27. package/lib/VtxMap/zoomMap.js +25 -56
  28. package/lib/VtxMap/zoomMap.js.map +1 -1
  29. package/lib/VtxModal/VtxModal.js +34 -80
  30. package/lib/VtxModal/VtxModal.js.map +1 -1
  31. package/lib/VtxModal/draggableModal.js +30 -68
  32. package/lib/VtxModal/draggableModal.js.map +1 -1
  33. package/lib/VtxModal/index.js +2 -7
  34. package/lib/VtxModal/index.js.map +1 -1
  35. package/lib/VtxModal/style/css.js +0 -6
  36. package/lib/VtxModal/style/css.js.map +1 -1
  37. package/lib/VtxModal/style/index.js +0 -6
  38. package/lib/VtxModal/style/index.js.map +1 -1
  39. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +123 -259
  40. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
  41. package/lib/VtxSearchCheckMap/index.js +1 -3
  42. package/lib/VtxSearchCheckMap/index.js.map +1 -1
  43. package/lib/VtxSearchCheckMap/mapping.js +1 -2
  44. package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
  45. package/lib/VtxSearchCheckMap/style/css.js +0 -19
  46. package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
  47. package/lib/VtxSearchCheckMap/style/index.js +0 -19
  48. package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
  49. package/lib/VtxSearchMap/VtxSearchMap.js +142 -321
  50. package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
  51. package/lib/VtxSearchMap/index.js +1 -3
  52. package/lib/VtxSearchMap/index.js.map +1 -1
  53. package/lib/VtxSearchMap/mapping.js +1 -2
  54. package/lib/VtxSearchMap/mapping.js.map +1 -1
  55. package/lib/VtxSearchMap/style/css.js +0 -19
  56. package/lib/VtxSearchMap/style/css.js.map +1 -1
  57. package/lib/VtxSearchMap/style/index.js +0 -19
  58. package/lib/VtxSearchMap/style/index.js.map +1 -1
  59. package/lib/default.js +4 -13
  60. package/lib/default.js.map +1 -1
  61. package/lib/index.js +0 -3
  62. package/lib/index.js.map +1 -1
  63. package/lib/utils/util.js +15 -40
  64. package/lib/utils/util.js.map +1 -1
  65. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","names":["Set","Immutable","ArcgisMap","props","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","configUrl","arcgisServerURL","Heatmap","mapServerURL","PointCollection","all","then","require","Map","attr","rel","type","href","appendTo","t","createMap","initData","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","boundaryName","heatMapData","customizedBoundary","Array","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","addPointCollection","setAreaRestriction","event","changeLabel","i","cmids","map","item","id","position","getGraphic","geometry","tl","toScreen","height","width","html","css","top","offset","left","add","indexOf","append","remove","czIndex","length","getNode","rangingToolFun","e","status","lnlt","mapPoint","getDistance","longitude","latitude","paths","push","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","toString","gs","toldis","isCent","scaleW","children","graphics","graphic","gid","setVisiblePoints","fitView","ids","clickGraphic","ls","ps","mouseOverGraphic","mouseOutGraphic","setCenter","mapCenter","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","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","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","dealData","setColor","setStyle","pgsids","rings","lineColor","lineOpacity","polygonPath","Polygon","lineStyle","polygonSymbol","SimpleFillSymbol","setOutline","polygonColor","removeRing","addRing","outline","ccsids","parseFloat","Circle","radius","circleSymbol","circleColor","setSymbol","data","d","p","lng","lat","size","shape","VotexpointCollection","GMapLib","value","ds","ind","reDraw","clear","max","visible","opacity","HeatmapOverlay","initialize","option","gradient","setOptions","setDataSet","param","obj","clientY","clientX","getMapExtent","clickLngLat","pixel","screenPoint","gt","c","getCenter","centerAt","z","getZoom","setZoom","arg","ary","concat","g","dealExtendBounds","ext","setExtent","geographicExtent","getLevel","gp","gg","pts","mapLayer","area","PI","nowBounds","_getAvailExtent","southWest","northEast","nowCenter","getZoomLevel","mapSize","calculatePointsDistance","disableDoubleClickZoom","splice","clearAllPointCollection","pgs","cs","location","w","h","sliderShow","toolbars","Edit","eid","gcparam","editGraphicChange","calculateDistance","circleCenter","circleEditPXY","cgc","deactivate","activate","MOVE","EDIT_VERTICES","Draw","drawTime","showTooltips","closeDraw","parameter","lnglatAry","rs","pop","sqrt","drawEnd","cursor","len","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","Object","prototype","apply","markerList","_et","xmin1","xmax1","ymin1","ymax1","xmin2","xmax2","ymin2","ymax2","e1","e2","b","fp","ep","totalDistance","path","lngX","latX","lbl","clearInterval","setInterval","yoffset","now","start","notation","xoffset","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","ddeg","_graphicsLayer","tx","ty","lglt","setLatitude","setLongitude","lnglat","delay","urlright","timer","count","s","equalsPoint","rotateDeg","isHave","sp","spLngLat","isArray","tan","atan","disy","bias","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","filter","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","init","nextProps","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","dataMatch","clearPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","doEdit","endEdit","vtxRangingTool","clearAreaRestriction","clearAll","clearTimeout","setTimeout","React","Component"],"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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"}
1
+ {"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_MapToolFunction","_immutable","_default2","e","__esModule","_createForOfIteratorHelper","r","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_typeof","constructor","prototype","ownKeys","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","name","from","test","_classCallCheck","_defineProperties","key","_createClass","i","_toPrimitive","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","Set","Immutable","ArcgisMap","_React$Component","props","_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","undefined","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","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","p","lng","lat","size","shape","VotexpointCollection","GMapLib","ds","ind","reDraw","clearPointCollection","clear","clearAllPointCollection","max","visible","opacity","HeatmapOverlay","initialize","option","gradient","setOptions","setDataSet","param","obj","clientY","clientX","getMapExtent","clickLngLat","pixel","screenPoint","gt","c","getCenter","centerAt","setZoomLevel","z","getZoom","setZoom","arg","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","len","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","err","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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","ignoreList":[]}