@vtx/map 1.1.42 → 1.1.43

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 (63) hide show
  1. package/lib/VtxMap/AMap/AMap.js +630 -1000
  2. package/lib/VtxMap/AMap/AMap.js.map +1 -1
  3. package/lib/VtxMap/BMap/Map.js +747 -1195
  4. package/lib/VtxMap/BMap/Map.js.map +1 -1
  5. package/lib/VtxMap/GMap/Map.js +1046 -1564
  6. package/lib/VtxMap/GMap/Map.js.map +1 -1
  7. package/lib/VtxMap/Map.js +8 -42
  8. package/lib/VtxMap/Map.js.map +1 -1
  9. package/lib/VtxMap/MapToolFunction.js +26 -63
  10. package/lib/VtxMap/MapToolFunction.js.map +1 -1
  11. package/lib/VtxMap/OMap/Map.js +867 -1361
  12. package/lib/VtxMap/OMap/Map.js.map +1 -1
  13. package/lib/VtxMap/OlMap/Map.js +696 -1204
  14. package/lib/VtxMap/OlMap/Map.js.map +1 -1
  15. package/lib/VtxMap/TMap/TMap.js +651 -1058
  16. package/lib/VtxMap/TMap/TMap.js.map +1 -1
  17. package/lib/VtxMap/index.js +1 -8
  18. package/lib/VtxMap/index.js.map +1 -1
  19. package/lib/VtxMap/mapPlayer.js +67 -123
  20. package/lib/VtxMap/mapPlayer.js.map +1 -1
  21. package/lib/VtxMap/optimizingPointMap.js +21 -77
  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 +12 -41
  28. package/lib/VtxMap/zoomMap.js.map +1 -1
  29. package/lib/VtxModal/VtxModal.js +19 -63
  30. package/lib/VtxModal/VtxModal.js.map +1 -1
  31. package/lib/VtxModal/draggableModal.js +12 -48
  32. package/lib/VtxModal/draggableModal.js.map +1 -1
  33. package/lib/VtxModal/index.js +1 -6
  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 +105 -238
  40. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
  41. package/lib/VtxSearchCheckMap/index.js +0 -2
  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 +89 -220
  50. package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
  51. package/lib/VtxSearchMap/index.js +0 -2
  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/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TMap.js","names":["Set","Immutable","TMap","props","GM","graphicManage","getPolygonArea","pointCollectionId","isNotClickMap","isZoom","mapLeft","mapTop","clusterObj","clusterMarkers","markerTool","polylineTool","polygonTool","rectangleTool","circleTool","isEditId","moveToTimer","timer","movePoints","morepoints","heatmap","animTimer","animCount","waitInit","isLoading","waitReceive","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","mapZoomLevel","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","controlStyle","frameSelectProps","loadMapJs","t","loadMapComplete","Promise","resolve","reject","window","T","$","getScript","configUrl","mapServerURL","getTMapTK","Heatmap","PointCollection","ImageOverlays","all","then","clearInterval","setInterval","Tool","mapPoints","mapLines","mapPolygons","mapCircles","setVisiblePoints","mapVisiblePoints","mapCenter","mapCluster","mapPointCollection","showControl","boundaryName","areaRestriction","heatMapData","imageOverlays","coverageType","infoWindowData","createMap","setMapType","Array","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","heatMapOverlay","infoWindow","setTimeout","addPointCollection","setZoomLevel","cluster","satelliteSwitch","showMapTypeControl","setAreaRestriction","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","clickMap","setState","mapStyle","minZoom","maxZoom","VtxMap","AnchorConstant","tr","T_ANCHOR_TOP_RIGHT","tl","T_ANCHOR_TOP_LEFT","bl","T_ANCHOR_BOTTOM_LEFT","br","T_ANCHOR_BOTTOM_RIGHT","Map","toString","zoom","center","LngLat","setStyle","pointCollectionDiv","document","createElement","id","className","getPanes","mapPane","children","before","initPropsForUser","obj","callback","frameSelect","clearFrameSelect","clearFrameSelectById","geometryType","parameter","data","includes","message","warn","params","type","Math","random","color","lineColor","lineOpacity","lineWidth","pellucidity","lineType","draw","key","removeGraphic","TMAP_NORMAL_MAP","TMAP_HYBRID_MAP","imageAry","map","item","index","sw","ne","url","opacity","displayOnMinLevel","displayOnMaxLevel","console","isArray","swnep","LngLatBounds","ImageOverlay","addOverLay","clear","removeMarkers","clearAllPointCollection","getOverlays","removeOverLay","clearAll","gt","centerAndZoom","getZoom","sw_ne","bounds","setMaxBounds","ls","getLngLats","ids","alnglat","getMoreGraphic","getType","push","getLngLat","getCenter","fitView","split","length","getViewport","setCenter","lng","lat","mapSize","width","getSize","x","height","y","nowCenter","getCurrentCenter","northEast","getBounds","getNorthEast","southWest","getSouthWest","getZoomLevel","radius","calculatePointsDistance","getLng","getLat","arg","ary","Object","prototype","apply","ms","filter","label","MarkerClusterer","markers","options","location","offset","scaleOffset","config","scaleControl","removeControl","navigationControl","control","Control","Scale","position","addControl","navigation","Zoom","css","right","top","left","bottom","mapTypeControl","MapType","lineTool","PolylineTool","showLabel","open","addEventListener","mapRangingTool","distance","currentDistance","lnglats","currentLnglats","gp","getGraphicParam","gg","getGraphic","p","pts","mapLayer","geometry","attributes","longitude","latitude","other","paths","rings","getRadius","psids","cg","labelContent","labelPixelX","labelPixelY","markerContentX","markerContentY","zIndex","deg","isRepetition","markerContent","markerOption","zIndexOffset","marker","icon","Icon","iconUrl","iconSize","Point","iconAnchor","undefined","Marker","Label","text","canShowLabel","labelClass","BAnimationType","pointAnimation","getElement","style","transform","e","clickGraphic","mouseOverGraphic","mouseOutGraphic","setGraphic","setGraphicParam","gc","getIcon","setZIndexOffset","isAnimation","setLngLat","setIcon","moveTo","animationDelay","autoRotation","urlleft","moveAnimation","lsids","isHidden","lineOption","weight","lineStyle","path","itm","ind","Polyline","getColor","getOpacity","getWeight","getLineStyle","setColor","setOpacity","setLineStyle","setWeight","setLngLats","pgsids","polygonOption","fillColor","fillOpacity","r","Polygon","on","getFillColor","getFillOpacity","setFillColor","setFillOpacity","ccsids","circleOption","Circle","setRadius","d","points","i","lngLatToContainerPoint","size","shape","VotexpointCollection","GMapLib","value","ds","reDraw","max","visible","TMapLib","HeatmapOverlay","initialize","option","eval","gradient","setOptions","setDataSet","isHideHeatMap","show","hide","sContent","infowindow","InfoWindow","setMinWidth","setMaxHeight","onClose","Function","content","render","setContent","openInfoWindow","closeInfoWindow","drawParam","Date","getTime","len","indexOf","splice","param","paramgcr","extData","follow","close","MarkTool","ob","target","currentLnglat","currentMarker","allMarkers","backobj","drawEnd","currentPolyline","allPolylines","lnglatAry","lngX","latX","getMaxMin","PolygonTool","currentArea","currentPolygon","allPolygons","_extent","area","CircleTool","currentCenter","currentRadius","currentCircle","allCircles","PI","pow","RectangleTool","currentBounds","currentRectangle","allRectangles","distanceTo","endEdit","enableDragging","enableEdit","disableDragging","removeEventListener","disableEdit","editGraphicChange","calculateDistance","removeMarker","getLabel","removeGraphicParam","containerPoint","getMapExtent","xylist","matchList","match","updatePointCollection","display","allParam","clickLngLat","lnglat","pixel","getIconAnchor","now","start","notation","setIconAnchor","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","oleLng","oldLat","rx","ry","totalTime","ddeg","tx","ty","lglt","setIconUrl","a","b","delay","urlright","count","s","equals","rotateDeg","isHave","sp","ep","spLngLat","AMap","lngLatToLayerPoint","tan","atan","disy","bias","is","fromJS","f","lnglat1","lnglat2","round","ps","totalDistance","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","searchValue","pageSize","pageIndex","searchConfig","pageCapacity","onSearchComplete","result","pois","list","lonlat","hotPointID","name","localsearch","LocalSearch","search","getElementById","offsetLeft","offsetTop","init","prevProps","prevState","nextProps","receive","customizedBoundary","isOpenTrafficInfo","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isClearAll","isSetAreaRestriction","isClearAreaRestriction","deepEqual","removeStyle","dataMatch","clearPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","updatePoint","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","updateLine","doEdit","closeDraw","removeCluster","vtxRangingTool","clearAreaRestriction","JSON","stringify","j","React","Component"],"sources":["VtxMap/TMap/TMap.js"],"sourcesContent":["import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport {graphicManage,getMaxMin,getPolygonArea} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl, { getTMapTK } from '../../default';\r\nclass TMap extends React.Component{\r\n constructor(props){\r\n super(props);\r\n //初始化 图元管理方法\r\n this.GM = new graphicManage();\r\n this.getPolygonArea = getPolygonArea;\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\r\n this.isNotClickMap = false;//阻止点击事件冒泡到地图\r\n this.isZoom = false;//阻止 zoom事件后触发的移动事件\r\n this.mapLeft = 0;//地图offset的Left值\r\n this.mapTop = 0;//地图offset的Top值\r\n this.clusterObj = null;//聚合对象\r\n this.clusterMarkers = null;//聚合的点集合\r\n this.markerTool = null;//绘制点对象\r\n this.polylineTool = null;//绘制线对象\r\n this.polygonTool = null;//绘制面对象\r\n this.rectangleTool = null;//绘制矩形对象\r\n this.circleTool = null;//绘制圆对象\r\n this.isEditId = null;//记录当前编辑的id,过滤移入移出事件\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.timer = 10; //动画播放频率\r\n this.movePoints = [];//move点的对象集合\r\n this.morepoints = [];//海量点集合\r\n this.heatmap = null;//热力图对象\r\n this.animTimer = {};//点位跳动动画\r\n this.animCount = {};//点位跳动动画 位置记录\r\n this.waitInit = null; //等加载定时\r\n this.isLoading = false; //是否加载完\r\n this.waitReceive = null;//等初始化,更新定时\r\n this.state={\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n // center: props.mapCenter,\r\n mapZoomLevel: props.mapZoomLevel,\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 controlStyle: 'lt'\r\n }\r\n this.frameSelectProps = {};\r\n this.loadMapJs();\r\n }\r\n loadMapJs(){\r\n let t = this; \r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.T){\r\n resolve(window.T);\r\n }\r\n else{\r\n $.getScript(`${configUrl.mapServerURL}/T_content.js`,()=>{\r\n $.getScript(`//api.tianditu.gov.cn/api?v=4.0&tk=${getTMapTK()}`,()=>{\r\n let Heatmap = new Promise((resolve,reject)=>{\r\n //对象问题 和arcgis使用不同的热力图\r\n $.getScript(`${configUrl.mapServerURL}/Theatmap.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 let ImageOverlays = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TImageOverlay.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n // let components = new Promise((resolve,reject)=>{\r\n // $.getScript(`${configUrl.mapServerURL}/T_toolComponents.js`,()=>{\r\n // resolve();\r\n // })\r\n // });\r\n Promise.all([Heatmap,PointCollection,ImageOverlays/*,components*/]).then(()=>{\r\n if(t.waitInit){\r\n clearInterval(t.waitInit);\r\n }\r\n t.waitInit = setInterval(()=>{\r\n if(T.Tool){\r\n clearInterval(t.waitInit);\r\n resolve(window.T);\r\n }\r\n },50)\r\n })\r\n })\r\n })\r\n }\r\n });\r\n }\r\n init(){\r\n let t = this;\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n setVisiblePoints,mapVisiblePoints,\r\n mapCenter,mapZoomLevel,\r\n mapCluster,mapPointCollection,\r\n showControl,boundaryName,\r\n areaRestriction,heatMapData,\r\n imageOverlays,coverageType,\r\n infoWindowData\r\n } = t.props;\r\n //创建地图\r\n t.createMap();\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType){\r\n t.setMapType(coverageType);\r\n }\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(imageOverlays instanceof Array){\r\n t.imageUrlOverlay(imageOverlays);\r\n }\r\n /*设置指定图元展示*/\r\n if(mapVisiblePoints){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n // 打开信息窗体\r\n if(infoWindowData){\r\n t.infoWindow(infoWindowData);\r\n }\r\n //添加海量点\r\n if(mapPointCollection instanceof Array){\r\n setTimeout(()=>{\r\n t.addPointCollection(mapPointCollection);\r\n },100)\r\n }\r\n //设置比例尺\r\n if(mapZoomLevel){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置点聚合\r\n if(mapCluster){\r\n t.cluster(mapCluster);\r\n }\r\n // //展示比例尺\r\n if(showControl){\r\n t.showControl();\r\n }\r\n //添加地图类型控件\r\n if(t.props.satelliteSwitch){\r\n t.showMapTypeControl();\r\n }\r\n // //画边界线\r\n // if(boundaryName instanceof Array && boundaryName.length>0){\r\n // t.addBaiduBoundary(boundaryName);\r\n // }\r\n\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //初始化地图拖拽开始事件\r\n t.dragMapStart();\r\n //初始化地图拖拽结束事件\r\n t.dragMapEnd();\r\n //初始化地图移动开始事件\r\n t.moveStart();\r\n //初始化地图移动结束事件\r\n t.moveEnd();\r\n //初始化地图zoom改变开始事件\r\n t.zoomStart();\r\n //初始化地图zoom改变结束事件\r\n t.zoomEnd();\r\n //初始化地图点击事件\r\n t.clickMap();\r\n\r\n t.setState({\r\n mapCreated:true\r\n });\r\n }\r\n createMap(){\r\n let t = this;\r\n const {mapStyle,mapCenter=[],mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\r\n if(!window.VtxMap){\r\n window.VtxMap = {};\r\n }\r\n // 控件位置常量\r\n t.AnchorConstant = {\r\n tr: T_ANCHOR_TOP_RIGHT,\r\n tl: T_ANCHOR_TOP_LEFT,\r\n bl: T_ANCHOR_BOTTOM_LEFT,\r\n br: T_ANCHOR_BOTTOM_RIGHT\r\n }\r\n window.VtxMap[mapId] = t.state.gis = new T.Map(mapId.toString(),{\r\n //zoom等级,和百度一样默认10\r\n zoom: mapZoomLevel || 10,\r\n //必须有中心点,不传默认在北京(不设置中心点,报错)\r\n center: mapCenter?new T.LngLat(mapCenter[0] || 116.40769, mapCenter[1] || 39.906705)\r\n :new T.LngLat(116.40769, 39.89945),\r\n minZoom: minZoom || 1,\r\n maxZoom: maxZoom || 18\r\n });\r\n if(mapStyle){\r\n t.state.gis.setStyle(mapStyle);\r\n }\r\n //海量点图元容器\r\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\r\n let pointCollectionDiv = document.createElement('div');\r\n pointCollectionDiv.id = t.pointCollectionId;\r\n pointCollectionDiv.class = 'vtx_gmap_html_pointCollection_t';\r\n pointCollectionDiv.className = 'vtx_gmap_html_pointCollection_t';\r\n $(t.state.gis.getPanes().mapPane.children[0]).before(pointCollectionDiv);\r\n t.initPropsForUser();\r\n }\r\n // 初始化对外方法\r\n initPropsForUser(){\r\n const t = this;\r\n t.state.gis[\"frameSelect\"] = (obj={},callback) => {\r\n return t.frameSelect(obj,callback);\r\n }\r\n t.state.gis[\"clearFrameSelect\"] = () => {\r\n return t.clearFrameSelect();\r\n }\r\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\r\n return t.clearFrameSelectById(id);\r\n }\r\n }\r\n // 框选\r\n frameSelect({geometryType,parameter={},data={}},callback){\r\n if(!['polygon','circle','rectangle'].includes(geometryType)){\r\n message.warn(\"传入的类型不支持框选!\")\r\n return false;\r\n }\r\n const t = this;\r\n let params = {},\r\n type = geometryType||'polygon',\r\n id = data.id || `frameSelectFeature_${Math.random()}`;\r\n\r\n params.color = parameter.color||'red';\r\n params.lineColor = parameter.lineColor||'red';\r\n params.lineOpacity = parameter.lineOpacity||1;\r\n params.lineWidth = parameter.lineWidth||2;\r\n params.pellucidity = parameter.pellucidity||0.6;\r\n params.lineType = parameter.lineType||'solid';\r\n\r\n t.draw({\r\n geometryType: type,\r\n parameter: {\r\n ...parameter,\r\n ...params\r\n },\r\n data:{\r\n id: id\r\n }\r\n });\r\n\r\n t.frameSelectProps[id] = {\r\n callback,\r\n id,\r\n type: geometryType\r\n } \r\n }\r\n // 清除框选\r\n clearFrameSelect(){\r\n for(let key in this.frameSelectProps){\r\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\r\n }\r\n this.frameSelectProps = {};\r\n }\r\n // 清除框选ById\r\n clearFrameSelectById(id){\r\n let obj = this.frameSelectProps[id];\r\n this.removeGraphic(obj.id, obj.type);\r\n delete this.frameSelectProps[id];\r\n }\r\n setMapType(type){\r\n switch (type) {\r\n case 'sl':\r\n this.state.gis.setMapType(TMAP_NORMAL_MAP);\r\n break;\r\n case 'wx':\r\n this.state.gis.setMapType(TMAP_HYBRID_MAP);\r\n break;\r\n }\r\n }\r\n //增加图片图层\r\n imageUrlOverlay(imageAry){\r\n let t = this;\r\n imageAry.map((item,index)=>{\r\n let {sw,ne,url,opacity,displayOnMinLevel,displayOnMaxLevel} = item;\r\n if(!url){\r\n console.warn(`图片图层url数据错误`);\r\n return false;\r\n }\r\n if(sw && ne && Array.isArray(sw) && Array.isArray(ne) && sw[0] && sw[1] && ne[0] && ne[1]){\r\n let swnep = new T.LngLatBounds(\r\n new T.LngLat(sw[0],sw[1]),\r\n new T.LngLat(ne[0],ne[1])\r\n ),\r\n imageUrlOverlay = new T.ImageOverlay(\r\n url,\r\n swnep,\r\n {\r\n minZoom: displayOnMinLevel || 3,\r\n maxZoom: displayOnMaxLevel || 18\r\n }\r\n );\r\n t.state.gis.addOverLay(imageUrlOverlay);\r\n }else{\r\n console.warn(`区域经纬度sw/ne数据错误`);\r\n return false;\r\n }\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 //先清除所有标记\r\n if(t.clusterMarkers){\r\n t.clusterObj.removeMarkers(t.clusterMarkers);\r\n }\r\n t.clearAllPointCollection();\r\n //清空点\r\n t.state.gis.getOverlays().map((item,index)=>{\r\n t.state.gis.removeOverLay(item);\r\n })\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //清空历史数据记录\r\n t.setState({\r\n pointIds: [],\r\n lineIds: [],\r\n polygonIds: [],\r\n circleIds: [],\r\n boundaryInfo: [],\r\n drawIds: {\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n });\r\n }\r\n /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n if(!t.state.gis){\r\n return;\r\n }\r\n if(gt){\r\n t.state.gis.centerAndZoom(new T.LngLat(gt[0], gt[1]),t.state.gis.getZoom());\r\n }else{\r\n t.state.gis.centerAndZoom(new T.LngLat(116.400433, 39.906705),t.state.gis.getZoom());\r\n }\r\n }\r\n /*地图区域限制*/\r\n setAreaRestriction(sw_ne){\r\n let t =this;\r\n let bounds = new T.LngLatBounds(new T.LngLat(sw_ne[0][0],sw_ne[0][1]),new T.LngLat(sw_ne[1][0],sw_ne[1][1]))\r\n t.state.gis.setMaxBounds(bounds);\r\n }\r\n clearAreaRestriction(){\r\n this.state.gis.setMaxBounds(null);\r\n }\r\n //设置指定图元展示 高德只有zoom和center全适应,单适应暂时无法实现\r\n setVisiblePoints(obj){\r\n let t = this;\r\n let ls = [];\r\n let {pointIds,lineIds,polygonIds,circleIds} = t.state;\r\n let getLngLats = (ids)=>{\r\n let alnglat = [];\r\n t.GM.getMoreGraphic(ids).map((item,index)=>{\r\n //根据天地图 覆盖物类型获取lnglat\r\n switch(item.getType()){\r\n case 1:\r\n case 2:\r\n alnglat.push(item.getLngLat());\r\n break;\r\n case 4:\r\n alnglat.push(...item.getLngLats());\r\n break;\r\n case 5://多边形 返回的是 三维数组\r\n alnglat.push(...item.getLngLats()[0]);\r\n break;\r\n case 8:\r\n alnglat.push(item.getCenter());\r\n break;\r\n }\r\n });\r\n return alnglat;\r\n }\r\n //算出 要展示的图元点位\r\n switch(obj.fitView){\r\n case 'point':\r\n ls = getLngLats(pointIds);\r\n break;\r\n case 'line':\r\n ls = getLngLats(lineIds);\r\n break;\r\n case 'polygon':\r\n ls = getLngLats(polygonIds);\r\n break;\r\n case 'circle':\r\n ls = getLngLats(circleIds);\r\n break;\r\n case 'all':\r\n ls = getLngLats([...pointIds,...lineIds,...polygonIds,...circleIds]);\r\n break;\r\n default:\r\n let ids = [];\r\n if(obj.fitView instanceof Array){\r\n ids = obj.fitView;\r\n }else if(typeof(obj.fitView) === 'string'){\r\n ids = obj.fitView.split(',');\r\n }\r\n if(ids[0] instanceof Array){\r\n ls = ids.map((item)=>{\r\n return new T.LngLat(item[0],item[1]);\r\n })\r\n }else{\r\n ls = getLngLats(ids);\r\n }\r\n break;\r\n }\r\n if(ls.length >= 1){\r\n let {center, zoom} = (t.state.gis.getViewport(ls));\r\n if(obj.type == 'zoom'){\r\n t.setZoomLevel(zoom);\r\n }else if(obj.type == 'center'){\r\n t.setCenter([center.lng,center.lat]);\r\n } else {\r\n t.state.gis.centerAndZoom(center, zoom);\r\n }\r\n }\r\n }\r\n\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n t.state.gis.centerAndZoom(t.state.gis.getCenter(),zoom);\r\n }\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t =this;\r\n return {\r\n lat: t.state.gis.getCenter().lat,\r\n lng: t.state.gis.getCenter().lng\r\n };\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t = this;\r\n return t.state.gis.getZoom();\r\n }\r\n //获取当前地图边框左右边角经纬度,中心点位置,和比例尺,半径距离\r\n getMapExtent(){\r\n let t =this;\r\n let {gis} = t.state;\r\n let obj = {\r\n mapSize: {width:gis.getSize().x,height:gis.getSize().y},\r\n nowCenter: t.getCurrentCenter(),\r\n northEast: {\r\n lat: gis.getBounds().getNorthEast().lat,\r\n lng: gis.getBounds().getNorthEast().lng\r\n },\r\n southWest: {\r\n lat: gis.getBounds().getSouthWest().lat,\r\n lng: gis.getBounds().getSouthWest().lng\r\n },\r\n zoom: t.getZoomLevel()\r\n }\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],[\r\n gis.getBounds().getNorthEast().getLng(),gis.getBounds().getNorthEast().getLat()]);\r\n return obj;\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster (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 ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n // return !item && item != 0 ? false : true;\r\n return item && item.getType() === 2 && !item.label;\r\n });\r\n //聚合的对象,便于后期清除时调用\r\n this.clusterObj = new T.MarkerClusterer(t.state.gis, {markers: ms});\r\n //记录聚合的点,便于后期清除\r\n this.clusterMarkers = ms;\r\n }\r\n // 清除聚合\r\n removeCluster (arg){\r\n let t = this;\r\n let ids = (arg && arg?.length>0) ? arg : t.state.pointIds;\r\n t.clusterObj.removeMarkers(t.clusterObj.options.markers)\r\n ids.map(id=>{\r\n t.GM.removeGraphic(id);\r\n })\r\n // 重新加点\r\n t.addPoint(t.props.mapPoints);\r\n }\r\n //设置比例尺\r\n showControl(props){\r\n let t = this,location = t.AnchorConstant['tr'],offset=null, scaleOffset=null;\r\n let config = props || t.props;\r\n if(t.scaleControl) {\r\n t.state.gis.removeControl(t.scaleControl);\r\n }\r\n if(t.navigationControl) {\r\n t.state.gis.removeControl(t.navigationControl);\r\n }\r\n if(config.showControl.location){\r\n location = t.AnchorConstant[config.showControl.location];\r\n }\r\n // 添加比例尺\r\n let control = new T.Control.Scale({position: location, offset: scaleOffset});\r\n t.state.gis.addControl(control);\r\n t.scaleControl = control;\r\n // 缩放地图\r\n let navigation = new T.Control.Zoom({position: location, offset}); \r\n t.state.gis.addControl(navigation);\r\n t.navigationControl = navigation\r\n\r\n // TODO不支持偏移,手动偏移\r\n if (config.showControl.offset && config.showControl.offset.length > 0) {\r\n if (location == \"topright\") {\r\n $('div.tdt-top.tdt-right').css({ right: config.showControl.offset[0], top: config.showControl.offset[1] })\r\n } else if (location == \"topleft\") {\r\n $('div.tdt-top.tdt-left').css({ left: config.showControl.offset[0], top: config.showControl.offset[1] })\r\n } else if (location == \"bottomleft\") {\r\n $('div.tdt-bottom.tdt-left').css({ left: config.showControl.offset[0], bottom: config.showControl.offset[1] })\r\n } else if (location == \"bottomright\") {\r\n $('div.tdt-bottom.tdt-right').css({ right: config.showControl.offset[0], bottom: config.showControl.offset[1] })\r\n }\r\n }\r\n }\r\n\r\n // 移除比例尺\r\n removeControl() {\r\n const t = this;\r\n if(t.scaleControl) {\r\n t.state.gis.removeControl(t.scaleControl);\r\n t.scaleControl = null;\r\n }\r\n if(t.navigationControl) {\r\n t.state.gis.removeControl(t.navigationControl);\r\n t.navigationControl = null;\r\n }\r\n }\r\n\r\n //展示地图切换控件\r\n showMapTypeControl (props){\r\n let t = this,location = t.AnchorConstant['br'],offset=null;\r\n let config = props || t.props;\r\n if(t.mapTypeControl) {\r\n t.state.gis.removeControl(t.mapTypeControl);\r\n }\r\n if(config.satelliteSwitch.location){\r\n location = t.AnchorConstant[config.satelliteSwitch.location];\r\n }\r\n // 地图切换控件\r\n let control = new T.Control.MapType({position: location, offset: offset});\r\n t.state.gis.addControl(control);\r\n t.mapTypeControl = control;\r\n\r\n // TODO不支持偏移,手动偏移\r\n if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {\r\n if (location == \"topright\") {\r\n $('div.tdt-top.tdt-right').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"topleft\") {\r\n $('div.tdt-top.tdt-left').css({ left: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"bottomleft\") {\r\n $('div.tdt-bottom.tdt-left').css({ left: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"bottomright\") {\r\n $('div.tdt-bottom.tdt-right').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\r\n }\r\n }\r\n }\r\n //测距\r\n vtxRangingTool () {\r\n let t = this;\r\n //将map对象放到全局中.是因为天地图api中使用了全局map.(坑B)\r\n window.map = t.state.gis;\r\n //创建标注工具对象\r\n let lineTool = new T.PolylineTool(t.state.gis,{showLabel: true});\r\n lineTool.open();\r\n this.isNotClickMap = true;\r\n //监听每次点击事件,阻止地图点击事件冒泡\r\n lineTool.addEventListener('addpoint',()=>{\r\n this.isNotClickMap = true;\r\n })\r\n lineTool.addEventListener('draw',(obj)=>{\r\n if('mapRangingTool' in t.props){\r\n t.props.mapRangingTool({\r\n distance: obj.currentDistance,\r\n lnglats: obj.currentLnglats.map((item,index)=>{\r\n return [item.lng,item.lat];\r\n })\r\n });\r\n }\r\n })\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.getLngLat().getLng();\r\n lat = gg.getLngLat().getLat();\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.getLngLats().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\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.getLngLats()[0].map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\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 }\r\n break;\r\n case 'circle':\r\n lng = gg.getCenter().getLng();\r\n lat = gg.getCenter().getLat();\r\n let radius = gg.getRadius();\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 }\r\n break;\r\n }\r\n return p;\r\n }\r\n //添加点\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item,index)=>{\r\n let cg = {\r\n width: 33,\r\n height: 33,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 33,\r\n markerContentX: -16.5,\r\n markerContentY: -33,\r\n zIndex: 100,\r\n deg: 0\r\n }\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 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 //覆盖物参数\r\n let markerOption = {\r\n zIndexOffset: cg.zIndex,\r\n opacity: 1\r\n }\r\n let marker = null;\r\n //判断html还是图片\r\n if(!!item.markerContent){\r\n markerOption.icon = new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/touming.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n });\r\n if(cg.zIndex !== undefined || cg.zIndex !== null){\r\n markerOption.zIndexOffset = cg.zIndex;\r\n }\r\n //获得覆盖物对象\r\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\r\n t.state.gis.addOverLay(marker);\r\n //-12,+15测试的阈值\r\n marker.label = new T.Label({\r\n text: item.markerContent,\r\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\r\n });\r\n marker.showLabel();\r\n //统一加点\r\n }else{\r\n markerOption.icon = new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n });\r\n if(cg.zIndex !== undefined || cg.zIndex !== null){\r\n markerOption.zIndexOffset = cg.zIndex;\r\n }\r\n //获得覆盖物对象\r\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\r\n //添加点击事件\r\n //统一加点\r\n t.state.gis.addOverLay(marker);\r\n //是否展示label\r\n if(item.canShowLabel){\r\n let labelClass = item.labelClass || 'label-content';\r\n marker.label = new T.Label({\r\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new T.Point((cg.labelPixelX - (cg.width/2)),cg.labelPixelY + (cg.markerContentY + cg.height/2))\r\n })\r\n marker.showLabel();\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 if(cg.deg){\r\n marker.getElement().style.transform = marker.getElement().style.transform + ` rotate(${cg.deg}deg)`;\r\n marker.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\r\n }\r\n marker.addEventListener( 'click', (e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n marker.addEventListener( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n marker.addEventListener( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n psids.push(item.id);\r\n //缓存图元的数据,偏于后期操作\r\n this.GM.setGraphic(\r\n item.id,marker\r\n ).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 deg: cg.deg\r\n }\r\n );\r\n });\r\n if(type !== 'defined'){\r\n t.state.pointIds = psids;\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n //更新点\r\n updatePoint(mapPoints){\r\n let t = this;\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 = this.GM.getGraphic(item.id);\r\n let cg = null;\r\n if(!!item.markerContent){\r\n cg = {\r\n markerContentX: (item.config || {}).markerContentX || gc.getIcon().options.iconSize.x,\r\n markerContentY: (item.config || {}).markerContentY || gc.getIcon().options.iconSize.y,\r\n //暂时不设置旋转角度,后期维护设置吧\r\n // deg: item.config.deg,\r\n zIndex: (item.config || {}).zIndex || gc.options.zIndexOffset\r\n };\r\n //设置点的标记添加顺序\r\n // gc.setZindex(cg.zIndex);\r\n gc.setZIndexOffset(cg.zIndex);\r\n if(!(item.config || {}).isAnimation){\r\n //修改经纬度\r\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\r\n }\r\n if(gc.label){\r\n this.state.gis.removeOverLay(gc.label);\r\n }\r\n gc.label = new T.Label({\r\n text: item.markerContent,\r\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\r\n });\r\n gc.showLabel();\r\n }else{\r\n cg = {\r\n width: (item.config || {}).width || 33,\r\n height: (item.config || {}).height || 33,\r\n markerContentX: (item.config || {}).markerContentX || -16.5,\r\n markerContentY: (item.config || {}).markerContentY || -33,\r\n //暂时不设置旋转角度,后期维护设置吧\r\n deg: (item.config || {}).deg,\r\n zIndex: (item.config || {}).zIndex || 100,\r\n labelClass: (item.config || {}).labelContent || 'label-content',\r\n labelContent: '',\r\n BAnimationType: (item.config || {}).BAnimationType,\r\n labelPixelX: 0,\r\n labelPixelY: 33,\r\n };\r\n gc.setIcon(new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n }));\r\n if(!(item.config || {}).isAnimation){\r\n //修改经纬度\r\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\r\n }\r\n //是否展示label\r\n if(item.canShowLabel){\r\n if(gc.label){\r\n this.state.gis.removeOverLay(gc.label);\r\n }\r\n // cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):gc.getLabel().options.offset.x;\r\n // cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):gc.getLabel().options.offset.y;\r\n // cg.labelContent= (item.config || {}).labelContent || gc.getLabel().options.text;\r\n cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):cg.labelPixelX - cg.width/2;\r\n cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):cg.labelPixelY + (cg.markerContentY + cg.height/2);\r\n cg.labelContent= (item.config || {}).labelContent || '';\r\n let labelClass = item.labelClass || 'label-content';\r\n //更新label\r\n gc.label = new T.Label({\r\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new T.Point(cg.labelPixelX,cg.labelPixelY)\r\n })\r\n gc.showLabel();\r\n }\r\n //设置点的标记添加顺序\r\n gc.setZIndexOffset(cg.zIndex);\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 if(cg.deg){\r\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${cg.deg}deg)`;\r\n gc.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\r\n }\r\n //动画效果会延迟执行经纬度的切换\r\n if((item.config || {}).isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],(item.config || {}).animationDelay,(item.config || {}).autoRotation,item.url,item.urlleft);\r\n }\r\n this.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 deg: cg.deg || 0\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点id不存在!`);\r\n return false;\r\n }\r\n });\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 //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\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 //如果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.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let lineOption = {\r\n color: cg.color,\r\n opacity: cg.pellucidity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n path: item.paths || [],\r\n }\r\n //天地图没有hidden方法,所以用weight为0来实现\r\n if(cg.isHidden){\r\n lineOption.weight = 0;\r\n }\r\n let p = lineOption.path.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n let polyline = new T.Polyline(p,lineOption);\r\n t.state.gis.addOverLay(polyline);\r\n // 添加点击事件\r\n polyline.addEventListener( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n polyline.addEventListener( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polyline.addEventListener( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphic(item.id,polyline).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n paths: [pts],\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: [pts]\r\n }\r\n }\r\n );\r\n lsids.push(item.id);\r\n //state中缓存 line的id...用于数据判断\r\n t.state.lineIds.push(item.id);\r\n });\r\n if(type !== 'defined'){\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\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 (this.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 //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n //获取原有的线属性,转换key值\r\n let cg = {\r\n color: gc.getColor(),\r\n pellucidity: gc.getOpacity(),\r\n lineWidth: gc.getWeight(),\r\n lineType: gc.getLineStyle()\r\n };\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //更新线\r\n gc.setColor(cg.color);\r\n gc.setOpacity(cg.pellucidity);\r\n gc.setLineStyle(cg.lineType);\r\n //根据参数判断是否显示多折线\r\n gc.setWeight(cg.lineWidth || 5);\r\n if(item.config && item.config.isHidden){\r\n gc.setWeight(0);\r\n }\r\n //更新经纬度\r\n let p = item.paths.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n gc.setLngLats(p);\r\n //处理数据 用于其他事件返回\r\n let pts = item.paths.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n paths: [pts],\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: [pts]\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\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 //如果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.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let polygonOption = {\r\n color: cg.lineColor,\r\n opacity: cg.lineOpacity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n path: item.rings || []\r\n }\r\n let r = polygonOption.path.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n let polygon = new T.Polygon(r,polygonOption);\r\n this.state.gis.addOverLay(polygon);\r\n //添加点击事件\r\n polygon.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n polygon.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polygon.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphic(item.id,polygon).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: [pts],\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: [pts]\r\n },\r\n }\r\n );\r\n pgsids.push(item.id);\r\n\r\n });\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\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 (this.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 //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: gc.getLineStyle(),\r\n lineWidth: gc.getWeight(),\r\n lineColor: gc.getColor(),\r\n lineOpacity: gc.getOpacity(),\r\n color: gc.getFillColor(),\r\n pellucidity: gc.getFillOpacity()\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n gc.setLineStyle(cg.lineType);\r\n gc.setWeight(cg.lineWidth);\r\n gc.setColor(cg.lineColor);\r\n gc.setOpacity(cg.lineOpacity);\r\n gc.setFillColor(cg.color);\r\n gc.setFillOpacity(cg.pellucidity);\r\n let r = item.rings.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n })\r\n gc.setLngLats(r);\r\n let pts = item.rings.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: [pts],\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: [pts]\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n mapCircles.map((item,index)=>{\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 //如果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 if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n color: cg.lineColor,\r\n opacity: cg.lineOpacity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n }\r\n //创建圆对象\r\n let circle = new T.Circle(new T.LngLat(item.longitude,item.latitude),item.radius,circleOption);\r\n this.state.gis.addOverLay(circle);\r\n //添加点击事件\r\n circle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n circle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n circle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n this.GM.setGraphic(item.id,circle).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }\r\n );\r\n ccsids.push(item.id);\r\n });\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\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 (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 = this.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: gc.getLineStyle(),\r\n lineWidth: gc.getWeight(),\r\n lineColor: gc.getColor(),\r\n lineOpacity: gc.getOpacity(),\r\n color: gc.getFillColor(),\r\n pellucidity: gc.getFillOpacity()\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n gc.setLineStyle(cg.lineType);\r\n gc.setWeight(cg.lineWidth);\r\n gc.setColor(cg.lineColor);\r\n gc.setOpacity(cg.lineOpacity);\r\n gc.setFillColor(cg.color);\r\n gc.setFillOpacity(cg.pellucidity);\r\n gc.setRadius(item.radius || 0);\r\n gc.setCenter(new T.LngLat(item.longitude,item.latitude));\r\n\r\n //缓存图元的数据,便于后期操作\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n });\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 T.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainerPoint(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.getSize().x,\r\n height: t.state.gis.getSize().y,\r\n mapId: t.props.mapId\r\n };\r\n //和arcgis使用同一个海量点\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 T.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainerPoint(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.getSize().x,\r\n height: t.state.gis.getSize().y\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 TMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.heatmap.initialize(t.state.gis,t.pointCollectionId);\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 infoWindow (d = {}){\r\n let t = this;\r\n var cg = {\r\n width: 300,\r\n height: 172,\r\n };\r\n if (d.config) {\r\n cg = {...cg,...d.config};\r\n }\r\n var sContent = document.createElement('div');\r\n var infowindow = new T.InfoWindow();\r\n infowindow.setMinWidth(cg.width);\r\n infowindow.setMaxHeight(cg.height);\r\n \r\n if(d.onClose instanceof Function){\r\n infowindow.addEventListener(\"clickclose\", e => {\r\n d.onClose(e);\r\n })\r\n }\r\n\r\n if(d.lat && d.lng && d.content){\r\n render(d.content, sContent);\r\n infowindow.setContent(sContent);\r\n t.state.gis.openInfoWindow(infowindow, new T.LngLat(d.lng,d.lat));\r\n\r\n } else {\r\n infowindow && t.state.gis.closeInfoWindow();\r\n }\r\n }\r\n /*\r\n 参数\r\n geometryType:point/polyline/polygon/circle/rectangle 默认point\r\n parameter 样式 默认null 对象{}写入方式跟add方法一样(对应点线圆面)\r\n data //初始化数据 默认{id:'add'}\r\n */\r\n draw (obj) {\r\n var t = this,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 //判断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 switch(drawParam.geometryType){\r\n case 'point':\r\n this.markerTool.clear();\r\n break;\r\n case 'polyline':\r\n this.polylineTool.clear();\r\n break;\r\n case 'polygon':\r\n this.polygonTool.clear();\r\n break;\r\n case 'circle':\r\n this.circleTool.clear();\r\n break;\r\n case 'rectangle':\r\n this.rectangleTool.clear();\r\n break;\r\n }\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let param = {};\r\n let paramgcr = {};\r\n window.map = this.state.gis;\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.color = drawParam.parameter.lineColor;\r\n paramgcr.opacity = drawParam.parameter.lineOpacity;\r\n paramgcr.weight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: drawParam.parameter.color,\r\n lineColor: drawParam.parameter.lineColor,\r\n lineOpacity: drawParam.parameter.lineOpacity,\r\n pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: drawParam.geometryType\r\n };\r\n }\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n param.icon = new T.Icon({\r\n iconUrl: drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(drawParam.parameter.width || 33,drawParam.parameter.height || 33),\r\n iconAnchor: new T.Point(drawParam.parameter.width?drawParam.parameter.width/2:16.5,\r\n drawParam.parameter.height?drawParam.parameter.height:33)\r\n });\r\n param.follow = false;\r\n if(this.markerTool)this.markerTool.close();\r\n this.markerTool = new T.MarkTool(this.state.gis, param);\r\n this.markerTool.open();\r\n this.markerTool.addEventListener('mouseup',(ob)=>{\r\n let { type, target, currentLnglat,currentMarker, allMarkers } = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentMarker);\r\n let backobj = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n url: currentMarker.getIcon().options.iconUrl,\r\n config: {\r\n width: currentMarker.getIcon().options.iconSize.x,\r\n height: currentMarker.getIcon().options.iconSize.y\r\n }\r\n },\r\n geometry: {\r\n type: 'point',\r\n x: currentLnglat.lng,\r\n y: currentLnglat.lat\r\n },\r\n geometryType: 'point',\r\n mapLayer: currentMarker\r\n };\r\n //添加点击事件\r\n currentMarker.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentMarker.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentMarker.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'polyline':\r\n param.color = drawParam.parameter.color;\r\n param.opacity = drawParam.parameter.pellucidity;\r\n param.weight = drawParam.parameter.lineWidth;\r\n if(this.polylineTool)this.polylineTool.close();\r\n this.polylineTool = new T.PolylineTool(this.state.gis, param);\r\n this.polylineTool.open();\r\n this.polylineTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentLnglats,currentDistance,currentPolyline,allPolylines} = ob;\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n t.GM.setGraphic(drawParam.data.id,currentPolyline);\r\n let backobj ={\r\n geometryType: 'polyline',\r\n distance: currentDistance,\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentPolyline.getColor(),\r\n pellucidity: currentPolyline.getOpacity(),\r\n lineWidth: currentPolyline.getWeight()\r\n }\r\n },\r\n mapLayer: currentPolyline,\r\n geometry: {\r\n type: 'polyline',\r\n lnglatAry: lnglatAry,\r\n paths: getMaxMin(currentLnglats).path\r\n },\r\n lnglatAry: lnglatAry\r\n };\r\n //添加点击事件\r\n currentPolyline.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentPolyline.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentPolyline.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'polygon':\r\n if(this.polygonTool)this.polygonTool.close();\r\n this.polygonTool = new T.PolygonTool(this.state.gis, paramgcr);\r\n this.polygonTool.open();\r\n this.polygonTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentLnglats,currentArea,currentPolygon,allPolygons} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentPolygon);\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let backobj = {\r\n geometryType: 'polygon',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentPolygon.getFillColor(),\r\n lineColor: currentPolygon.getColor(),\r\n lineOpacity: currentPolygon.getOpacity(),\r\n pellucidity: currentPolygon.getFillOpacity(),\r\n lineWidth: currentPolygon.getWeight()\r\n }\r\n },\r\n mapLayer: currentPolygon,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(currentLnglats).path,\r\n _extent: getMaxMin(currentLnglats)._extent,\r\n area: currentArea\r\n },\r\n lnglatAry: lnglatAry,\r\n area: currentArea\r\n };\r\n //添加点击事件\r\n currentPolygon.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentPolygon.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentPolygon.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n break;\r\n case 'circle':\r\n if(this.circleTool)this.circleTool.close();\r\n this.circleTool = new T.CircleTool(this.state.gis, paramgcr);\r\n this.circleTool.open();\r\n this.circleTool.addEventListener('drawend',(ob)=>{\r\n let {type,target,currentCenter,currentRadius,currentCircle,allCircles} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentCircle);\r\n let area = Math.PI * Math.pow(currentRadius,2);\r\n let backobj = {\r\n geometryType: 'circle',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: { \r\n color: currentCircle.getFillColor(),\r\n lineColor: currentCircle.getColor(),\r\n lineOpacity: currentCircle.getOpacity(),\r\n pellucidity: currentCircle.getFillOpacity(),\r\n lineWidth: currentCircle.getWeight()\r\n }\r\n },\r\n mapLayer: currentCircle,\r\n geometry: {\r\n type: 'circle',\r\n x: currentCenter.lng,\r\n y: currentCenter.lat,\r\n radius: currentRadius,\r\n area: area\r\n },\r\n area: area\r\n };\r\n //添加点击事件\r\n currentCircle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentCircle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentCircle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n break;\r\n case 'rectangle':\r\n if(this.rectangleTool)this.rectangleTool.close();\r\n this.rectangleTool = new T.RectangleTool(this.state.gis, paramgcr);\r\n this.rectangleTool.open();\r\n this.rectangleTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentBounds,currentRectangle,allRectangles} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentRectangle);\r\n let currentLnglats = [\r\n currentBounds.getNorthEast(),\r\n currentBounds.getSouthWest(),\r\n {lng: currentBounds.getSouthWest().lng,lat: currentBounds.getNorthEast().lat},\r\n {lng: currentBounds.getNorthEast().lng,lat: currentBounds.getSouthWest().lat}\r\n ];\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let area = currentBounds.getNorthEast().distanceTo(\r\n new T.LngLat(currentBounds.getNorthEast().lng,\r\n currentBounds.getSouthWest().lat)\r\n )* currentBounds.getNorthEast().distanceTo(\r\n new T.LngLat(currentBounds.getSouthWest().lng,\r\n currentBounds.getNorthEast().lat)\r\n );\r\n let backobj = {\r\n geometryType: 'polygon',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentRectangle.getFillColor(),\r\n lineColor: currentRectangle.getColor(),\r\n lineOpacity: currentRectangle.getOpacity(),\r\n pellucidity: currentRectangle.getFillOpacity(),\r\n lineWidth: currentRectangle.getWeight()\r\n }\r\n },\r\n mapLayer: currentRectangle,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(currentLnglats).path,\r\n _extent: getMaxMin(currentLnglats)._extent,\r\n area: area\r\n },\r\n lnglatAry: lnglatAry,\r\n area: area\r\n };\r\n //添加点击事件\r\n currentRectangle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentRectangle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentRectangle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n break;\r\n }\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\r\n }\r\n //关闭绘制图元\r\n closeDraw(){\r\n if(this.markerTool){\r\n this.markerTool.close();\r\n }\r\n if(this.polylineTool){\r\n this.polylineTool.close();\r\n }\r\n if(this.polygonTool){\r\n this.polygonTool.close();\r\n }\r\n if(this.rectangleTool){\r\n this.rectangleTool.close();\r\n }\r\n if(this.circleTool){\r\n this.circleTool.close();\r\n }\r\n }\r\n\r\n /*根据图元id,使图元变成可编辑状态*/\r\n doEdit(id){\r\n let t = this;\r\n let ms = t.getGraphic(id);\r\n if(!ms){\r\n return false;\r\n }\r\n if(ms.getType === 1){\r\n return false;\r\n }\r\n if(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n this.isEditId = id;\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.enableDragging();\r\n // ms.mapLayer.addEventListener('dragend',t.editGraphicChange);\r\n if(ms.mapLayer.label){\r\n ms.mapLayer.addEventListener('drag',t.showLabel);\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n ms.mapLayer.enableEdit();\r\n break;\r\n }\r\n t.setState({\r\n editId: id\r\n })\r\n }\r\n //关闭编辑\r\n endEdit(){\r\n let t = this;\r\n let ms = t.getGraphic(t.state.editId);\r\n this.isEditId = null;\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.disableDragging();\r\n // ms.mapLayer.removeEventListener('dragend',t.editGraphicChange);\r\n if(ms.mapLayer.label){\r\n ms.mapLayer.removeEventListener('drag',t.showLabel);\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n ms.mapLayer.disableEdit();\r\n break;\r\n }\r\n t.editGraphicChange(t.state.editId);\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n })\r\n }\r\n showLabel(){\r\n //这里的this指向调用的 点的对象\r\n this.showLabel();\r\n }\r\n //编辑变动后\r\n editGraphicChange(id){\r\n if(!id) return;\r\n let t = this;\r\n let ms = t.getGraphic(id);\r\n let obj = {\r\n id: id\r\n }\r\n switch(ms.geometryType){\r\n case 'point':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n break;\r\n case 'polyline':\r\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats())._extent;\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.distance = t.calculateDistance(ms.mapLayer.getLngLats());\r\n break;\r\n case 'polygon':\r\n case 'rectangle':\r\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats()[0])._extent;\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n // obj.area = getPolygonArea(ms.mapLayer.getLngLats()[0]);\r\n // obj.area = t.polygonTool.getArea(ms.mapLayer.getLngLats()[0]);\r\n // 关闭多边形多个听绘制后,回显报错\r\n break;\r\n case 'circle':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.area = Math.PI*Math.pow(ms.geometry.radius,2);\r\n break;\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n //删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n if(!!this.GM.getGraphic(id)){\r\n //清除聚合点 避免异常\r\n if(t.clusterObj){\r\n t.clusterObj.removeMarker(this.GM.getGraphic(id));\r\n }\r\n //清除地图中图元\r\n this.state.gis.removeOverLay(this.GM.getGraphic(id));\r\n //删除含 label点的label(天地图的坑)\r\n if(type === 'point' && this.GM.getGraphic(id).label){\r\n this.state.gis.removeOverLay(this.GM.getGraphic(id).getLabel());\r\n }\r\n //清除对应id的图元数据缓存\r\n this.GM.removeGraphic(id);\r\n this.GM.removeGraphicParam(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 //清除 state中id的缓存\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 clickGraphic (id,e) {\r\n let t = this;\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.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\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 if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n if(id === t.isEditId){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\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 if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n if(id === t.isEditId){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n //拖拽地图开始\r\n dragMapStart(){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) ===\"function\"){\r\n t.state.gis.addEventListener('dragstart', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.dragMapStart(obj);\r\n });\r\n }\r\n }\r\n //拖拽地图结束事件\r\n dragMapEnd(){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) ===\"function\"){\r\n t.state.gis.addEventListener('dragend', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.dragMapEnd(obj);\r\n });\r\n }\r\n }\r\n //地图移动开始事件\r\n moveStart(){\r\n let t = this;\r\n if(typeof(t.props.moveStart) ===\"function\"){\r\n t.state.gis.addEventListener('movestart', function(e) {\r\n if(!t.isZoom){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveStart(obj);\r\n }\r\n });\r\n }\r\n }\r\n //地图移动结束事件\r\n moveEnd(){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) ===\"function\"){\r\n t.state.gis.addEventListener('moveend', function(e) {\r\n let xylist = [],mapPane = t.state.gis.getPanes().mapPane;\r\n if(mapPane.style.top){\r\n xylist = [mapPane.style.left,mapPane.style.top];\r\n }else{\r\n let matchList = mapPane.style.transform.match(/translate\\((-?\\d*)+px,\\s*(-?\\d*)+px\\)/) \r\n || mapPane.style.transform.match(/translate3d\\((-?\\d*)+px,\\s*(-?\\d*)+px,\\s*(-?\\d*)+px\\)/)\r\n || [];\r\n xylist = [matchList[1],matchList[2]];\r\n }\r\n //重画海量点\r\n $(`#${t.pointCollectionId}`).css({\r\n top: `${-xylist[1]}px`,\r\n left: `${-xylist[0]}px`\r\n })\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n if(t.isZoom){\r\n t.isZoom = false;\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveEnd(obj);\r\n }\r\n });\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(){\r\n let t =this;\r\n if(typeof(t.props.zoomStart) ===\"function\"){\r\n t.state.gis.addEventListener('zoomstart', function(e) {\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.hide();\r\n }\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n t.isZoom = true;\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 //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(){\r\n let t =this;\r\n if(typeof(t.props.zoomEnd) ===\"function\"){\r\n t.state.gis.addEventListener('zoomend', function(e) {\r\n //重画热力图\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.show();\r\n t.heatmap.draw();\r\n }\r\n //重画海量点\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //避免zoom切换后,chrome的旋转角度被替换\r\n for(let i in t.GM.allParam){\r\n if(t.GM.allParam[i].geometryType == 'point' && t.GM.allParam[i].deg){\r\n t.GM.getGraphic(i).getElement().style.transform = \r\n t.GM.getGraphic(i).getElement().style.transform + ` rotate(${t.GM.allParam[i].deg}deg)`;\r\n }\r\n }\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n });\r\n }\r\n }\r\n //地图点击事件\r\n clickMap(){\r\n let t =this;\r\n if(typeof(t.props.clickMap) ===\"function\"){\r\n t.state.gis.addEventListener('click', function(e) {\r\n if(t.isNotClickMap){\r\n t.isNotClickMap = false;\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = e.lnglat;\r\n obj.pixel = e.containerPoint;\r\n t.props.clickMap(obj);\r\n }\r\n });\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.getIcon()){\r\n let shape = {...marker.getIcon().getIconAnchor()};\r\n //初始数据 点位有变动,重新刷新数据\r\n if(!t.animCount[id] || shape.y != t.animCount[id].now){\r\n t.animCount[id] = {\r\n start: shape.y,\r\n now: shape.y,\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.y = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\r\n marker.getIcon().setIconAnchor(shape);\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 += this.timer;\r\n t.movePoints[i].deleteTime -= this.timer;\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,oleLng,oldLat,rx,ry,deleteTime,totalTime,ddeg} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc){\r\n clearInterval(t.moveToTimer[id]);\r\n }else{\r\n let tx = oleLng + rx * ((totalTime-deleteTime) / this.timer),\r\n ty = oldLat + ry* ((totalTime-deleteTime) / this.timer);\r\n let lglt = new T.LngLat(tx,ty);\r\n if(t.movePoints[i].url){\r\n gc.getIcon().setIconUrl(t.movePoints[i].url);\r\n }\r\n gc.setLngLat(lglt);\r\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\r\n //旋转角度\r\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${ddeg}deg)`;\r\n gc.getElement().style['-ms-transform'] = ` rotate(${ddeg}deg)`;\r\n if(gc.label){\r\n gc.showLabel();\r\n }\r\n // 移动过的 放后面再动\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;\r\n delay = eval(delay)*1000;\r\n let count = delay/this.timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.getLngLat(),e = new T.LngLat(lnglat[0],lnglat[1]);\r\n if(s.equals(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.getLngLat(),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 }\r\n //拆分延迟移动定位\r\n let rx = (e.lng - s.lng)/count, ry = (e.lat - s.lat)/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 oleLng: s.lng,\r\n oldLat: s.lat,\r\n id,rx,ry,ddeg,url,\r\n waitTime: 0,\r\n totalTime: delay,\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 oleLng: s.lng,\r\n oldLat: s.lat,\r\n id,rx,ry,ddeg,url,\r\n waitTime: 0,\r\n totalTime: delay,\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 AMap.LngLat(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.lngLatToLayerPoint(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.lngLatToLayerPoint(new T.LngLat(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 //计算2点间距离 单位m 精确到个位\r\n calculatePointsDistance(f,s){\r\n let lnglat1 = new T.LngLat(f[0],f[1]);\r\n let lnglat2 = new T.LngLat(s[0],s[1]);\r\n return Math.round(lnglat1.distanceTo(lnglat2));\r\n }\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return false;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n if('distanceTo' in ps[i]){\r\n totalDistance += ps[i].distanceTo(ps[i + 1]);\r\n }else{\r\n totalDistance += new T.LngLat(ps[i][0],ps[i][1]).distanceTo(new T.LngLat(ps[i + 1][0],ps[i + 1][1]));\r\n }\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\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 searchPoints(searchValue,pageSize=10,pageIndex=1){\r\n let t = this;\r\n return new Promise((resolve)=>{\r\n let searchConfig = {\r\n pageCapacity: pageSize*pageIndex, //每页显示的数量\r\n //接收数据的回调函数\r\n onSearchComplete: (result)=>{\r\n if(!result.pois){\r\n resolve([]);;\r\n }else{\r\n let list = result.pois.map((r)=>{\r\n let lnglat = {};\r\n if(r.lonlat.indexOf(\",\")>-1){\r\n lnglat = {\r\n longitude: r.lonlat.split(',')[0],\r\n latitude: r.lonlat.split(',')[1],\r\n }\r\n }else {\r\n lnglat = {\r\n longitude: r.lonlat.split(' ')[0],\r\n latitude: r.lonlat.split(' ')[1],\r\n }\r\n }\r\n return {\r\n id: r.hotPointID,\r\n ...lnglat,\r\n canShowLabel: true,\r\n config: {\r\n labelContent: r.name,\r\n labelPixelY: 27\r\n },\r\n other: 'search'\r\n }\r\n })\r\n resolve(list);\r\n }\r\n } \r\n };\r\n //创建搜索对象\r\n let localsearch = new T.LocalSearch(t.state.gis, searchConfig);\r\n localsearch.search(searchValue);\r\n });\r\n\r\n }\r\n render(){\r\n let t = this;\r\n return (\r\n <div id={t.props.mapId} style={{width:'100%',height:'100%',zIndex: '1'}}></div>\r\n );\r\n }\r\n componentDidMount(){\r\n let t = this;\r\n this.loadMapComplete.then(()=>{\r\n t.mapLeft = document.getElementById(t.props.mapId).offsetLeft;\r\n t.mapTop = document.getElementById(t.props.mapId).offsetTop;\r\n t.init();\r\n //初始化完成后,再走更新\r\n t.isLoading = true;\r\n })\r\n }\r\n componentDidUpdate(prevProps, prevState) {//重新渲染结束\r\n let t = this;\r\n }\r\n componentWillReceiveProps(nextProps,prevProps) {//已加载组件,收到新的参数时调用\r\n let t = this;\r\n let receive = ()=>{\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,imageOverlays,\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 isClearAll,mapStyle,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n coverageType,\r\n infoWindowData\r\n } = nextProps;\r\n\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n // 设置地图样式\r\n if(!t.deepEqual(mapStyle,t.props.mapStyle)){\r\n if(mapStyle){\r\n t.state.gis.setStyle(mapStyle);\r\n }else{\r\n t.state.gis.removeStyle();\r\n }\r\n }\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType && !t.deepEqual(coverageType,t.props.coverageType)){\r\n t.setMapType(coverageType);\r\n }\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 /*点数据处理\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.state.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.state.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.state.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.state.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.updateLine(updatedData);\r\n t.addLine(addedData); \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(infoWindowData && !t.deepEqual(infoWindowData,t.props.infoWindowData)){\r\n t.infoWindow(infoWindowData);\r\n }\r\n //添加图片图层\r\n if(imageOverlays instanceof Array && !t.deepEqual(imageOverlays,t.props.imageOverlays)){\r\n t.imageUrlOverlay(imageOverlays);\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(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\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(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n if(!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])){\r\n t.setCenter(mapCenter);\r\n }\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n if(!(t.getZoomLevel() == mapZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\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(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n // 清除聚合\r\n if(!setCluster && setCluster !== t.props.setCluster){\r\n t.removeCluster(mapCluster);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool();\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 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(t.waitReceive){\r\n clearInterval(t.waitReceive);\r\n }\r\n //等等天地图初始化\r\n if(t.isLoading){\r\n receive();\r\n }else{\r\n t.waitReceive = setInterval(()=>{\r\n if(t.isLoading){\r\n clearInterval(t.waitReceive);\r\n receive();\r\n }\r\n },100);\r\n }\r\n\r\n // 比例尺控件位置改变\r\n if(nextProps.showControl && JSON.stringify(nextProps.showControl)!=JSON.stringify(t.props.showControl)){\r\n t.showControl(nextProps);\r\n }\r\n // 比例尺移除\r\n if(!nextProps.showControl) {\r\n t.removeControl();\r\n }\r\n // 地图类型控件位置改变\r\n if(nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch)!=JSON.stringify(t.props.satelliteSwitch)){\r\n t.showMapTypeControl(nextProps);\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 if(t.waitReceive){\r\n clearInterval(t.waitReceive);\r\n }\r\n if(t.waitInit){\r\n clearInterval(t.waitInit);\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 if(window.VtxMap && window.VtxMap[t.state.mapId])\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\nexport default TMap;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"TMap.js","names":["_react","_interopRequireDefault","require","_reactDom","_MapToolFunction","_immutable","_default2","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","F","s","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","iter","len","arr2","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","_toPropertyKey","configurable","writable","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","_inherits","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","bind","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","Set","Immutable","TMap","_React$Component","_super","_this","GM","graphicManage","getPolygonArea","pointCollectionId","isNotClickMap","isZoom","mapLeft","mapTop","clusterObj","clusterMarkers","markerTool","polylineTool","polygonTool","rectangleTool","circleTool","isEditId","moveToTimer","timer","movePoints","morepoints","heatmap","animTimer","animCount","waitInit","isLoading","waitReceive","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","mapZoomLevel","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","controlStyle","frameSelectProps","loadMapJs","loadMapComplete","Promise","resolve","reject","window","T","$","getScript","concat","configUrl","mapServerURL","getTMapTK","Heatmap","PointCollection","ImageOverlays","all","then","clearInterval","setInterval","Tool","init","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","setVisiblePoints","mapVisiblePoints","mapCenter","mapCluster","mapPointCollection","showControl","boundaryName","areaRestriction","heatMapData","imageOverlays","coverageType","infoWindowData","createMap","setMapType","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","heatMapOverlay","infoWindow","setTimeout","addPointCollection","setZoomLevel","cluster","satelliteSwitch","showMapTypeControl","setAreaRestriction","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","clickMap","setState","_t$props2","mapStyle","_t$props2$mapCenter","minZoom","maxZoom","VtxMap","AnchorConstant","tr","T_ANCHOR_TOP_RIGHT","tl","T_ANCHOR_TOP_LEFT","bl","T_ANCHOR_BOTTOM_LEFT","br","T_ANCHOR_BOTTOM_RIGHT","Map","zoom","center","LngLat","setStyle","pointCollectionDiv","document","createElement","id","className","getPanes","mapPane","children","before","initPropsForUser","callback","frameSelect","clearFrameSelect","clearFrameSelectById","_ref","geometryType","_ref$parameter","parameter","_ref$data","data","includes","message","warn","params","type","Math","random","color","lineColor","lineOpacity","lineWidth","pellucidity","lineType","draw","removeGraphic","TMAP_NORMAL_MAP","TMAP_HYBRID_MAP","imageAry","map","item","index","sw","ne","url","opacity","displayOnMinLevel","displayOnMaxLevel","console","swnep","LngLatBounds","ImageOverlay","addOverLay","clearAll","clear","removeMarkers","clearAllPointCollection","getOverlays","removeOverLay","setCenter","gt","centerAndZoom","getZoom","sw_ne","bounds","setMaxBounds","clearAreaRestriction","ls","_t$state","getLngLats","ids","alnglat","getMoreGraphic","getType","getLngLat","getCenter","fitView","split","_t$state$gis$getViewp","getViewport","lng","lat","getCurrentCenter","getZoomLevel","getMapExtent","mapSize","width","getSize","x","height","y","nowCenter","northEast","getBounds","getNorthEast","southWest","getSouthWest","radius","calculatePointsDistance","getLng","getLat","ary","ms","label","MarkerClusterer","markers","removeCluster","options","location","offset","scaleOffset","config","scaleControl","removeControl","navigationControl","control","Control","Scale","position","addControl","navigation","Zoom","css","right","top","left","bottom","mapTypeControl","MapType","vtxRangingTool","_this2","lineTool","PolylineTool","showLabel","open","addEventListener","mapRangingTool","distance","currentDistance","lnglats","currentLnglats","getGraphic","gp","getGraphicParam","gg","pts","mapLayer","geometry","attributes","longitude","latitude","other","paths","rings","getRadius","_this3","psids","cg","labelContent","labelPixelX","labelPixelY","markerContentX","markerContentY","zIndex","deg","isRepetition","markerContent","markerOption","zIndexOffset","marker","icon","Icon","iconUrl","iconSize","Point","iconAnchor","Marker","Label","text","canShowLabel","labelClass","BAnimationType","pointAnimation","getElement","style","transform","clickGraphic","mouseOverGraphic","mouseOutGraphic","setGraphic","setGraphicParam","updatePoint","_this4","gc","getIcon","setZIndexOffset","isAnimation","setLngLat","setIcon","moveTo","animationDelay","autoRotation","urlleft","moveAnimation","_this5","lsids","isHidden","lineOption","weight","lineStyle","path","itm","ind","Polyline","updateLine","_this6","getColor","getOpacity","getWeight","getLineStyle","setColor","setOpacity","setLineStyle","setWeight","setLngLats","_this7","pgsids","polygonOption","fillColor","fillOpacity","Polygon","on","updatePolygon","_this8","getFillColor","getFillOpacity","setFillColor","setFillOpacity","_this9","ccsids","circleOption","Circle","updateCircle","_this10","setRadius","d","points","lngLatToContainerPoint","size","shape","VotexpointCollection","GMapLib","updatePointCollection","ds","reDraw","clearPointCollection","max","visible","TMapLib","HeatmapOverlay","initialize","option","eval","gradient","setOptions","setDataSet","isHideHeatMap","show","hide","sContent","infowindow","InfoWindow","setMinWidth","setMaxHeight","onClose","Function","content","render","setContent","openInfoWindow","closeInfoWindow","drawParam","Date","getTime","indexOf","splice","param","paramgcr","extData","follow","close","MarkTool","ob","currentLnglat","currentMarker","allMarkers","backobj","drawEnd","currentPolyline","allPolylines","lnglatAry","lngX","latX","getMaxMin","PolygonTool","_t$frameSelectProps$b","currentArea","currentPolygon","allPolygons","_extent","area","CircleTool","_t$frameSelectProps$b2","currentCenter","currentRadius","currentCircle","allCircles","PI","pow","RectangleTool","_t$frameSelectProps$b3","currentBounds","currentRectangle","allRectangles","distanceTo","closeDraw","doEdit","endEdit","enableDragging","enableEdit","disableDragging","removeEventListener","disableEdit","editGraphicChange","calculateDistance","removeMarker","getLabel","removeGraphicParam","containerPoint","xylist","matchList","match","display","allParam","clickLngLat","lnglat","pixel","getIconAnchor","now","start","notation","setIconAnchor","_this11","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","oleLng","oldLat","rx","ry","totalTime","ddeg","tx","ty","lglt","setIconUrl","b","delay","urlright","count","equals","rotateDeg","isHave","sp","ep","spLngLat","AMap","lngLatToLayerPoint","tan","atan","disy","bias","deepEqual","is","fromJS","lnglat1","lnglat2","round","ps","totalDistance","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","searchPoints","searchValue","pageSize","pageIndex","searchConfig","pageCapacity","onSearchComplete","pois","list","lonlat","hotPointID","localsearch","LocalSearch","search","componentDidMount","getElementById","offsetLeft","offsetTop","componentDidUpdate","prevProps","prevState","componentWillReceiveProps","nextProps","receive","_t$state2","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","customizedBoundary","isOpenTrafficInfo","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isClearAll","isSetAreaRestriction","isClearAreaRestriction","removeStyle","_t$dataMatch","oldMapPoints","newMapPoints","_t$dataMatch2","_t$dealAdd","_t$dealUpdate","_iterator","_step","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd2","_t$dealUpdate2","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd3","_t$dealUpdate3","_iterator3","_step3","oldMapLines","newMapLines","_t$dataMatch5","_t$dealAdd4","_t$dealUpdate4","_iterator4","_step4","_t$dataMatch6","_iterator5","_step5","JSON","stringify","componentWillUnmount","j","React","Component","_default","exports","module"],"sources":["VtxMap/TMap/TMap.js"],"sourcesContent":["import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport {graphicManage,getMaxMin,getPolygonArea} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl, { getTMapTK } from '../../default';\r\nclass TMap extends React.Component{\r\n constructor(props){\r\n super(props);\r\n //初始化 图元管理方法\r\n this.GM = new graphicManage();\r\n this.getPolygonArea = getPolygonArea;\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\r\n this.isNotClickMap = false;//阻止点击事件冒泡到地图\r\n this.isZoom = false;//阻止 zoom事件后触发的移动事件\r\n this.mapLeft = 0;//地图offset的Left值\r\n this.mapTop = 0;//地图offset的Top值\r\n this.clusterObj = null;//聚合对象\r\n this.clusterMarkers = null;//聚合的点集合\r\n this.markerTool = null;//绘制点对象\r\n this.polylineTool = null;//绘制线对象\r\n this.polygonTool = null;//绘制面对象\r\n this.rectangleTool = null;//绘制矩形对象\r\n this.circleTool = null;//绘制圆对象\r\n this.isEditId = null;//记录当前编辑的id,过滤移入移出事件\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.timer = 10; //动画播放频率\r\n this.movePoints = [];//move点的对象集合\r\n this.morepoints = [];//海量点集合\r\n this.heatmap = null;//热力图对象\r\n this.animTimer = {};//点位跳动动画\r\n this.animCount = {};//点位跳动动画 位置记录\r\n this.waitInit = null; //等加载定时\r\n this.isLoading = false; //是否加载完\r\n this.waitReceive = null;//等初始化,更新定时\r\n this.state={\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n // center: props.mapCenter,\r\n mapZoomLevel: props.mapZoomLevel,\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 controlStyle: 'lt'\r\n }\r\n this.frameSelectProps = {};\r\n this.loadMapJs();\r\n }\r\n loadMapJs(){\r\n let t = this; \r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.T){\r\n resolve(window.T);\r\n }\r\n else{\r\n $.getScript(`${configUrl.mapServerURL}/T_content.js`,()=>{\r\n $.getScript(`//api.tianditu.gov.cn/api?v=4.0&tk=${getTMapTK()}`,()=>{\r\n let Heatmap = new Promise((resolve,reject)=>{\r\n //对象问题 和arcgis使用不同的热力图\r\n $.getScript(`${configUrl.mapServerURL}/Theatmap.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 let ImageOverlays = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TImageOverlay.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n // let components = new Promise((resolve,reject)=>{\r\n // $.getScript(`${configUrl.mapServerURL}/T_toolComponents.js`,()=>{\r\n // resolve();\r\n // })\r\n // });\r\n Promise.all([Heatmap,PointCollection,ImageOverlays/*,components*/]).then(()=>{\r\n if(t.waitInit){\r\n clearInterval(t.waitInit);\r\n }\r\n t.waitInit = setInterval(()=>{\r\n if(T.Tool){\r\n clearInterval(t.waitInit);\r\n resolve(window.T);\r\n }\r\n },50)\r\n })\r\n })\r\n })\r\n }\r\n });\r\n }\r\n init(){\r\n let t = this;\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n setVisiblePoints,mapVisiblePoints,\r\n mapCenter,mapZoomLevel,\r\n mapCluster,mapPointCollection,\r\n showControl,boundaryName,\r\n areaRestriction,heatMapData,\r\n imageOverlays,coverageType,\r\n infoWindowData\r\n } = t.props;\r\n //创建地图\r\n t.createMap();\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType){\r\n t.setMapType(coverageType);\r\n }\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(imageOverlays instanceof Array){\r\n t.imageUrlOverlay(imageOverlays);\r\n }\r\n /*设置指定图元展示*/\r\n if(mapVisiblePoints){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n // 打开信息窗体\r\n if(infoWindowData){\r\n t.infoWindow(infoWindowData);\r\n }\r\n //添加海量点\r\n if(mapPointCollection instanceof Array){\r\n setTimeout(()=>{\r\n t.addPointCollection(mapPointCollection);\r\n },100)\r\n }\r\n //设置比例尺\r\n if(mapZoomLevel){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置点聚合\r\n if(mapCluster){\r\n t.cluster(mapCluster);\r\n }\r\n // //展示比例尺\r\n if(showControl){\r\n t.showControl();\r\n }\r\n //添加地图类型控件\r\n if(t.props.satelliteSwitch){\r\n t.showMapTypeControl();\r\n }\r\n // //画边界线\r\n // if(boundaryName instanceof Array && boundaryName.length>0){\r\n // t.addBaiduBoundary(boundaryName);\r\n // }\r\n\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //初始化地图拖拽开始事件\r\n t.dragMapStart();\r\n //初始化地图拖拽结束事件\r\n t.dragMapEnd();\r\n //初始化地图移动开始事件\r\n t.moveStart();\r\n //初始化地图移动结束事件\r\n t.moveEnd();\r\n //初始化地图zoom改变开始事件\r\n t.zoomStart();\r\n //初始化地图zoom改变结束事件\r\n t.zoomEnd();\r\n //初始化地图点击事件\r\n t.clickMap();\r\n\r\n t.setState({\r\n mapCreated:true\r\n });\r\n }\r\n createMap(){\r\n let t = this;\r\n const {mapStyle,mapCenter=[],mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\r\n if(!window.VtxMap){\r\n window.VtxMap = {};\r\n }\r\n // 控件位置常量\r\n t.AnchorConstant = {\r\n tr: T_ANCHOR_TOP_RIGHT,\r\n tl: T_ANCHOR_TOP_LEFT,\r\n bl: T_ANCHOR_BOTTOM_LEFT,\r\n br: T_ANCHOR_BOTTOM_RIGHT\r\n }\r\n window.VtxMap[mapId] = t.state.gis = new T.Map(mapId.toString(),{\r\n //zoom等级,和百度一样默认10\r\n zoom: mapZoomLevel || 10,\r\n //必须有中心点,不传默认在北京(不设置中心点,报错)\r\n center: mapCenter?new T.LngLat(mapCenter[0] || 116.40769, mapCenter[1] || 39.906705)\r\n :new T.LngLat(116.40769, 39.89945),\r\n minZoom: minZoom || 1,\r\n maxZoom: maxZoom || 18\r\n });\r\n if(mapStyle){\r\n t.state.gis.setStyle(mapStyle);\r\n }\r\n //海量点图元容器\r\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\r\n let pointCollectionDiv = document.createElement('div');\r\n pointCollectionDiv.id = t.pointCollectionId;\r\n pointCollectionDiv.class = 'vtx_gmap_html_pointCollection_t';\r\n pointCollectionDiv.className = 'vtx_gmap_html_pointCollection_t';\r\n $(t.state.gis.getPanes().mapPane.children[0]).before(pointCollectionDiv);\r\n t.initPropsForUser();\r\n }\r\n // 初始化对外方法\r\n initPropsForUser(){\r\n const t = this;\r\n t.state.gis[\"frameSelect\"] = (obj={},callback) => {\r\n return t.frameSelect(obj,callback);\r\n }\r\n t.state.gis[\"clearFrameSelect\"] = () => {\r\n return t.clearFrameSelect();\r\n }\r\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\r\n return t.clearFrameSelectById(id);\r\n }\r\n }\r\n // 框选\r\n frameSelect({geometryType,parameter={},data={}},callback){\r\n if(!['polygon','circle','rectangle'].includes(geometryType)){\r\n message.warn(\"传入的类型不支持框选!\")\r\n return false;\r\n }\r\n const t = this;\r\n let params = {},\r\n type = geometryType||'polygon',\r\n id = data.id || `frameSelectFeature_${Math.random()}`;\r\n\r\n params.color = parameter.color||'red';\r\n params.lineColor = parameter.lineColor||'red';\r\n params.lineOpacity = parameter.lineOpacity||1;\r\n params.lineWidth = parameter.lineWidth||2;\r\n params.pellucidity = parameter.pellucidity||0.6;\r\n params.lineType = parameter.lineType||'solid';\r\n\r\n t.draw({\r\n geometryType: type,\r\n parameter: {\r\n ...parameter,\r\n ...params\r\n },\r\n data:{\r\n id: id\r\n }\r\n });\r\n\r\n t.frameSelectProps[id] = {\r\n callback,\r\n id,\r\n type: geometryType\r\n } \r\n }\r\n // 清除框选\r\n clearFrameSelect(){\r\n for(let key in this.frameSelectProps){\r\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\r\n }\r\n this.frameSelectProps = {};\r\n }\r\n // 清除框选ById\r\n clearFrameSelectById(id){\r\n let obj = this.frameSelectProps[id];\r\n this.removeGraphic(obj.id, obj.type);\r\n delete this.frameSelectProps[id];\r\n }\r\n setMapType(type){\r\n switch (type) {\r\n case 'sl':\r\n this.state.gis.setMapType(TMAP_NORMAL_MAP);\r\n break;\r\n case 'wx':\r\n this.state.gis.setMapType(TMAP_HYBRID_MAP);\r\n break;\r\n }\r\n }\r\n //增加图片图层\r\n imageUrlOverlay(imageAry){\r\n let t = this;\r\n imageAry.map((item,index)=>{\r\n let {sw,ne,url,opacity,displayOnMinLevel,displayOnMaxLevel} = item;\r\n if(!url){\r\n console.warn(`图片图层url数据错误`);\r\n return false;\r\n }\r\n if(sw && ne && Array.isArray(sw) && Array.isArray(ne) && sw[0] && sw[1] && ne[0] && ne[1]){\r\n let swnep = new T.LngLatBounds(\r\n new T.LngLat(sw[0],sw[1]),\r\n new T.LngLat(ne[0],ne[1])\r\n ),\r\n imageUrlOverlay = new T.ImageOverlay(\r\n url,\r\n swnep,\r\n {\r\n minZoom: displayOnMinLevel || 3,\r\n maxZoom: displayOnMaxLevel || 18\r\n }\r\n );\r\n t.state.gis.addOverLay(imageUrlOverlay);\r\n }else{\r\n console.warn(`区域经纬度sw/ne数据错误`);\r\n return false;\r\n }\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 //先清除所有标记\r\n if(t.clusterMarkers){\r\n t.clusterObj.removeMarkers(t.clusterMarkers);\r\n }\r\n t.clearAllPointCollection();\r\n //清空点\r\n t.state.gis.getOverlays().map((item,index)=>{\r\n t.state.gis.removeOverLay(item);\r\n })\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //清空历史数据记录\r\n t.setState({\r\n pointIds: [],\r\n lineIds: [],\r\n polygonIds: [],\r\n circleIds: [],\r\n boundaryInfo: [],\r\n drawIds: {\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n });\r\n }\r\n /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n if(!t.state.gis){\r\n return;\r\n }\r\n if(gt){\r\n t.state.gis.centerAndZoom(new T.LngLat(gt[0], gt[1]),t.state.gis.getZoom());\r\n }else{\r\n t.state.gis.centerAndZoom(new T.LngLat(116.400433, 39.906705),t.state.gis.getZoom());\r\n }\r\n }\r\n /*地图区域限制*/\r\n setAreaRestriction(sw_ne){\r\n let t =this;\r\n let bounds = new T.LngLatBounds(new T.LngLat(sw_ne[0][0],sw_ne[0][1]),new T.LngLat(sw_ne[1][0],sw_ne[1][1]))\r\n t.state.gis.setMaxBounds(bounds);\r\n }\r\n clearAreaRestriction(){\r\n this.state.gis.setMaxBounds(null);\r\n }\r\n //设置指定图元展示 高德只有zoom和center全适应,单适应暂时无法实现\r\n setVisiblePoints(obj){\r\n let t = this;\r\n let ls = [];\r\n let {pointIds,lineIds,polygonIds,circleIds} = t.state;\r\n let getLngLats = (ids)=>{\r\n let alnglat = [];\r\n t.GM.getMoreGraphic(ids).map((item,index)=>{\r\n //根据天地图 覆盖物类型获取lnglat\r\n switch(item.getType()){\r\n case 1:\r\n case 2:\r\n alnglat.push(item.getLngLat());\r\n break;\r\n case 4:\r\n alnglat.push(...item.getLngLats());\r\n break;\r\n case 5://多边形 返回的是 三维数组\r\n alnglat.push(...item.getLngLats()[0]);\r\n break;\r\n case 8:\r\n alnglat.push(item.getCenter());\r\n break;\r\n }\r\n });\r\n return alnglat;\r\n }\r\n //算出 要展示的图元点位\r\n switch(obj.fitView){\r\n case 'point':\r\n ls = getLngLats(pointIds);\r\n break;\r\n case 'line':\r\n ls = getLngLats(lineIds);\r\n break;\r\n case 'polygon':\r\n ls = getLngLats(polygonIds);\r\n break;\r\n case 'circle':\r\n ls = getLngLats(circleIds);\r\n break;\r\n case 'all':\r\n ls = getLngLats([...pointIds,...lineIds,...polygonIds,...circleIds]);\r\n break;\r\n default:\r\n let ids = [];\r\n if(obj.fitView instanceof Array){\r\n ids = obj.fitView;\r\n }else if(typeof(obj.fitView) === 'string'){\r\n ids = obj.fitView.split(',');\r\n }\r\n if(ids[0] instanceof Array){\r\n ls = ids.map((item)=>{\r\n return new T.LngLat(item[0],item[1]);\r\n })\r\n }else{\r\n ls = getLngLats(ids);\r\n }\r\n break;\r\n }\r\n if(ls.length >= 1){\r\n let {center, zoom} = (t.state.gis.getViewport(ls));\r\n if(obj.type == 'zoom'){\r\n t.setZoomLevel(zoom);\r\n }else if(obj.type == 'center'){\r\n t.setCenter([center.lng,center.lat]);\r\n } else {\r\n t.state.gis.centerAndZoom(center, zoom);\r\n }\r\n }\r\n }\r\n\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n t.state.gis.centerAndZoom(t.state.gis.getCenter(),zoom);\r\n }\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t =this;\r\n return {\r\n lat: t.state.gis.getCenter().lat,\r\n lng: t.state.gis.getCenter().lng\r\n };\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t = this;\r\n return t.state.gis.getZoom();\r\n }\r\n //获取当前地图边框左右边角经纬度,中心点位置,和比例尺,半径距离\r\n getMapExtent(){\r\n let t =this;\r\n let {gis} = t.state;\r\n let obj = {\r\n mapSize: {width:gis.getSize().x,height:gis.getSize().y},\r\n nowCenter: t.getCurrentCenter(),\r\n northEast: {\r\n lat: gis.getBounds().getNorthEast().lat,\r\n lng: gis.getBounds().getNorthEast().lng\r\n },\r\n southWest: {\r\n lat: gis.getBounds().getSouthWest().lat,\r\n lng: gis.getBounds().getSouthWest().lng\r\n },\r\n zoom: t.getZoomLevel()\r\n }\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],[\r\n gis.getBounds().getNorthEast().getLng(),gis.getBounds().getNorthEast().getLat()]);\r\n return obj;\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster (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 ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n // return !item && item != 0 ? false : true;\r\n return item && item.getType() === 2 && !item.label;\r\n });\r\n //聚合的对象,便于后期清除时调用\r\n this.clusterObj = new T.MarkerClusterer(t.state.gis, {markers: ms});\r\n //记录聚合的点,便于后期清除\r\n this.clusterMarkers = ms;\r\n }\r\n // 清除聚合\r\n removeCluster (arg){\r\n let t = this;\r\n let ids = (arg && arg?.length>0) ? arg : t.state.pointIds;\r\n t.clusterObj.removeMarkers(t.clusterObj.options.markers)\r\n ids.map(id=>{\r\n t.GM.removeGraphic(id);\r\n })\r\n // 重新加点\r\n t.addPoint(t.props.mapPoints);\r\n }\r\n //设置比例尺\r\n showControl(props){\r\n let t = this,location = t.AnchorConstant['tr'],offset=null, scaleOffset=null;\r\n let config = props || t.props;\r\n if(t.scaleControl) {\r\n t.state.gis.removeControl(t.scaleControl);\r\n }\r\n if(t.navigationControl) {\r\n t.state.gis.removeControl(t.navigationControl);\r\n }\r\n if(config.showControl.location){\r\n location = t.AnchorConstant[config.showControl.location];\r\n }\r\n // 添加比例尺\r\n let control = new T.Control.Scale({position: location, offset: scaleOffset});\r\n t.state.gis.addControl(control);\r\n t.scaleControl = control;\r\n // 缩放地图\r\n let navigation = new T.Control.Zoom({position: location, offset}); \r\n t.state.gis.addControl(navigation);\r\n t.navigationControl = navigation\r\n\r\n // TODO不支持偏移,手动偏移\r\n if (config.showControl.offset && config.showControl.offset.length > 0) {\r\n if (location == \"topright\") {\r\n $('div.tdt-top.tdt-right').css({ right: config.showControl.offset[0], top: config.showControl.offset[1] })\r\n } else if (location == \"topleft\") {\r\n $('div.tdt-top.tdt-left').css({ left: config.showControl.offset[0], top: config.showControl.offset[1] })\r\n } else if (location == \"bottomleft\") {\r\n $('div.tdt-bottom.tdt-left').css({ left: config.showControl.offset[0], bottom: config.showControl.offset[1] })\r\n } else if (location == \"bottomright\") {\r\n $('div.tdt-bottom.tdt-right').css({ right: config.showControl.offset[0], bottom: config.showControl.offset[1] })\r\n }\r\n }\r\n }\r\n\r\n // 移除比例尺\r\n removeControl() {\r\n const t = this;\r\n if(t.scaleControl) {\r\n t.state.gis.removeControl(t.scaleControl);\r\n t.scaleControl = null;\r\n }\r\n if(t.navigationControl) {\r\n t.state.gis.removeControl(t.navigationControl);\r\n t.navigationControl = null;\r\n }\r\n }\r\n\r\n //展示地图切换控件\r\n showMapTypeControl (props){\r\n let t = this,location = t.AnchorConstant['br'],offset=null;\r\n let config = props || t.props;\r\n if(t.mapTypeControl) {\r\n t.state.gis.removeControl(t.mapTypeControl);\r\n }\r\n if(config.satelliteSwitch.location){\r\n location = t.AnchorConstant[config.satelliteSwitch.location];\r\n }\r\n // 地图切换控件\r\n let control = new T.Control.MapType({position: location, offset: offset});\r\n t.state.gis.addControl(control);\r\n t.mapTypeControl = control;\r\n\r\n // TODO不支持偏移,手动偏移\r\n if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {\r\n if (location == \"topright\") {\r\n $('div.tdt-top.tdt-right').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"topleft\") {\r\n $('div.tdt-top.tdt-left').css({ left: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"bottomleft\") {\r\n $('div.tdt-bottom.tdt-left').css({ left: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"bottomright\") {\r\n $('div.tdt-bottom.tdt-right').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\r\n }\r\n }\r\n }\r\n //测距\r\n vtxRangingTool () {\r\n let t = this;\r\n //将map对象放到全局中.是因为天地图api中使用了全局map.(坑B)\r\n window.map = t.state.gis;\r\n //创建标注工具对象\r\n let lineTool = new T.PolylineTool(t.state.gis,{showLabel: true});\r\n lineTool.open();\r\n this.isNotClickMap = true;\r\n //监听每次点击事件,阻止地图点击事件冒泡\r\n lineTool.addEventListener('addpoint',()=>{\r\n this.isNotClickMap = true;\r\n })\r\n lineTool.addEventListener('draw',(obj)=>{\r\n if('mapRangingTool' in t.props){\r\n t.props.mapRangingTool({\r\n distance: obj.currentDistance,\r\n lnglats: obj.currentLnglats.map((item,index)=>{\r\n return [item.lng,item.lat];\r\n })\r\n });\r\n }\r\n })\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.getLngLat().getLng();\r\n lat = gg.getLngLat().getLat();\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.getLngLats().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\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.getLngLats()[0].map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\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 }\r\n break;\r\n case 'circle':\r\n lng = gg.getCenter().getLng();\r\n lat = gg.getCenter().getLat();\r\n let radius = gg.getRadius();\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 }\r\n break;\r\n }\r\n return p;\r\n }\r\n //添加点\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item,index)=>{\r\n let cg = {\r\n width: 33,\r\n height: 33,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 33,\r\n markerContentX: -16.5,\r\n markerContentY: -33,\r\n zIndex: 100,\r\n deg: 0\r\n }\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 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 //覆盖物参数\r\n let markerOption = {\r\n zIndexOffset: cg.zIndex,\r\n opacity: 1\r\n }\r\n let marker = null;\r\n //判断html还是图片\r\n if(!!item.markerContent){\r\n markerOption.icon = new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/touming.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n });\r\n if(cg.zIndex !== undefined || cg.zIndex !== null){\r\n markerOption.zIndexOffset = cg.zIndex;\r\n }\r\n //获得覆盖物对象\r\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\r\n t.state.gis.addOverLay(marker);\r\n //-12,+15测试的阈值\r\n marker.label = new T.Label({\r\n text: item.markerContent,\r\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\r\n });\r\n marker.showLabel();\r\n //统一加点\r\n }else{\r\n markerOption.icon = new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n });\r\n if(cg.zIndex !== undefined || cg.zIndex !== null){\r\n markerOption.zIndexOffset = cg.zIndex;\r\n }\r\n //获得覆盖物对象\r\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\r\n //添加点击事件\r\n //统一加点\r\n t.state.gis.addOverLay(marker);\r\n //是否展示label\r\n if(item.canShowLabel){\r\n let labelClass = item.labelClass || 'label-content';\r\n marker.label = new T.Label({\r\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new T.Point((cg.labelPixelX - (cg.width/2)),cg.labelPixelY + (cg.markerContentY + cg.height/2))\r\n })\r\n marker.showLabel();\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 if(cg.deg){\r\n marker.getElement().style.transform = marker.getElement().style.transform + ` rotate(${cg.deg}deg)`;\r\n marker.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\r\n }\r\n marker.addEventListener( 'click', (e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n marker.addEventListener( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n marker.addEventListener( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n psids.push(item.id);\r\n //缓存图元的数据,偏于后期操作\r\n this.GM.setGraphic(\r\n item.id,marker\r\n ).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 deg: cg.deg\r\n }\r\n );\r\n });\r\n if(type !== 'defined'){\r\n t.state.pointIds = psids;\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n //更新点\r\n updatePoint(mapPoints){\r\n let t = this;\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 = this.GM.getGraphic(item.id);\r\n let cg = null;\r\n if(!!item.markerContent){\r\n cg = {\r\n markerContentX: (item.config || {}).markerContentX || gc.getIcon().options.iconSize.x,\r\n markerContentY: (item.config || {}).markerContentY || gc.getIcon().options.iconSize.y,\r\n //暂时不设置旋转角度,后期维护设置吧\r\n // deg: item.config.deg,\r\n zIndex: (item.config || {}).zIndex || gc.options.zIndexOffset\r\n };\r\n //设置点的标记添加顺序\r\n // gc.setZindex(cg.zIndex);\r\n gc.setZIndexOffset(cg.zIndex);\r\n if(!(item.config || {}).isAnimation){\r\n //修改经纬度\r\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\r\n }\r\n if(gc.label){\r\n this.state.gis.removeOverLay(gc.label);\r\n }\r\n gc.label = new T.Label({\r\n text: item.markerContent,\r\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\r\n });\r\n gc.showLabel();\r\n }else{\r\n cg = {\r\n width: (item.config || {}).width || 33,\r\n height: (item.config || {}).height || 33,\r\n markerContentX: (item.config || {}).markerContentX || -16.5,\r\n markerContentY: (item.config || {}).markerContentY || -33,\r\n //暂时不设置旋转角度,后期维护设置吧\r\n deg: (item.config || {}).deg,\r\n zIndex: (item.config || {}).zIndex || 100,\r\n labelClass: (item.config || {}).labelContent || 'label-content',\r\n labelContent: '',\r\n BAnimationType: (item.config || {}).BAnimationType,\r\n labelPixelX: 0,\r\n labelPixelY: 33,\r\n };\r\n gc.setIcon(new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n }));\r\n if(!(item.config || {}).isAnimation){\r\n //修改经纬度\r\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\r\n }\r\n //是否展示label\r\n if(item.canShowLabel){\r\n if(gc.label){\r\n this.state.gis.removeOverLay(gc.label);\r\n }\r\n // cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):gc.getLabel().options.offset.x;\r\n // cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):gc.getLabel().options.offset.y;\r\n // cg.labelContent= (item.config || {}).labelContent || gc.getLabel().options.text;\r\n cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):cg.labelPixelX - cg.width/2;\r\n cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):cg.labelPixelY + (cg.markerContentY + cg.height/2);\r\n cg.labelContent= (item.config || {}).labelContent || '';\r\n let labelClass = item.labelClass || 'label-content';\r\n //更新label\r\n gc.label = new T.Label({\r\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new T.Point(cg.labelPixelX,cg.labelPixelY)\r\n })\r\n gc.showLabel();\r\n }\r\n //设置点的标记添加顺序\r\n gc.setZIndexOffset(cg.zIndex);\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 if(cg.deg){\r\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${cg.deg}deg)`;\r\n gc.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\r\n }\r\n //动画效果会延迟执行经纬度的切换\r\n if((item.config || {}).isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],(item.config || {}).animationDelay,(item.config || {}).autoRotation,item.url,item.urlleft);\r\n }\r\n this.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 deg: cg.deg || 0\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点id不存在!`);\r\n return false;\r\n }\r\n });\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 //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\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 //如果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.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let lineOption = {\r\n color: cg.color,\r\n opacity: cg.pellucidity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n path: item.paths || [],\r\n }\r\n //天地图没有hidden方法,所以用weight为0来实现\r\n if(cg.isHidden){\r\n lineOption.weight = 0;\r\n }\r\n let p = lineOption.path.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n let polyline = new T.Polyline(p,lineOption);\r\n t.state.gis.addOverLay(polyline);\r\n // 添加点击事件\r\n polyline.addEventListener( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n polyline.addEventListener( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polyline.addEventListener( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphic(item.id,polyline).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n paths: [pts],\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: [pts]\r\n }\r\n }\r\n );\r\n lsids.push(item.id);\r\n //state中缓存 line的id...用于数据判断\r\n t.state.lineIds.push(item.id);\r\n });\r\n if(type !== 'defined'){\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\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 (this.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 //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n //获取原有的线属性,转换key值\r\n let cg = {\r\n color: gc.getColor(),\r\n pellucidity: gc.getOpacity(),\r\n lineWidth: gc.getWeight(),\r\n lineType: gc.getLineStyle()\r\n };\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //更新线\r\n gc.setColor(cg.color);\r\n gc.setOpacity(cg.pellucidity);\r\n gc.setLineStyle(cg.lineType);\r\n //根据参数判断是否显示多折线\r\n gc.setWeight(cg.lineWidth || 5);\r\n if(item.config && item.config.isHidden){\r\n gc.setWeight(0);\r\n }\r\n //更新经纬度\r\n let p = item.paths.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n gc.setLngLats(p);\r\n //处理数据 用于其他事件返回\r\n let pts = item.paths.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n paths: [pts],\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: [pts]\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\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 //如果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.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let polygonOption = {\r\n color: cg.lineColor,\r\n opacity: cg.lineOpacity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n path: item.rings || []\r\n }\r\n let r = polygonOption.path.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n let polygon = new T.Polygon(r,polygonOption);\r\n this.state.gis.addOverLay(polygon);\r\n //添加点击事件\r\n polygon.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n polygon.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polygon.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphic(item.id,polygon).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: [pts],\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: [pts]\r\n },\r\n }\r\n );\r\n pgsids.push(item.id);\r\n\r\n });\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\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 (this.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 //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: gc.getLineStyle(),\r\n lineWidth: gc.getWeight(),\r\n lineColor: gc.getColor(),\r\n lineOpacity: gc.getOpacity(),\r\n color: gc.getFillColor(),\r\n pellucidity: gc.getFillOpacity()\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n gc.setLineStyle(cg.lineType);\r\n gc.setWeight(cg.lineWidth);\r\n gc.setColor(cg.lineColor);\r\n gc.setOpacity(cg.lineOpacity);\r\n gc.setFillColor(cg.color);\r\n gc.setFillOpacity(cg.pellucidity);\r\n let r = item.rings.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n })\r\n gc.setLngLats(r);\r\n let pts = item.rings.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: [pts],\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: [pts]\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n mapCircles.map((item,index)=>{\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 //如果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 if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n color: cg.lineColor,\r\n opacity: cg.lineOpacity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n }\r\n //创建圆对象\r\n let circle = new T.Circle(new T.LngLat(item.longitude,item.latitude),item.radius,circleOption);\r\n this.state.gis.addOverLay(circle);\r\n //添加点击事件\r\n circle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n circle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n circle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n this.GM.setGraphic(item.id,circle).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }\r\n );\r\n ccsids.push(item.id);\r\n });\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\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 (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 = this.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: gc.getLineStyle(),\r\n lineWidth: gc.getWeight(),\r\n lineColor: gc.getColor(),\r\n lineOpacity: gc.getOpacity(),\r\n color: gc.getFillColor(),\r\n pellucidity: gc.getFillOpacity()\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n gc.setLineStyle(cg.lineType);\r\n gc.setWeight(cg.lineWidth);\r\n gc.setColor(cg.lineColor);\r\n gc.setOpacity(cg.lineOpacity);\r\n gc.setFillColor(cg.color);\r\n gc.setFillOpacity(cg.pellucidity);\r\n gc.setRadius(item.radius || 0);\r\n gc.setCenter(new T.LngLat(item.longitude,item.latitude));\r\n\r\n //缓存图元的数据,便于后期操作\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n });\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 T.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainerPoint(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.getSize().x,\r\n height: t.state.gis.getSize().y,\r\n mapId: t.props.mapId\r\n };\r\n //和arcgis使用同一个海量点\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 T.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainerPoint(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.getSize().x,\r\n height: t.state.gis.getSize().y\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 TMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.heatmap.initialize(t.state.gis,t.pointCollectionId);\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 infoWindow (d = {}){\r\n let t = this;\r\n var cg = {\r\n width: 300,\r\n height: 172,\r\n };\r\n if (d.config) {\r\n cg = {...cg,...d.config};\r\n }\r\n var sContent = document.createElement('div');\r\n var infowindow = new T.InfoWindow();\r\n infowindow.setMinWidth(cg.width);\r\n infowindow.setMaxHeight(cg.height);\r\n \r\n if(d.onClose instanceof Function){\r\n infowindow.addEventListener(\"clickclose\", e => {\r\n d.onClose(e);\r\n })\r\n }\r\n\r\n if(d.lat && d.lng && d.content){\r\n render(d.content, sContent);\r\n infowindow.setContent(sContent);\r\n t.state.gis.openInfoWindow(infowindow, new T.LngLat(d.lng,d.lat));\r\n\r\n } else {\r\n infowindow && t.state.gis.closeInfoWindow();\r\n }\r\n }\r\n /*\r\n 参数\r\n geometryType:point/polyline/polygon/circle/rectangle 默认point\r\n parameter 样式 默认null 对象{}写入方式跟add方法一样(对应点线圆面)\r\n data //初始化数据 默认{id:'add'}\r\n */\r\n draw (obj) {\r\n var t = this,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 //判断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 switch(drawParam.geometryType){\r\n case 'point':\r\n this.markerTool.clear();\r\n break;\r\n case 'polyline':\r\n this.polylineTool.clear();\r\n break;\r\n case 'polygon':\r\n this.polygonTool.clear();\r\n break;\r\n case 'circle':\r\n this.circleTool.clear();\r\n break;\r\n case 'rectangle':\r\n this.rectangleTool.clear();\r\n break;\r\n }\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let param = {};\r\n let paramgcr = {};\r\n window.map = this.state.gis;\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.color = drawParam.parameter.lineColor;\r\n paramgcr.opacity = drawParam.parameter.lineOpacity;\r\n paramgcr.weight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: drawParam.parameter.color,\r\n lineColor: drawParam.parameter.lineColor,\r\n lineOpacity: drawParam.parameter.lineOpacity,\r\n pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: drawParam.geometryType\r\n };\r\n }\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n param.icon = new T.Icon({\r\n iconUrl: drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(drawParam.parameter.width || 33,drawParam.parameter.height || 33),\r\n iconAnchor: new T.Point(drawParam.parameter.width?drawParam.parameter.width/2:16.5,\r\n drawParam.parameter.height?drawParam.parameter.height:33)\r\n });\r\n param.follow = false;\r\n if(this.markerTool)this.markerTool.close();\r\n this.markerTool = new T.MarkTool(this.state.gis, param);\r\n this.markerTool.open();\r\n this.markerTool.addEventListener('mouseup',(ob)=>{\r\n let { type, target, currentLnglat,currentMarker, allMarkers } = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentMarker);\r\n let backobj = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n url: currentMarker.getIcon().options.iconUrl,\r\n config: {\r\n width: currentMarker.getIcon().options.iconSize.x,\r\n height: currentMarker.getIcon().options.iconSize.y\r\n }\r\n },\r\n geometry: {\r\n type: 'point',\r\n x: currentLnglat.lng,\r\n y: currentLnglat.lat\r\n },\r\n geometryType: 'point',\r\n mapLayer: currentMarker\r\n };\r\n //添加点击事件\r\n currentMarker.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentMarker.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentMarker.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'polyline':\r\n param.color = drawParam.parameter.color;\r\n param.opacity = drawParam.parameter.pellucidity;\r\n param.weight = drawParam.parameter.lineWidth;\r\n if(this.polylineTool)this.polylineTool.close();\r\n this.polylineTool = new T.PolylineTool(this.state.gis, param);\r\n this.polylineTool.open();\r\n this.polylineTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentLnglats,currentDistance,currentPolyline,allPolylines} = ob;\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n t.GM.setGraphic(drawParam.data.id,currentPolyline);\r\n let backobj ={\r\n geometryType: 'polyline',\r\n distance: currentDistance,\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentPolyline.getColor(),\r\n pellucidity: currentPolyline.getOpacity(),\r\n lineWidth: currentPolyline.getWeight()\r\n }\r\n },\r\n mapLayer: currentPolyline,\r\n geometry: {\r\n type: 'polyline',\r\n lnglatAry: lnglatAry,\r\n paths: getMaxMin(currentLnglats).path\r\n },\r\n lnglatAry: lnglatAry\r\n };\r\n //添加点击事件\r\n currentPolyline.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentPolyline.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentPolyline.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'polygon':\r\n if(this.polygonTool)this.polygonTool.close();\r\n this.polygonTool = new T.PolygonTool(this.state.gis, paramgcr);\r\n this.polygonTool.open();\r\n this.polygonTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentLnglats,currentArea,currentPolygon,allPolygons} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentPolygon);\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let backobj = {\r\n geometryType: 'polygon',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentPolygon.getFillColor(),\r\n lineColor: currentPolygon.getColor(),\r\n lineOpacity: currentPolygon.getOpacity(),\r\n pellucidity: currentPolygon.getFillOpacity(),\r\n lineWidth: currentPolygon.getWeight()\r\n }\r\n },\r\n mapLayer: currentPolygon,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(currentLnglats).path,\r\n _extent: getMaxMin(currentLnglats)._extent,\r\n area: currentArea\r\n },\r\n lnglatAry: lnglatAry,\r\n area: currentArea\r\n };\r\n //添加点击事件\r\n currentPolygon.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentPolygon.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentPolygon.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n break;\r\n case 'circle':\r\n if(this.circleTool)this.circleTool.close();\r\n this.circleTool = new T.CircleTool(this.state.gis, paramgcr);\r\n this.circleTool.open();\r\n this.circleTool.addEventListener('drawend',(ob)=>{\r\n let {type,target,currentCenter,currentRadius,currentCircle,allCircles} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentCircle);\r\n let area = Math.PI * Math.pow(currentRadius,2);\r\n let backobj = {\r\n geometryType: 'circle',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: { \r\n color: currentCircle.getFillColor(),\r\n lineColor: currentCircle.getColor(),\r\n lineOpacity: currentCircle.getOpacity(),\r\n pellucidity: currentCircle.getFillOpacity(),\r\n lineWidth: currentCircle.getWeight()\r\n }\r\n },\r\n mapLayer: currentCircle,\r\n geometry: {\r\n type: 'circle',\r\n x: currentCenter.lng,\r\n y: currentCenter.lat,\r\n radius: currentRadius,\r\n area: area\r\n },\r\n area: area\r\n };\r\n //添加点击事件\r\n currentCircle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentCircle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentCircle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n break;\r\n case 'rectangle':\r\n if(this.rectangleTool)this.rectangleTool.close();\r\n this.rectangleTool = new T.RectangleTool(this.state.gis, paramgcr);\r\n this.rectangleTool.open();\r\n this.rectangleTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentBounds,currentRectangle,allRectangles} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentRectangle);\r\n let currentLnglats = [\r\n currentBounds.getNorthEast(),\r\n currentBounds.getSouthWest(),\r\n {lng: currentBounds.getSouthWest().lng,lat: currentBounds.getNorthEast().lat},\r\n {lng: currentBounds.getNorthEast().lng,lat: currentBounds.getSouthWest().lat}\r\n ];\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let area = currentBounds.getNorthEast().distanceTo(\r\n new T.LngLat(currentBounds.getNorthEast().lng,\r\n currentBounds.getSouthWest().lat)\r\n )* currentBounds.getNorthEast().distanceTo(\r\n new T.LngLat(currentBounds.getSouthWest().lng,\r\n currentBounds.getNorthEast().lat)\r\n );\r\n let backobj = {\r\n geometryType: 'polygon',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentRectangle.getFillColor(),\r\n lineColor: currentRectangle.getColor(),\r\n lineOpacity: currentRectangle.getOpacity(),\r\n pellucidity: currentRectangle.getFillOpacity(),\r\n lineWidth: currentRectangle.getWeight()\r\n }\r\n },\r\n mapLayer: currentRectangle,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(currentLnglats).path,\r\n _extent: getMaxMin(currentLnglats)._extent,\r\n area: area\r\n },\r\n lnglatAry: lnglatAry,\r\n area: area\r\n };\r\n //添加点击事件\r\n currentRectangle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentRectangle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentRectangle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n break;\r\n }\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\r\n }\r\n //关闭绘制图元\r\n closeDraw(){\r\n if(this.markerTool){\r\n this.markerTool.close();\r\n }\r\n if(this.polylineTool){\r\n this.polylineTool.close();\r\n }\r\n if(this.polygonTool){\r\n this.polygonTool.close();\r\n }\r\n if(this.rectangleTool){\r\n this.rectangleTool.close();\r\n }\r\n if(this.circleTool){\r\n this.circleTool.close();\r\n }\r\n }\r\n\r\n /*根据图元id,使图元变成可编辑状态*/\r\n doEdit(id){\r\n let t = this;\r\n let ms = t.getGraphic(id);\r\n if(!ms){\r\n return false;\r\n }\r\n if(ms.getType === 1){\r\n return false;\r\n }\r\n if(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n this.isEditId = id;\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.enableDragging();\r\n // ms.mapLayer.addEventListener('dragend',t.editGraphicChange);\r\n if(ms.mapLayer.label){\r\n ms.mapLayer.addEventListener('drag',t.showLabel);\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n ms.mapLayer.enableEdit();\r\n break;\r\n }\r\n t.setState({\r\n editId: id\r\n })\r\n }\r\n //关闭编辑\r\n endEdit(){\r\n let t = this;\r\n let ms = t.getGraphic(t.state.editId);\r\n this.isEditId = null;\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.disableDragging();\r\n // ms.mapLayer.removeEventListener('dragend',t.editGraphicChange);\r\n if(ms.mapLayer.label){\r\n ms.mapLayer.removeEventListener('drag',t.showLabel);\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n ms.mapLayer.disableEdit();\r\n break;\r\n }\r\n t.editGraphicChange(t.state.editId);\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n })\r\n }\r\n showLabel(){\r\n //这里的this指向调用的 点的对象\r\n this.showLabel();\r\n }\r\n //编辑变动后\r\n editGraphicChange(id){\r\n if(!id) return;\r\n let t = this;\r\n let ms = t.getGraphic(id);\r\n let obj = {\r\n id: id\r\n }\r\n switch(ms.geometryType){\r\n case 'point':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n break;\r\n case 'polyline':\r\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats())._extent;\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.distance = t.calculateDistance(ms.mapLayer.getLngLats());\r\n break;\r\n case 'polygon':\r\n case 'rectangle':\r\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats()[0])._extent;\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n // obj.area = getPolygonArea(ms.mapLayer.getLngLats()[0]);\r\n // obj.area = t.polygonTool.getArea(ms.mapLayer.getLngLats()[0]);\r\n // 关闭多边形多个听绘制后,回显报错\r\n break;\r\n case 'circle':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.area = Math.PI*Math.pow(ms.geometry.radius,2);\r\n break;\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n //删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n if(!!this.GM.getGraphic(id)){\r\n //清除聚合点 避免异常\r\n if(t.clusterObj){\r\n t.clusterObj.removeMarker(this.GM.getGraphic(id));\r\n }\r\n //清除地图中图元\r\n this.state.gis.removeOverLay(this.GM.getGraphic(id));\r\n //删除含 label点的label(天地图的坑)\r\n if(type === 'point' && this.GM.getGraphic(id).label){\r\n this.state.gis.removeOverLay(this.GM.getGraphic(id).getLabel());\r\n }\r\n //清除对应id的图元数据缓存\r\n this.GM.removeGraphic(id);\r\n this.GM.removeGraphicParam(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 //清除 state中id的缓存\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 clickGraphic (id,e) {\r\n let t = this;\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.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\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 if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n if(id === t.isEditId){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\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 if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n if(id === t.isEditId){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n //拖拽地图开始\r\n dragMapStart(){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) ===\"function\"){\r\n t.state.gis.addEventListener('dragstart', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.dragMapStart(obj);\r\n });\r\n }\r\n }\r\n //拖拽地图结束事件\r\n dragMapEnd(){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) ===\"function\"){\r\n t.state.gis.addEventListener('dragend', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.dragMapEnd(obj);\r\n });\r\n }\r\n }\r\n //地图移动开始事件\r\n moveStart(){\r\n let t = this;\r\n if(typeof(t.props.moveStart) ===\"function\"){\r\n t.state.gis.addEventListener('movestart', function(e) {\r\n if(!t.isZoom){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveStart(obj);\r\n }\r\n });\r\n }\r\n }\r\n //地图移动结束事件\r\n moveEnd(){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) ===\"function\"){\r\n t.state.gis.addEventListener('moveend', function(e) {\r\n let xylist = [],mapPane = t.state.gis.getPanes().mapPane;\r\n if(mapPane.style.top){\r\n xylist = [mapPane.style.left,mapPane.style.top];\r\n }else{\r\n let matchList = mapPane.style.transform.match(/translate\\((-?\\d*)+px,\\s*(-?\\d*)+px\\)/) \r\n || mapPane.style.transform.match(/translate3d\\((-?\\d*)+px,\\s*(-?\\d*)+px,\\s*(-?\\d*)+px\\)/)\r\n || [];\r\n xylist = [matchList[1],matchList[2]];\r\n }\r\n //重画海量点\r\n $(`#${t.pointCollectionId}`).css({\r\n top: `${-xylist[1]}px`,\r\n left: `${-xylist[0]}px`\r\n })\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n if(t.isZoom){\r\n t.isZoom = false;\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveEnd(obj);\r\n }\r\n });\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(){\r\n let t =this;\r\n if(typeof(t.props.zoomStart) ===\"function\"){\r\n t.state.gis.addEventListener('zoomstart', function(e) {\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.hide();\r\n }\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n t.isZoom = true;\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 //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(){\r\n let t =this;\r\n if(typeof(t.props.zoomEnd) ===\"function\"){\r\n t.state.gis.addEventListener('zoomend', function(e) {\r\n //重画热力图\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.show();\r\n t.heatmap.draw();\r\n }\r\n //重画海量点\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //避免zoom切换后,chrome的旋转角度被替换\r\n for(let i in t.GM.allParam){\r\n if(t.GM.allParam[i].geometryType == 'point' && t.GM.allParam[i].deg){\r\n t.GM.getGraphic(i).getElement().style.transform = \r\n t.GM.getGraphic(i).getElement().style.transform + ` rotate(${t.GM.allParam[i].deg}deg)`;\r\n }\r\n }\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n });\r\n }\r\n }\r\n //地图点击事件\r\n clickMap(){\r\n let t =this;\r\n if(typeof(t.props.clickMap) ===\"function\"){\r\n t.state.gis.addEventListener('click', function(e) {\r\n if(t.isNotClickMap){\r\n t.isNotClickMap = false;\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = e.lnglat;\r\n obj.pixel = e.containerPoint;\r\n t.props.clickMap(obj);\r\n }\r\n });\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.getIcon()){\r\n let shape = {...marker.getIcon().getIconAnchor()};\r\n //初始数据 点位有变动,重新刷新数据\r\n if(!t.animCount[id] || shape.y != t.animCount[id].now){\r\n t.animCount[id] = {\r\n start: shape.y,\r\n now: shape.y,\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.y = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\r\n marker.getIcon().setIconAnchor(shape);\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 += this.timer;\r\n t.movePoints[i].deleteTime -= this.timer;\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,oleLng,oldLat,rx,ry,deleteTime,totalTime,ddeg} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc){\r\n clearInterval(t.moveToTimer[id]);\r\n }else{\r\n let tx = oleLng + rx * ((totalTime-deleteTime) / this.timer),\r\n ty = oldLat + ry* ((totalTime-deleteTime) / this.timer);\r\n let lglt = new T.LngLat(tx,ty);\r\n if(t.movePoints[i].url){\r\n gc.getIcon().setIconUrl(t.movePoints[i].url);\r\n }\r\n gc.setLngLat(lglt);\r\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\r\n //旋转角度\r\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${ddeg}deg)`;\r\n gc.getElement().style['-ms-transform'] = ` rotate(${ddeg}deg)`;\r\n if(gc.label){\r\n gc.showLabel();\r\n }\r\n // 移动过的 放后面再动\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;\r\n delay = eval(delay)*1000;\r\n let count = delay/this.timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.getLngLat(),e = new T.LngLat(lnglat[0],lnglat[1]);\r\n if(s.equals(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.getLngLat(),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 }\r\n //拆分延迟移动定位\r\n let rx = (e.lng - s.lng)/count, ry = (e.lat - s.lat)/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 oleLng: s.lng,\r\n oldLat: s.lat,\r\n id,rx,ry,ddeg,url,\r\n waitTime: 0,\r\n totalTime: delay,\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 oleLng: s.lng,\r\n oldLat: s.lat,\r\n id,rx,ry,ddeg,url,\r\n waitTime: 0,\r\n totalTime: delay,\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 AMap.LngLat(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.lngLatToLayerPoint(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.lngLatToLayerPoint(new T.LngLat(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 //计算2点间距离 单位m 精确到个位\r\n calculatePointsDistance(f,s){\r\n let lnglat1 = new T.LngLat(f[0],f[1]);\r\n let lnglat2 = new T.LngLat(s[0],s[1]);\r\n return Math.round(lnglat1.distanceTo(lnglat2));\r\n }\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return false;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n if('distanceTo' in ps[i]){\r\n totalDistance += ps[i].distanceTo(ps[i + 1]);\r\n }else{\r\n totalDistance += new T.LngLat(ps[i][0],ps[i][1]).distanceTo(new T.LngLat(ps[i + 1][0],ps[i + 1][1]));\r\n }\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\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 searchPoints(searchValue,pageSize=10,pageIndex=1){\r\n let t = this;\r\n return new Promise((resolve)=>{\r\n let searchConfig = {\r\n pageCapacity: pageSize*pageIndex, //每页显示的数量\r\n //接收数据的回调函数\r\n onSearchComplete: (result)=>{\r\n if(!result.pois){\r\n resolve([]);;\r\n }else{\r\n let list = result.pois.map((r)=>{\r\n let lnglat = {};\r\n if(r.lonlat.indexOf(\",\")>-1){\r\n lnglat = {\r\n longitude: r.lonlat.split(',')[0],\r\n latitude: r.lonlat.split(',')[1],\r\n }\r\n }else {\r\n lnglat = {\r\n longitude: r.lonlat.split(' ')[0],\r\n latitude: r.lonlat.split(' ')[1],\r\n }\r\n }\r\n return {\r\n id: r.hotPointID,\r\n ...lnglat,\r\n canShowLabel: true,\r\n config: {\r\n labelContent: r.name,\r\n labelPixelY: 27\r\n },\r\n other: 'search'\r\n }\r\n })\r\n resolve(list);\r\n }\r\n } \r\n };\r\n //创建搜索对象\r\n let localsearch = new T.LocalSearch(t.state.gis, searchConfig);\r\n localsearch.search(searchValue);\r\n });\r\n\r\n }\r\n render(){\r\n let t = this;\r\n return (\r\n <div id={t.props.mapId} style={{width:'100%',height:'100%',zIndex: '1'}}></div>\r\n );\r\n }\r\n componentDidMount(){\r\n let t = this;\r\n this.loadMapComplete.then(()=>{\r\n t.mapLeft = document.getElementById(t.props.mapId).offsetLeft;\r\n t.mapTop = document.getElementById(t.props.mapId).offsetTop;\r\n t.init();\r\n //初始化完成后,再走更新\r\n t.isLoading = true;\r\n })\r\n }\r\n componentDidUpdate(prevProps, prevState) {//重新渲染结束\r\n let t = this;\r\n }\r\n componentWillReceiveProps(nextProps,prevProps) {//已加载组件,收到新的参数时调用\r\n let t = this;\r\n let receive = ()=>{\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,imageOverlays,\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 isClearAll,mapStyle,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n coverageType,\r\n infoWindowData\r\n } = nextProps;\r\n\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n // 设置地图样式\r\n if(!t.deepEqual(mapStyle,t.props.mapStyle)){\r\n if(mapStyle){\r\n t.state.gis.setStyle(mapStyle);\r\n }else{\r\n t.state.gis.removeStyle();\r\n }\r\n }\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType && !t.deepEqual(coverageType,t.props.coverageType)){\r\n t.setMapType(coverageType);\r\n }\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 /*点数据处理\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.state.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.state.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.state.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.state.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.updateLine(updatedData);\r\n t.addLine(addedData); \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(infoWindowData && !t.deepEqual(infoWindowData,t.props.infoWindowData)){\r\n t.infoWindow(infoWindowData);\r\n }\r\n //添加图片图层\r\n if(imageOverlays instanceof Array && !t.deepEqual(imageOverlays,t.props.imageOverlays)){\r\n t.imageUrlOverlay(imageOverlays);\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(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\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(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n if(!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])){\r\n t.setCenter(mapCenter);\r\n }\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n if(!(t.getZoomLevel() == mapZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\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(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n // 清除聚合\r\n if(!setCluster && setCluster !== t.props.setCluster){\r\n t.removeCluster(mapCluster);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool();\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 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(t.waitReceive){\r\n clearInterval(t.waitReceive);\r\n }\r\n //等等天地图初始化\r\n if(t.isLoading){\r\n receive();\r\n }else{\r\n t.waitReceive = setInterval(()=>{\r\n if(t.isLoading){\r\n clearInterval(t.waitReceive);\r\n receive();\r\n }\r\n },100);\r\n }\r\n\r\n // 比例尺控件位置改变\r\n if(nextProps.showControl && JSON.stringify(nextProps.showControl)!=JSON.stringify(t.props.showControl)){\r\n t.showControl(nextProps);\r\n }\r\n // 比例尺移除\r\n if(!nextProps.showControl) {\r\n t.removeControl();\r\n }\r\n // 地图类型控件位置改变\r\n if(nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch)!=JSON.stringify(t.props.satelliteSwitch)){\r\n t.showMapTypeControl(nextProps);\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 if(t.waitReceive){\r\n clearInterval(t.waitReceive);\r\n }\r\n if(t.waitInit){\r\n clearInterval(t.waitInit);\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 if(window.VtxMap && window.VtxMap[t.state.mapId])\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\nexport default TMap;\r\n"],"mappings":"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"}