@vtx/map 1.2.22 → 1.2.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/VtxMap/AMap/AMap.js +658 -1035
- package/lib/VtxMap/AMap/AMap.js.map +1 -1
- package/lib/VtxMap/BMap/Map.js +781 -1227
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/GMap/Map.js +1063 -1583
- package/lib/VtxMap/GMap/Map.js.map +1 -1
- package/lib/VtxMap/Map.js +23 -59
- package/lib/VtxMap/Map.js.map +1 -1
- package/lib/VtxMap/MapToolFunction.js +30 -67
- package/lib/VtxMap/MapToolFunction.js.map +1 -1
- package/lib/VtxMap/OMap/Map.js +888 -1384
- package/lib/VtxMap/OMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +789 -1329
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/TMap/TMap.js +680 -1097
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxMap/index.js +2 -9
- package/lib/VtxMap/index.js.map +1 -1
- package/lib/VtxMap/mapPlayer.js +74 -131
- package/lib/VtxMap/mapPlayer.js.map +1 -1
- package/lib/VtxMap/optimizingPointMap.js +42 -101
- package/lib/VtxMap/optimizingPointMap.js.map +1 -1
- package/lib/VtxMap/style/css.js +0 -6
- package/lib/VtxMap/style/css.js.map +1 -1
- package/lib/VtxMap/style/index.js +0 -6
- package/lib/VtxMap/style/index.js.map +1 -1
- package/lib/VtxMap/zoomMap.js +25 -56
- package/lib/VtxMap/zoomMap.js.map +1 -1
- package/lib/VtxModal/VtxModal.js +34 -80
- package/lib/VtxModal/VtxModal.js.map +1 -1
- package/lib/VtxModal/draggableModal.js +30 -68
- package/lib/VtxModal/draggableModal.js.map +1 -1
- package/lib/VtxModal/index.js +2 -7
- package/lib/VtxModal/index.js.map +1 -1
- package/lib/VtxModal/style/css.js +0 -6
- package/lib/VtxModal/style/css.js.map +1 -1
- package/lib/VtxModal/style/index.js +0 -6
- package/lib/VtxModal/style/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +123 -259
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
- package/lib/VtxSearchCheckMap/index.js +1 -3
- package/lib/VtxSearchCheckMap/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/mapping.js +1 -2
- package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/css.js +0 -19
- package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/index.js +0 -19
- package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.js +143 -318
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/lib/VtxSearchMap/index.js +1 -3
- package/lib/VtxSearchMap/index.js.map +1 -1
- package/lib/VtxSearchMap/mapping.js +1 -2
- package/lib/VtxSearchMap/mapping.js.map +1 -1
- package/lib/VtxSearchMap/style/css.js +0 -19
- package/lib/VtxSearchMap/style/css.js.map +1 -1
- package/lib/VtxSearchMap/style/index.js +0 -19
- package/lib/VtxSearchMap/style/index.js.map +1 -1
- package/lib/default.js +4 -13
- package/lib/default.js.map +1 -1
- package/lib/index.js +0 -3
- package/lib/index.js.map +1 -1
- package/lib/utils/util.js +15 -40
- package/lib/utils/util.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","names":["Set","Immutable","Map","props","GM","graphicManage","initPointIndex","_cluster","clusterIdList","_rangingTool","_bmar","_drawmanager","editGraphicChange","editTimeout","_boundary","moveToTimer","heatmap","morepoints","movePoints","editEvent","rangingTool","isRanging","line","points","distance","mapRangingTool","eventList","isDbclick","rangingTools","mapCreated","state","gis","mapId","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","cacheImgRecord","cacheImg","document","getElementById","createElement","id","style","display","body","appendChild","defImg","Image","src","configUrl","mapServerURL","loadMapJs","t","loadMapComplete","Promise","resolve","reject","window","google","omap","maps","$","getScript","PointCollection","OmapCluster","all","then","createMap","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","areaRestriction","boundaryName","heatMapData","customizedBoundary","Array","addPoint","addLine","addPolygon","addCircle","heatMapOverlay","addPointCollection","setVisiblePoints","cluster","openTrafficInfo","hideTrafficInfo","clickMap","dragMapStart","dragMapEnd","moveStart","zoomStart","moveEndAndZoomEnd","mapCenter","minZoom","maxZoom","showControl","options","zoom","center","oldZoomLevel","VtxMap","isShowControl","controlPosition","matchControlPosition","location","latLngBounds","isArray","sort","a","b","map","toString","lng","lat","disableDoubleClickZoom","draggableCursor","controlSize","rotateControl","scaleControl","streetViewControl","fullscreenControl","mapTypeControl","zoomControl","rotateControlOptions","position","streetViewControlOptions","fullscreenControlOptions","zoomControlOptions","mapTypeControlOptions","ControlPosition","TOP_CENTER","restriction","north","south","west","east","strictBounds","drawing","DrawingManager","drawingControl","setMap","OMapLib","MarkerClusterer","CanvasProjectionOverlay","prototype","OverlayView","constructor","onAdd","draw","onRemove","canvasProjectionOverlay","MyLabel","editable","editParam","sx","sy","isLabel","labelClass","labelContent","labelOffset","x","y","lnglat","_label","funs","innerHTML","className","panes","getPanes","markerLayer","overlayMouseTarget","i","removeListener","addListener","overlayProjection","getProjection","fromLatLngToDivPixel","left","parseFloat","top","setOptions","setPosition","getPosition","setZIndex","index","ZIndex","isMarkerContent","parentNode","removeChild","key","fun","tt","dragendFun","setTimeout","event","stopPropagation","latLng","va","pixel","addEventListener","removeEventListener","setDraggable","boolean","edit","mdown","clientX","clientY","mmEvent","e","replace","mupEvent","latlng","fromDivPixelToLatLng","Point","obj","ls","getLngLats","ids","type","alnglat","lngs","lats","getMoreGraphicParam","item","geometryType","push","geometry","paths","rings","forEach","sw","LatLng","ne","length","fitView","split","fitBounds","LatLngBounds","gt","mgt","c","getCenter","setCenter","setState","z","getZoomLevel","setZoom","clearClusters","clearAllPointCollection","allGraphics","clearAll","psids","apf","isRepetition","console","warn","longitude","latitude","cg","width","height","labelPixelX","labelPixelY","BAnimationType","markerContentX","markerContentY","deg","markerContent","config","marker","canShowLabel","join","label","setGraphic","iconUrl","RotateIcon","url","icon","anchor","size","Size","scaledSize","setRotation","getUrl","labelOrigin","Marker","ishaveLabel","zIndex","setAnimation","Animation","BOUNCE","DROP","mClick","rangingToolFun","clickGraphic","mMouseover","mouseOverGraphic","mMouseout","mouseOutGraphic","setGraphicParam","attributes","other","click","mouseover","mouseout","addPsTimer","upf","gc","getGraphic","gc_label","indexOf","removeMarker","oldPosition","getGraphicParam","remove","removeGraphic","setIcon","isAnimation","moveTo","animationDelay","autoRotation","urlleft","moveAnimation","upPsTimer","lsids","color","pellucidity","lineWidth","lineType","isHidden","icons","lineSymbol","path","strokeOpacity","scale","offset","repeat","linePath","lineOption","strokeColor","strokeWeight","Polyline","setVisible","setPath","pgsids","lineColor","lineOpacity","polygonOption","strokeStyle","fillColor","fillOpacity","polygonPath","Polygon","ccsids","circleOption","centerPoint","Circle","radius","setRadius","d","max","visible","opacity","visualization","HeatmapLayer","option","gradient","sortArray","value","setData","data","ftp","pointCollectionId","divpc","getDiv","offsetHeight","offsetWidth","p","fromLatLngToContainerPixel","shape","VotexpointCollection","GMapLib","addpointCollectionTimer","clearTimeout","ds","ind","reDraw","updatePointCollectionTimer","clear","graphic","removeCluster","splice","gLabel","gtp","endEdit","param","spherical","area","computeArea","mapLayer","getPath","getArray","calculateDistance","Math","pow","PI","editPointLabel","setEditable","drawParam","setDrawingMode","parameter","Date","getTime","len","paramgcr","extData","markerOptions","_drawmanagerEvent","backobj","drawEnd","polylineOptions","lnglatAry","lngX","latX","calculateGraphicDistance","getMaxMin","polygonOptions","calculateArea","_extent","circleOptions","getRadius","rectangleOptions","lnglatJson","getBounds","toJSON","calculatePointsDistance","ps","mapTop","mapLeft","trafficLayer","TrafficLayer","gids","status","fromContainerPixelToLatLng","lnlt","distext","round","random","updateLine","rangkey","end","lnglats","dbclickTimer","rangingToolEndFun","rangingToolMoveFun","rp","rcontent","grwkid","sl","updatePoint","arg","ary","clusterToolFunction","addMarkers","removeMarkers","clearMarkers","filter","vtx_g_rang","Object","apply","allps","getMapExtent","clickLngLat","css","visibility","isZoomming","isMoving","getZoom","moveEnd","zoomEnd","updatePointCollection","hide","gp","gg","pts","nowBounds","southWest","getNorthEast","northEast","getSouthWest","nowCenter","mapSize","ms","xmax","xmin","ymax","ymin","clearInterval","setInterval","waitTime","deleteTime","nowMovePoints","slice","deleteIndex","rx","ry","isAdded","tx","ty","addMarker","delay","urlright","timer","eval","count","s","equals","ddeg","rotateDeg","getIcon","isHave","sp","ep","spLngLat","epLngLat","tan","atan","disy","bias","RIGHT_BOTTOM","LEFT_TOP","LEFT_BOTTOM","RIGHT_TOP","fp","computeDistanceBetween","totalDistance","computeLength","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","offsetLeft","offsetTop","init","prevProps","prevState","nextProps","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","dataMatch","clearPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","doEdit","closeDraw","vtxRangingTool","loadLabel","clearOverlays","React","Component"],"sources":["VtxMap/OMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport {graphicManage,RotateIcon,getMaxMin} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nclass Map extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.initPointIndex = 0;//初始化地图时记录点当前位置\r\n this._cluster = null;//点聚合对象\r\n this.clusterIdList = [];//点聚合id集合\r\n this._rangingTool = null;//测距对象\r\n this._bmar = null;//区域限制对象\r\n this._drawmanager = null;//图元绘制对象\r\n this.editGraphicChange = null;//编辑方法回调\r\n this.editTimeout = null;//圆编辑回调延迟时间对象\r\n this._boundary = null;//获取行政区域数据的对象\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.heatmap = null;//热力图对象\r\n this.morepoints = [];//海量点数组\r\n this.movePoints = [];//移动点的动画集合\r\n this.editEvent = {};//编辑监听的事件\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false,//是否开启状态\r\n line: {},//线\r\n points: [],//点\r\n distance: 0,//测距长度\r\n mapRangingTool: null,//测距回调\r\n eventList: {},\r\n isDbclick: false\r\n };\r\n this.rangingTools = {};//测距点线缓存\r\n this.mapCreated = false;\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n };\r\n this.cacheImgRecord = {};//缓存图片记录,避免多次加载缓存\r\n // 图片缓存dom位置\r\n let cacheImg = document.getElementById('vtxomapdefaultimg');\r\n if(!cacheImg){\r\n cacheImg = this.cacheImg = document.createElement('div');\r\n cacheImg.id = 'vtxomapcacheImg';\r\n cacheImg.style.display = 'none';\r\n document.body.appendChild(cacheImg);\r\n }\r\n this.cacheImg = cacheImg;\r\n //缓存默认点位地址\r\n if(!document.getElementById('vtxomapdefaultimg')){\r\n let defImg = new Image();\r\n defImg.src = `${configUrl.mapServerURL}/images/defaultMarker.png`;\r\n defImg.id = 'vtxomapdefaultimg';\r\n cacheImg.appendChild(defImg);\r\n }\r\n //加载地图\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.google){\r\n resolve(t.omap = window.google.maps);\r\n }\r\n else{\r\n //&language=zh-CN\r\n //测试用地址,暂时只支持 10.10.11.227的ip\r\n $.getScript('http://ditu.google.cn/maps/api/js?key=AIzaSyAelEHQosKi09YLhXwmw3OR5ggScxOda2A&libraries=geometry,visualization,drawing',()=>{\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 OmapCluster = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/omapCluster.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection,OmapCluster]).then(()=>{\r\n resolve(t.omap = window.google.maps);\r\n })\r\n });\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction\r\n } = this.props;\r\n let {boundaryName,heatMapData,customizedBoundary} = this.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = this.state;\r\n // //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n /*设置指定图元展示*/\r\n if(mapVisiblePoints){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\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 //初始化地图点击事件\r\n t.clickMap();\r\n //地图拖动之前事件\r\n t.dragMapStart();\r\n // //地图拖动结束后事件\r\n t.dragMapEnd();\r\n // //地图移动之前事件\r\n t.moveStart();\r\n // //地图缩放开始前事件\r\n t.zoomStart();\r\n // //地图移动结束后事件/地图缩放结束后事件\r\n t.moveEndAndZoomEnd();\r\n this.mapCreated = true;\r\n }\r\n //创建地图\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapId,mapZoomLevel,minZoom,maxZoom,showControl,areaRestriction} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [626.3002300508477,37.90942995363547],\r\n minZoom: minZoom || 0,\r\n maxZoom: maxZoom || 22\r\n };\r\n //缓存 zoom等级,用于事件判断\r\n t.oldZoomLevel = options.zoom;\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n // 地图控件处理\r\n let isShowControl = false,\r\n controlPosition = t.matchControlPosition();\r\n if(showControl){\r\n controlPosition = t.matchControlPosition(showControl.location);\r\n isShowControl = !!showControl;\r\n }\r\n let latLngBounds = [];\r\n if(areaRestriction && Array.isArray(areaRestriction) && Array.isArray(areaRestriction[0])){\r\n //处理 区域限制数据\r\n latLngBounds = [\r\n areaRestriction[0][0],\r\n areaRestriction[0][1],\r\n areaRestriction[1][0],\r\n areaRestriction[1][1]\r\n ];\r\n latLngBounds.sort((a,b)=>a-b);\r\n }\r\n //创建地图 缓存地图对象\r\n let map = window.VtxMap[mapId] = t.state.gis = new t.omap.Map(document.getElementById(mapId.toString()),{\r\n center: {lng: options.center[0],lat: options.center[1]},\r\n disableDoubleClickZoom: false,\r\n draggableCursor: 'url(\"http://maps.gstatic.cn/mapfiles/openhand_8_8.cur\"), default', \r\n zoom: options.zoom,\r\n minZoom: options.minZoom,\r\n maxZoom: options.maxZoom,\r\n controlSize: 24,\r\n //全屏控件-禁用\r\n rotateControl: isShowControl,\r\n scaleControl: isShowControl,\r\n streetViewControl: isShowControl,\r\n fullscreenControl: isShowControl,\r\n mapTypeControl: isShowControl,\r\n zoomControl: isShowControl,\r\n rotateControlOptions: {position: controlPosition},\r\n streetViewControlOptions: {position: controlPosition},\r\n fullscreenControlOptions: {position: controlPosition},\r\n zoomControlOptions: {position: controlPosition},\r\n mapTypeControlOptions: {position: google.maps.ControlPosition.TOP_CENTER},\r\n //区域限制\r\n restriction: {\r\n latLngBounds: {\r\n north: latLngBounds[1] || 90,\r\n south: latLngBounds[0] || -90,\r\n west: latLngBounds[2] || -180,\r\n east: latLngBounds[3] || 180\r\n },\r\n strictBounds: false,\r\n }\r\n });\r\n /*=================================start========================================*/\r\n /*\r\n draw对象声明, 绘制返回方法实现\r\n */\r\n if(!t._drawmanager){\r\n t._drawmanager = new google.maps.drawing.DrawingManager({\r\n drawingControl: false\r\n });\r\n t._drawmanager.setMap(t.state.gis);\r\n }\r\n /*=================================start========================================*/\r\n //初始化点聚合对象\r\n if(!t._cluster){\r\n t._cluster = new OMapLib.MarkerClusterer(map,[],{maxZoom: options.maxZoom}); \r\n }\r\n /*=================================start========================================*/\r\n /*\r\n 声明OverlayView 类\r\n 用于切换lnglat和 pixel\r\n */\r\n function CanvasProjectionOverlay() {}\r\n CanvasProjectionOverlay.prototype = new google.maps.OverlayView();\r\n CanvasProjectionOverlay.prototype.constructor = CanvasProjectionOverlay;\r\n CanvasProjectionOverlay.prototype.onAdd = function(){};\r\n CanvasProjectionOverlay.prototype.draw = function(){};\r\n CanvasProjectionOverlay.prototype.onRemove = function(){};\r\n this.canvasProjectionOverlay = new CanvasProjectionOverlay();\r\n this.canvasProjectionOverlay.setMap(map);\r\n /*=================================start========================================*/\r\n /*\r\n 重写marker对象,支持html\r\n 要使用google对象,所以在creatMap中声明\r\n */\r\n let MyLabel = t.MyLabel = function(map,options = {}){\r\n //编辑\r\n this.editable = options.editable || false;\r\n this.editParam = {\r\n sx: 0,\r\n sy: 0\r\n };\r\n //地图\r\n this.map = map;\r\n this.isLabel = options.isLabel;\r\n //基本参数\r\n this.labelClass = options.labelClass;\r\n this.labelContent = options.labelContent;\r\n this.labelOffset = options.labelOffset || {x:0,y:0};\r\n this.lnglat = options.lnglat;\r\n\r\n this._label = null;\r\n\r\n this.funs = {};\r\n }\r\n //继承OverlayView类\r\n MyLabel.prototype = new google.maps.OverlayView();\r\n //添加地图时被调用(setMap时被调用)\r\n MyLabel.prototype.onAdd = function(){\r\n //创建文字标签\r\n if(!this._label){\r\n this._label = document.createElement('div');\r\n this._label.innerHTML = this.labelContent;\r\n this._label.style.position = 'absolute';\r\n this._label.className = this.labelClass;\r\n //获取承载点位的框\r\n let panes = this.getPanes();\r\n if(this.isLabel){\r\n panes.markerLayer.appendChild(this._label);\r\n }else{\r\n panes.overlayMouseTarget.appendChild(this._label);\r\n }\r\n }else{\r\n this._label.innerHTML = this.labelContent;\r\n this._label.className = this.labelClass;\r\n }\r\n for(var i in this.funs){\r\n this.removeListener(i);\r\n this.addListener(i,this.funs[i])\r\n }\r\n }\r\n //计算位置, onAdd和缩放和平移之后调用\r\n MyLabel.prototype.draw = function(){\r\n //返回MapCanvasProjection对象,拥有计算pixel和lnglat的方法\r\n let overlayProjection = this.getProjection();\r\n //将地理坐标转换成屏幕坐标\r\n let position = overlayProjection.fromLatLngToDivPixel(this.lnglat);\r\n if(position){\r\n this._label.style.left = position.x + parseFloat(this.labelOffset.x) + 'px';\r\n this._label.style.top = position.y + parseFloat(this.labelOffset.y) + 'px';\r\n }\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.setOptions = function(options){\r\n this.labelClass = options.labelClass;\r\n this.labelContent = options.labelContent;\r\n this.labelOffset = options.labelOffset || {x:0,y:0};\r\n this.lnglat = options.lnglat || this.lnglat;\r\n if(this._label){\r\n this.onAdd();\r\n }\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.setPosition = function(lnglat){\r\n this.lnglat = lnglat;\r\n if(this._label){\r\n this.draw();\r\n }else{\r\n //触发onAdd draw\r\n this.setMap(map);\r\n }\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.getPosition = function(){\r\n return this.lnglat;\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.setZIndex = function(index){\r\n if(this._label){\r\n this._label.style.ZIndex = index;\r\n }\r\n }\r\n //用于updatePoint时 判断原来的点图元类型\r\n MyLabel.prototype.isMarkerContent = function(){\r\n return true;\r\n }\r\n //被删除时会调用\r\n MyLabel.prototype.onRemove = function(){\r\n this._label.parentNode.removeChild(this._label); \r\n this._label = null;\r\n }\r\n MyLabel.prototype.addListener = function(key,fun){\r\n let tt = this;\r\n if(key == 'dragend'){\r\n //编辑返回函数\r\n this.dragendFun = fun;\r\n return false;\r\n }\r\n setTimeout(()=>{\r\n if(tt._label){\r\n tt.funs[key] = function(event){\r\n if(event.stopPropagation){\r\n event.stopPropagation();\r\n }\r\n if(!tt.editable){\r\n fun({\r\n latLng: tt.lnglat,\r\n va: event,\r\n pixel: tt.getProjection().fromLatLngToDivPixel(tt.lnglat)\r\n });\r\n }\r\n }\r\n tt._label.addEventListener(key,tt.funs[key]);\r\n }else{\r\n tt.addListener(key,fun);\r\n }\r\n },50)\r\n }\r\n MyLabel.prototype.removeListener = function(key){\r\n if(key == 'dragend'){\r\n this.dragendFun = ()=>{};\r\n return false;\r\n }\r\n if(this._label){\r\n this._label.removeEventListener(key,this.funs[key]);\r\n }\r\n }\r\n //设置是否可以编辑\r\n MyLabel.prototype.setDraggable = function(boolean){\r\n this.editable = boolean;\r\n if(boolean){\r\n this.edit();\r\n }else{\r\n this._label.removeEventListener('mousedown',this.mdown);\r\n }\r\n }\r\n //编辑时 事件和逻辑\r\n MyLabel.prototype.edit = function(){\r\n let tt = this;\r\n tt.mdown = function(event){\r\n event.stopPropagation();\r\n //禁止文本选中\r\n tt._label.className = 'noselect';\r\n // 记录原始位置\r\n tt.editParam.sx = event.clientX;\r\n tt.editParam.sy = event.clientY;\r\n\r\n let mmEvent = function(e){\r\n e.stopPropagation();\r\n //计算与上一次的差值 累加到label dom上\r\n tt._label.style.left = parseFloat(tt._label.style.left.replace('px','')) + e.clientX - tt.editParam.sx + 'px';\r\n tt._label.style.top = parseFloat(tt._label.style.top.replace('px','')) + e.clientY - tt.editParam.sy + 'px';\r\n //更新原始位置\r\n tt.editParam.sx = e.clientX;\r\n tt.editParam.sy = e.clientY;\r\n }\r\n let mupEvent = function(e){\r\n e.stopPropagation();\r\n //计算与上一次的差值 累加到label dom上\r\n let x = parseFloat(tt._label.style.left.replace('px','')) + e.clientX - tt.editParam.sx,\r\n y = parseFloat(tt._label.style.top.replace('px','')) + e.clientY - tt.editParam.sy;\r\n //计算经纬度,固定label的位置\r\n tt._label.style.left = x + 'px';\r\n tt._label.style.top = y + 'px';\r\n let overlayProjection = tt.getProjection(),\r\n latlng = overlayProjection.fromDivPixelToLatLng(new google.maps.Point(x,y));\r\n tt.setPosition(latlng);\r\n // 清空 文本禁选\r\n tt._label.className = '';\r\n tt.dragendFun(e);\r\n //关闭全局监听\r\n document.removeEventListener('mousemove',mmEvent);\r\n document.removeEventListener('mouseup',mupEvent);\r\n }\r\n document.addEventListener('mousemove',mmEvent)\r\n document.addEventListener('mouseup',mupEvent)\r\n }\r\n tt._label.addEventListener('mousedown',tt.mdown);\r\n }\r\n /*=================================end========================================*/\r\n }\r\n //设置指定图元展示 google只有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,type)=>{\r\n let alnglat = [],lngs = [],lats = [];\r\n if(!type){\r\n t.GM.getMoreGraphicParam(ids).map((item,index)=>{\r\n //根据天地图 覆盖物类型获取lnglat\r\n switch(item.geometryType){\r\n case 'point':\r\n alnglat.push([item.geometry.x,item.geometry.y]);\r\n break;\r\n case 'polyline':\r\n alnglat.push(...item.geometry.paths);\r\n break;\r\n case 'polygon':\r\n alnglat.push(...item.geometry.rings);\r\n break;\r\n case 'circle':\r\n alnglat.push([item.geometry.x,item.geometry.y]);\r\n break;\r\n }\r\n });\r\n }else{\r\n alnglat = ids;\r\n }\r\n alnglat.forEach((item,index)=>{\r\n lngs.push(item[0]);\r\n lats.push(item[1]);\r\n });\r\n lngs.sort();lats.sort();\r\n return {\r\n sw: new google.maps.LatLng({lng:lngs[0],lat:lats[0]}),\r\n ne: new google.maps.LatLng({lng:lngs[lngs.length-1],lat:lats[lats.length-1]})\r\n };\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 //支持传经纬度\r\n if(ids[0] instanceof Array){\r\n ls = getLngLats(ids,'lnglat');\r\n }else{\r\n ls = getLngLats(ids);\r\n }\r\n break;\r\n }\r\n t.state.gis.fitBounds(new google.maps.LatLngBounds(ls.sw,ls.ne));\r\n }\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t = this;\r\n let mgt = [626.3002300508477,37.90942995363547];\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.state.gis.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n mgt = gt;\r\n }\r\n t.state.gis.setCenter(new google.maps.LatLng({lng:mgt[0],lat:mgt[1]}));\r\n t.setState({center: mgt});\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.getZoomLevel();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(zoom);\r\n }\r\n //清空地图所有图元\r\n clearAll (){\r\n let t = this;\r\n //清空热力图\r\n if(t.heatmap){\r\n t.heatmap.setMap(null);\r\n }\r\n t.heatmap = null;\r\n //先清除所有标记\r\n if(t.clusterIdList.length){\r\n t.clearClusters();\r\n }\r\n t.clearAllPointCollection();\r\n //清空点\r\n for(let i in t.GM.allGraphics){\r\n if(t.GM.allGraphics[i]){\r\n t.GM.allGraphics[i].setMap(null)\r\n }\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 //图元功能处理方法\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n let apf = ()=>{\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let position = new t.omap.LatLng({lng:item.longitude,lat:item.latitude});\r\n let marker = null;\r\n if(item.markerContent){\r\n /*自定义html加点\r\n 用Label来实现,无法再添加label(高德有判断,实现不同)*/\r\n //覆盖物参数\r\n marker = new t.MyLabel(t.state.gis,{\r\n labelContent: item.markerContent,\r\n labelOffset: {x: cg.markerContentX,y: cg.markerContentY},\r\n });\r\n marker.setPosition(position);\r\n }else{\r\n /*添加非html点位*/\r\n // //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n let label = new t.MyLabel(t.state.gis,{\r\n isLabel: true,\r\n labelClass,\r\n labelContent: cg.labelContent,\r\n /*\r\n 为和百度等地图相同的参数 加上g.markerContentY值\r\n label是使用OverlayView手动实现,与marker没有关联的原因\r\n */\r\n labelOffset: {x: cg.labelPixelX,y: cg.labelPixelY+cg.markerContentY}\r\n });\r\n label.setPosition(position);\r\n //缓存\r\n t.GM.setGraphic(`${item.id}_vtxoMap_label`,label);\r\n }\r\n let iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(parseFloat(cg.deg)%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url:item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n width: cg.width,\r\n height: cg.height\r\n });\r\n }\r\n let icon = {\r\n anchor: {x: -cg.markerContentX,y: -cg.markerContentY},\r\n size: new t.omap.Size(cg.width,cg.height),\r\n scaledSize: new t.omap.Size(cg.width,cg.height),\r\n url: parseFloat(cg.deg)%360 != 0 ?\r\n iconUrl.setRotation(cg.deg).getUrl()\r\n :item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n labelOrigin: {x: cg.labelPixelX,y: cg.labelPixelY}\r\n };\r\n //添加点到地图\r\n marker = new t.omap.Marker({\r\n icon,\r\n position,\r\n map: t.state.gis\r\n });\r\n if(item.canShowLabel && cg.labelContent){\r\n marker.ishaveLabel = true;\r\n }\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n marker.setZIndex(cg.zIndex);\r\n }\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n marker.setAnimation(google.maps.Animation.BOUNCE);\r\n }else if(!item.markerContent && cg.BAnimationType == 1){\r\n marker.setAnimation(google.maps.Animation.DROP);\r\n }\r\n //点击事件\r\n let mClick = marker.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = marker.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = marker.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //所有点缓存在state中\r\n t.state.pointIds = psids;\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n //内部 不需要旋转图标的处理方式\r\n if(type == 'nodeg'){\r\n apf();\r\n }else{\r\n //缓存图片 旋转功能使用\r\n mapPoints.map((item,index)=>{\r\n //避免多次缓存\r\n if(item.url && !t.cacheImgRecord[item.url]){\r\n let i = new Image();\r\n i.src = item.url;\r\n t.cacheImg.appendChild(i);\r\n t.cacheImgRecord[item.url] = true;\r\n }\r\n });\r\n //定时等待 图片缓存,点位旋转功能需要\r\n t.addPsTimer = setTimeout(()=>{\r\n apf();\r\n },200)\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints,type){\r\n let t = this;\r\n let upf = ()=>{\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 //获取原有的图元 和 对应的label\r\n let gc = t.GM.getGraphic(item.id),\r\n gc_label = t.GM.getGraphic(`${item.id}_vtxoMap_label`);\r\n //更新前删除聚合\r\n if(t.clusterIdList.indexOf(item.id) > -1){\r\n t._cluster.removeMarker(gc);\r\n if(gc_label){\r\n t._cluster.removeMarker(gc_label);\r\n }\r\n }\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //新旧经纬度 旧经纬度配合moveTo使用\r\n let position = new t.omap.LatLng({lng:item.longitude,lat:item.latitude});\r\n let oldPosition = gc.getPosition();\r\n //前后点位类型都是markerContent\r\n if(gc.isMarkerContent && gc.isMarkerContent() && item.markerContent){\r\n /*\r\n 自定义html加点\r\n 用Label来实现,无法再添加label(高德有判断,实现不同)\r\n */\r\n //覆盖物参数\r\n gc.setOptions({\r\n labelContent: item.markerContent,\r\n labelOffset: {x: cg.markerContentX,y: cg.markerContentY},\r\n lnglat: oldPosition\r\n })\r\n }else if(gc.isMarkerContent && gc.isMarkerContent() && !item.markerContent){\r\n //markerContent类型转 marker-url类型\r\n //清除事件\r\n gc.removeListener('click');\r\n gc.removeListener('mouseover');\r\n gc.removeListener('mouseout');\r\n //删除原点位\r\n gc.setMap(null);\r\n let iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(parseFloat(cg.deg)%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url:item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n width: cg.width,\r\n height: cg.height\r\n });\r\n }\r\n let icon = {\r\n anchor: {x: -cg.markerContentX,y: -cg.markerContentY},\r\n size: new t.omap.Size(cg.width,cg.height),\r\n scaledSize: new t.omap.Size(cg.width,cg.height),\r\n url: parseFloat(cg.deg)%360 != 0 ?\r\n iconUrl.setRotation(cg.deg).getUrl()\r\n :item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n labelOrigin: {x: cg.labelPixelX,y: cg.labelPixelY}\r\n };\r\n //重新加载点位\r\n gc = new t.omap.Marker({\r\n icon,\r\n position:oldPosition,\r\n map: t.state.gis\r\n });\r\n //切换 图元对象缓存\r\n t.GM.setGraphic(item.id,gc);\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n if(!gc_label){\r\n gc_label = new t.MyLabel();\r\n t.GM.setGraphic(`${item.id}_vtxoMap_label`,gc_label);\r\n }\r\n gc_label.setOptions({\r\n labelClass,\r\n labelContent: cg.labelContent,\r\n /*\r\n 为和百度等地图相同的参数 加上g.markerContentY值\r\n label是使用OverlayView手动实现,与marker没有关联的原因\r\n */\r\n labelOffset: {x: cg.labelPixelX,y: cg.labelPixelY+cg.markerContentY}\r\n })\r\n gc.ishaveLabel = true;\r\n }\r\n //点击事件\r\n let mClick = gc.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = gc.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = gc.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n }else if(!gc.isMarkerContent && item.markerContent){\r\n //marker-url类型转markerContent类型\r\n //清除事件\r\n if(t.GM.getGraphicParam(`${item.id}_omap_event`).click){\r\n t.GM.getGraphicParam(`${item.id}_omap_event`).click.remove();\r\n }\r\n if(t.GM.getGraphicParam(`${item.id}_omap_event`).mouseover){\r\n t.GM.getGraphicParam(`${item.id}_omap_event`).mouseover.remove();\r\n }\r\n if(t.GM.getGraphicParam(`${item.id}_omap_event`).mouseout){\r\n t.GM.getGraphicParam(`${item.id}_omap_event`).mouseout.remove();\r\n }\r\n //删除原点位\r\n gc.setMap(null);\r\n //存在 label点位 直接删除\r\n if(gc_label){\r\n gc_label.setMap(null);\r\n t.GM.removeGraphic(`${item.id}_vtxoMap_label`);\r\n }\r\n //重新加载点位 (原有位置加载,配合moveTo方法使用)\r\n gc = new t.MyLabel(t.state.gis,{\r\n labelContent: item.markerContent,\r\n labelOffset: {x: cg.markerContentX,y: cg.markerContentY},\r\n });\r\n gc.setPosition(oldPosition);\r\n //切换 图元对象缓存\r\n t.GM.setGraphic(item.id,gc);\r\n //点击事件\r\n let mClick = gc.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = gc.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = gc.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n })\r\n }else{\r\n let iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(parseFloat(cg.deg)%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url:item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n width: cg.width,\r\n height: cg.height\r\n });\r\n }\r\n //前后点位类型都是marker-url\r\n let icon = {\r\n anchor: {x: -cg.markerContentX,y: -cg.markerContentY},\r\n size: new t.omap.Size(cg.width,cg.height),\r\n scaledSize: new t.omap.Size(cg.width,cg.height),\r\n url: parseFloat(cg.deg)%360 != 0 ?\r\n iconUrl.setRotation(cg.deg).getUrl()\r\n :item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n labelOrigin: {x: cg.labelPixelX,y: cg.labelPixelY}\r\n };\r\n gc.setIcon(icon);\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n if(!gc_label){\r\n gc_label = new t.MyLabel();\r\n t.GM.setGraphic(`${item.id}_vtxoMap_label`,gc_label);\r\n }\r\n gc_label.setOptions({\r\n labelClass,\r\n labelContent: cg.labelContent,\r\n /*\r\n 为和百度等地图相同的参数 加上g.markerContentY值\r\n label是使用OverlayView手动实现,与marker没有关联的原因\r\n */\r\n labelOffset: {x: cg.labelPixelX,y: cg.labelPixelY+cg.markerContentY}\r\n })\r\n gc.ishaveLabel = true;\r\n }\r\n }\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n gc.setAnimation(google.maps.Animation.BOUNCE);\r\n }else if(!item.markerContent && cg.BAnimationType == 1){\r\n gc.setAnimation(google.maps.Animation.DROP);\r\n }\r\n /*moveTo*/\r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n if(gc_label){\r\n gc_label.setPosition(position)\r\n }\r\n //修改经纬度\r\n gc.setPosition(position);\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n gc.setZIndex(cg.zIndex);\r\n }\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.moveAnimation();\r\n }\r\n //内部 不需要旋转图标的处理方式\r\n if(type == 'nodeg'){\r\n upf();\r\n }else{\r\n //缓存图片 旋转功能使用\r\n mapPoints.map((item,index)=>{\r\n //排除已经缓存的\r\n if(item.url && !t.cacheImgRecord[item.url]){\r\n let i = new Image();\r\n i.src = item.url;\r\n t.cacheImg.appendChild(i);\r\n t.cacheImgRecord[item.url] = true;\r\n }\r\n if(item.urlleft && !t.cacheImgRecord[item.urlleft]){\r\n let i = new Image();\r\n i.src = item.urlleft;\r\n t.cacheImg.appendChild(i);\r\n t.cacheImgRecord[item.urlleft] = true;\r\n }\r\n });\r\n // 定时等待 图片缓存,点位旋转功能需要\r\n t.upPsTimer = setTimeout(()=>{\r\n upf();\r\n },200)\r\n }\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 //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n // 线样式\r\n let icons = [];\r\n if(cg.lineType == 'dashed'){\r\n let lineSymbol = {\r\n path: 'M 0,-1 0,1',\r\n strokeOpacity: 1,\r\n scale: cg.lineWidth > 5?5:cg.lineWidth <2.5?2.5:cg.lineWidth\r\n };\r\n icons = [{icon:lineSymbol,offset: '0',repeat: '20px'}]\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n }),\r\n //处理线的参数\r\n lineOption = {\r\n strokeColor : cg.color, // 线颜色\r\n strokeWeight : cg.lineWidth, // 线宽\r\n strokeOpacity : cg.lineType == 'dashed'?0:cg.pellucidity, // 线透明度\r\n icons\r\n };\r\n //创建线对象\r\n let line = new google.maps.Polyline({...lineOption,path:linePath});\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.setVisible(false);\r\n }else{\r\n line.setVisible(true);\r\n }\r\n lsids.push(item.id);\r\n //添加线至地图\r\n line.setMap(t.state.gis);\r\n //点击事件\r\n let mClick = line.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = line.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = line.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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 (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n // 线样式\r\n let icons = [];\r\n if(cg.lineType == 'dashed'){\r\n let lineSymbol = {\r\n path: 'M 0,-1 0,1',\r\n strokeOpacity: 1,\r\n scale: cg.lineWidth > 5?5:cg.lineWidth <2.5?2.5:cg.lineWidth\r\n };\r\n icons = [{icon:lineSymbol,offset: '0',repeat: '20px'}]\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n }),\r\n //处理线的参数\r\n lineOption = {\r\n strokeColor : cg.color, // 线颜色\r\n strokeWeight : cg.lineWidth, // 线宽\r\n strokeOpacity : cg.lineType == 'dashed'?0:cg.pellucidity, // 线透明度\r\n icons\r\n };\r\n //修改线点位数据\r\n gc.setPath(linePath);\r\n //修改线配置\r\n gc.setOptions(lineOption);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.setVisible(false);\r\n }else{\r\n gc.setVisible(true);\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n }\r\n //添加面\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 //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //面的参数\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n polygonPath = item.rings.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n });\r\n //创建面对象\r\n let polygon = new google.maps.Polygon({...polygonOption,paths: polygonPath});\r\n //添加面至地图\r\n polygon.setMap(t.state.gis);\r\n //点击事件\r\n let mClick = polygon.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = polygon.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = polygon.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\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 (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //面的参数\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n polygonPath = item.rings.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n });\r\n //更新经纬度\r\n gc.setPath(polygonPath);\r\n //更新 多边形 参数\r\n gc.setOptions(polygonOption);\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n }\r\n }\r\n );\r\n }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 //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n centerPoint = new google.maps.LatLng({lng: item.longitude,lat: item.latitude});\r\n //创建圆图元实例\r\n let circle = new google.maps.Circle({\r\n ...circleOption,\r\n radius: item.radius,\r\n center: centerPoint\r\n });\r\n //添加圆至地图\r\n circle.setMap(t.state.gis);\r\n //点击事件\r\n let mClick = circle.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = circle.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = circle.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n ccsids.push(item.id);\r\n //缓存数据\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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 (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n centerPoint = new google.maps.LatLng({lng: item.longitude,lat: item.latitude});\r\n //修改中心点\r\n gc.setCenter(centerPoint);\r\n //修改半径\r\n gc.setRadius(item.radius);\r\n //修改圆 参数\r\n gc.setOptions(circleOption);\r\n //缓存图元的数据,便于后期操作\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\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 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 google.maps.visualization.HeatmapLayer({\r\n map: t.state.gis\r\n });\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: cg.visible?cg.opacity:0,\r\n // maxIntensity: cg.max\r\n }\r\n if(cg.gradient){\r\n option.gradient = ['rgba(102,255, 0,0)'];\r\n //将gradient排序,与其他地图的热力图数据一致\r\n let sortArray = [];\r\n for (let i in cg.gradient) {\r\n sortArray.push({key: i,value: cg.gradient[i]});\r\n }\r\n option.gradient = [\r\n ...option.gradient,\r\n ...sortArray.sort((a,b)=>{\r\n return a.key > b.key;\r\n }).map((item)=>{\r\n return item.value;\r\n })\r\n ]\r\n }\r\n t.heatmap.setOptions(option);\r\n t.heatmap.setData(\r\n (d.data || []).map((item,index)=>{\r\n return new google.maps.LatLng({lng: item.lng,lat: item.lat})\r\n })\r\n );\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n //处理海量点\r\n let panes = t.canvasProjectionOverlay.getPanes(),\r\n ftp = t.canvasProjectionOverlay.getProjection();\r\n if(panes){\r\n if(!t.pointCollectionId){\r\n t.pointCollectionId = `${t.props.mapId}_vtx_gmap_html_pointCollection`;\r\n let divpc = document.createElement('div');\r\n divpc.className = 'vtx_gmap_html_pointCollection_a';\r\n divpc.style.top = `-${t.state.gis.getDiv().offsetHeight/2}px`;\r\n divpc.style.left = `-${t.state.gis.getDiv().offsetWidth/2}px`;\r\n divpc.id = t.pointCollectionId;\r\n panes.markerLayer.appendChild(divpc);\r\n }\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 google.maps.LatLng(d);\r\n p = ftp.fromLatLngToContainerPixel(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.getDiv().offsetWidth,\r\n height: t.state.gis.getDiv().offsetHeight,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }else{\r\n if(t.addpointCollectionTimer){\r\n clearTimeout(t.addpointCollectionTimer);\r\n }\r\n t.addpointCollectionTimer = setTimeout(()=>{\r\n t.addPointCollection(data);\r\n },50);\r\n }\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []){\r\n let t = this;\r\n let ftp = t.canvasProjectionOverlay.getProjection();\r\n if(ftp){\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 google.maps.LatLng(d);\r\n p = ftp.fromLatLngToContainerPixel(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.getDiv().offsetWidth,\r\n height: t.state.gis.getDiv().offsetHeight,\r\n };\r\n item.value.reDraw(points,options);\r\n }\r\n })\r\n })\r\n }else{\r\n if(t.updatePointCollectionTimer){\r\n clearTimeout(t.updatePointCollectionTimer);\r\n }\r\n t.updatePointCollectionTimer = setTimeout(()=>{\r\n t.addPointCollection(data);\r\n },50);\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 removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id),\r\n gc_label = t.GM.getGraphic(`${id}_vtxoMap_label`);\r\n //删除点聚合效果\r\n if(t.clusterIdList.indexOf(id) > -1){\r\n t.removeCluster(id);\r\n }\r\n if(graphic){\r\n //清除地图中图元\r\n graphic.setMap(null);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n //删除点位label\r\n if(gc_label){\r\n gc_label.setMap(null);\r\n t.GM.removeGraphic(`${id}_vtxoMap_label`);\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n /*根据图元id,使图元变成可编辑状态*/\r\n doEdit (id){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(id),\r\n gLabel = t.GM.getGraphic(`${id}_vtxoMap_label`),\r\n gtp = t.GM.getGraphicParam(id);\r\n if(!graphic)return false;\r\n //关闭先前编辑的图元\r\n if(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n if(!t.editGraphicChange){\r\n //编辑变动后\r\n t.editGraphicChange = (e)=>{\r\n let id = t.state.editId,\r\n param = t.getGraphic(id),\r\n obj = {\r\n param,e,id,\r\n geometry: param.geometry\r\n };\r\n if(param.geometry.type == 'polygon'){\r\n if(google.maps.geometry && google.maps.geometry.spherical){\r\n obj.area = google.maps.geometry.spherical.computeArea(param.mapLayer.getPath().getArray());\r\n }else{\r\n obj.area = 0;\r\n }\r\n }\r\n if(param.geometry.type == 'polyline'){\r\n obj.distance = t.calculateDistance(param.geometry.paths);\r\n }\r\n if(param.geometry.type == 'circle'){\r\n obj.area = Math.pow(param.geometry.radius,2)*Math.PI;\r\n if(t.editTimeout){\r\n clearTimeout(t.editTimeout);\r\n }\r\n t.editTimeout = setTimeout(()=>{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n },300);\r\n }else{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n }\r\n }\r\n }\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.setDraggable(true);\r\n t.editEvent['dragend'] = graphic.addListener(\"dragend\",t.editGraphicChange);\r\n //判断是否是 markerContent 再判断是否有label\r\n if(!gtp.attributes.markerContent && gLabel){\r\n //label事件对象 便于删除\r\n t.editPointLabel = graphic.addListener(\"drag\",(event)=>{\r\n gLabel.setPosition(event.latLng);\r\n });\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n graphic.setEditable(true);\r\n t.editEvent['mouseup'] = graphic.addListener(\"mouseup\",t.editGraphicChange);\r\n break;\r\n case 'circle':\r\n graphic.setEditable(true);\r\n t.editEvent['center_changed'] = graphic.addListener(\"center_changed\",t.editGraphicChange);\r\n t.editEvent['radius_changed'] = graphic.addListener(\"radius_changed\",t.editGraphicChange);\r\n break;\r\n }\r\n t.setState({editId:id});\r\n }\r\n //关闭编辑\r\n endEdit (){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(t.state.editId);\r\n let gtp = t.GM.getGraphicParam(t.state.editId);\r\n if(!graphic)return false;\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.setDraggable(false);\r\n if(graphic.removeListener){\r\n graphic.removeListener(\"dragend\",t.editGraphicChange);\r\n }else{\r\n for(let i in t.editEvent){\r\n if(t.editEvent[i]){\r\n t.editEvent[i].remove();\r\n }\r\n }\r\n if(t.editPointLabel){\r\n t.editPointLabel.remove();\r\n t.editPointLabel = null;\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n graphic.setEditable(false);\r\n for(let i in t.editEvent){\r\n if(t.editEvent[i]){\r\n t.editEvent[i].remove();\r\n }\r\n }\r\n break;\r\n }\r\n //事件缓存制空,避免异常\r\n t.editEvent = {};\r\n let editGraphic = t.state.editGraphic;\r\n if(editGraphic){\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n },()=>{\r\n t.props.editGraphicChange(editGraphic);\r\n })\r\n }\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this,drawParam = {};\r\n //先关闭(防止连点)\r\n t._drawmanager.setDrawingMode(null);\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 t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let param = {};\r\n let paramgcr = {};\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.strokeColor = drawParam.parameter.lineColor;\r\n paramgcr.strokeOpacity = drawParam.parameter.lineOpacity;\r\n paramgcr.strokeWeight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.strokeStyle = drawParam.parameter.lineType;\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 let icon = {\r\n anchor: {x: -drawParam.parameter.markerContentX || 15,y: -drawParam.parameter.markerContentY || 30},\r\n size: new t.omap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30),\r\n scaledSize: new t.omap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30),\r\n url: drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`\r\n };\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n markerOptions: {\r\n icon\r\n }\r\n });\r\n t._drawmanager.setDrawingMode('marker');\r\n t._drawmanagerEvent = t._drawmanager.addListener('markercomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let backobj = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n url: icon.url,\r\n config: {\r\n width: icon.size.width,\r\n height: icon.size.height\r\n }\r\n },\r\n geometry: {\r\n type: 'point',\r\n x: e.getPosition().lng(),\r\n y: e.getPosition().lat()\r\n },\r\n geometryType: 'point',\r\n mapLayer: e\r\n }\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${drawParam.data.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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.strokeColor = drawParam.parameter.color;\r\n param.strokeOpacity = drawParam.parameter.pellucidity;\r\n param.strokeWeight = drawParam.parameter.lineWidth;\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n polylineOptions: param\r\n });\r\n t._drawmanager.setDrawingMode('polyline');\r\n t._drawmanagerEvent = t._drawmanager.addListener('polylinecomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let paths = [];\r\n let lnglatAry = (e.getPath().getArray() || []).map((item,index)=>{\r\n paths.push({lng: item.lng(),lat: item.lat()})\r\n return {lngX: item.lng(),latX: item.lat()};\r\n });\r\n let backobj = {\r\n geometryType: 'polyline',\r\n distance: t.calculateGraphicDistance(e.getPath().getArray()),\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: param.strokeColor,\r\n pellucidity: param.strokeOpacity,\r\n lineWidth: param.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'polyline',\r\n lnglatAry: lnglatAry,\r\n paths: getMaxMin(paths).path\r\n },\r\n lnglatAry: lnglatAry \r\n }\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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 t._drawmanager.setOptions({\r\n drawingControl: false,\r\n polygonOptions: paramgcr\r\n });\r\n t._drawmanager.setDrawingMode('polygon');\r\n t._drawmanagerEvent = t._drawmanager.addListener('polygoncomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let paths = [],area = t.calculateArea(drawParam.data.id);\r\n let lnglatAry = (e.getPath().getArray() || []).map((item,index)=>{\r\n paths.push({lng: item.lng(),lat: item.lat()})\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: paramgcr.fillColor,\r\n lineColor: paramgcr.strokeColor,\r\n lineOpacity: paramgcr.strokeOpacity,\r\n pellucidity: paramgcr.fillOpacity,\r\n lineWidth: paramgcr.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(paths).path,\r\n _extent: getMaxMin(paths)._extent,\r\n area: area\r\n },\r\n lnglatAry: lnglatAry,\r\n area: area\r\n };\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'circle':\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n circleOptions: paramgcr\r\n });\r\n t._drawmanager.setDrawingMode('circle');\r\n t._drawmanagerEvent = t._drawmanager.addListener('circlecomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let area = Math.PI * Math.pow(e.getRadius(),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: paramgcr.fillColor,\r\n lineColor: paramgcr.strokeColor,\r\n lineOpacity: paramgcr.strokeOpacity,\r\n pellucidity: paramgcr.fillOpacity,\r\n lineWidth: paramgcr.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'circle',\r\n x: e.getCenter().lng(),\r\n y: e.getCenter().lat(),\r\n radius: e.getRadius(),\r\n area: area\r\n },\r\n area: area\r\n };\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'rectangle':\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n rectangleOptions: paramgcr\r\n });\r\n t._drawmanager.setDrawingMode('rectangle');\r\n t._drawmanagerEvent = t._drawmanager.addListener('rectanglecomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let lnglatJson = e.getBounds().toJSON();\r\n let paths = [{\r\n lng: lnglatJson.west,\r\n lat: lnglatJson.south\r\n },{\r\n lng: lnglatJson.east,\r\n lat: lnglatJson.south\r\n },{\r\n lng: lnglatJson.east,\r\n lat: lnglatJson.north\r\n },{\r\n lng: lnglatJson.west,\r\n lat: lnglatJson.north\r\n }];\r\n let lnglatAry = (paths || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let area = t.calculatePointsDistance([lnglatJson.west,lnglatJson.south],[lnglatJson.east,lnglatJson.south])*\r\n t.calculatePointsDistance([lnglatJson.east,lnglatJson.south],[lnglatJson.east,lnglatJson.north]);\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: paramgcr.fillColor,\r\n lineColor: paramgcr.strokeColor,\r\n lineOpacity: paramgcr.strokeOpacity,\r\n pellucidity: paramgcr.fillOpacity,\r\n lineWidth: paramgcr.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(paths).path,\r\n _extent: getMaxMin(paths)._extent,\r\n area: area\r\n },\r\n lnglatAry: lnglatAry,\r\n area: area\r\n };\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(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 let t = this;\r\n t._drawmanager.setDrawingMode(null);\r\n }\r\n /*\r\n 事件处理\r\n */\r\n //点击图元事件\r\n clickGraphic (id,e) {\r\n let t = this;\r\n //判断是否点击的测距关闭点位\r\n if(id && id.indexOf('vtx_g_rang_end') > -1){\r\n let index = t.GM.getGraphicParam(id).attributes.index;\r\n let ls = t.rangingTools[index].line,\r\n ps = t.rangingTools[index].points;\r\n //删除测距线\r\n t.removeGraphic(ls.id,'line');\r\n //删除关闭点\r\n t.removeGraphic(id,'point');\r\n //删除中间点\r\n for(let i = 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i].id,'point');\r\n }\r\n //清除测距数据缓存\r\n delete t.rangingTools[index];\r\n }else{\r\n if(id.indexOf('vtx_g_rang_') > -1){\r\n return false;\r\n }\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.va.y - t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.va.x - t.mapLeft,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n if(id.indexOf('vtx_g_rang_') > -1){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.va.y - t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.va.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 //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n if(id.indexOf('vtx_g_rang_') > -1){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.va.y - t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.va.x - t.mapLeft,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*\r\n 地图服务功能\r\n */\r\n //开启路况\r\n openTrafficInfo(){\r\n let t =this;\r\n if(!t.trafficLayer){\r\n t.trafficLayer = new google.maps.TrafficLayer();\r\n }\r\n t.trafficLayer.setMap(t.state.gis);\r\n }\r\n //关闭路况\r\n hideTrafficInfo(){\r\n let t =this;\r\n if(t.trafficLayer){\r\n t.trafficLayer.setMap(null);\r\n }\r\n }\r\n //测距功能\r\n vtxRangingTool(mapRangingTool){\r\n let t =this;\r\n let {lineIds,polygonIds,circleIds} = t.state;\r\n let gids = [...lineIds,...polygonIds,...circleIds];\r\n t.state.gis.disableDoubleClickZoom = true;\r\n t.state.gis.draggableCursor = 'crosshair';\r\n //开启测距状态\r\n if(!t.rangingTool.isRanging){\r\n t.rangingTool.isRanging = true;\r\n }\r\n //初始测距回调\r\n if(!t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool = mapRangingTool;\r\n }\r\n if(!t.rangingToolFun){\r\n /*测距功能*/\r\n t.rangingToolFun = (e,status)=>{\r\n let fun = ()=>{\r\n t.rangingTool.isDbclick = false;\r\n if(t.rangingTool.isRanging){\r\n //测距开始\r\n //点击位置\r\n let ftp = t.canvasProjectionOverlay.getProjection(),\r\n lnglat = ftp.fromContainerPixelToLatLng(new google.maps.Point(e.va.x - t.mapLeft,e.va.y - t.mapTop)),\r\n lnlt = [lnglat.lng(),lnglat.lat()];\r\n //2个点以上 计算长度\r\n if(t.rangingTool.points.length > 0){\r\n t.rangingTool.distance += t.calculatePointsDistance(lnlt,\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude]\r\n );\r\n }else{\r\n t.rangingTool.line.paths = [];\r\n }\r\n t.rangingTool.line.paths.push([...lnlt]);\r\n //处理距离展示\r\n let distext = t.rangingTool.distance > 0\r\n ?(t.rangingTool.distance > 1000\r\n ?`总长:${Math.round(t.rangingTool.distance/10)/100}公里`:`总长:${t.rangingTool.distance}米`)\r\n :'起点';\r\n //加点\r\n let point = {\r\n id: t.rangingTool.points.length + 'vtx_g_rang_p'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div style='z-index:1; height: 0px;'>\r\n <div class='vtx-g-rangingPoint'></div>\r\n <div class='vtx-g-rangingDistance'>${distext}</div>\r\n </div>\r\n `,\r\n config: {\r\n markerContentX: -5.5,\r\n markerContentY: -12.5,\r\n }\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([point]);\r\n //缓存点信息\r\n t.rangingTool.points.push(point);\r\n if(t.rangingTool.line.paths.length == 2){\r\n //加线\r\n t.rangingTool.line = {\r\n id: 'vtx_g_rang_line'+Math.random(),\r\n paths: [...t.rangingTool.line.paths],\r\n config:{\r\n color: '#108ee9',\r\n lineWidth: 2,\r\n lineType: 'solid'\r\n }\r\n }\r\n t.addLine([t.rangingTool.line]);\r\n }else if(t.rangingTool.line.paths.length > 2){\r\n t.updateLine([{\r\n ...t.rangingTool.line,\r\n paths: [...t.rangingTool.line.paths]\r\n }]);\r\n }\r\n //双击 测距结束\r\n if(status == 'dbl'){\r\n let rangkey = new Date().getTime()+Math.random();\r\n //加结束点\r\n let end = {\r\n id: 'vtx_g_rang_end'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div>\r\n <div class='vtx-g-rang-exit'>x</div>\r\n </div>\r\n `,\r\n config: {\r\n width:13,\r\n height:13,\r\n markerContentX: -20,\r\n markerContentY: -20,\r\n },\r\n index: rangkey\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([end]);\r\n //删除提示框 \r\n t.removeGraphic('vtx_g_rang_showRangTool','point');\r\n t.removeGraphic('vtx_g_rang_showRangTool_line','line');\r\n //缓存当前这一条测距数据\r\n t.rangingTools[rangkey] = {...t.rangingTool};\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n })\r\n }\r\n }\r\n }\r\n }\r\n if(status !== 'dbl'){\r\n //100毫秒内点击2次 则结束\r\n if(!t.rangingTool.isDbclick){\r\n t.rangingTool.isDbclick = true;\r\n }else{\r\n if(t.rangingTool.dbclickTimer){\r\n clearTimeout(t.rangingTool.dbclickTimer);\r\n }\r\n t.rangingTool.isDbclick = false;\r\n t.rangingToolEndFun(e);\r\n }\r\n t.rangingTool.dbclickTimer = setTimeout(()=>{\r\n fun();\r\n },200)\r\n }else{\r\n fun();\r\n }\r\n }\r\n }\r\n if(!t.rangingToolMoveFun){\r\n t.rangingToolMoveFun = (e)=>{\r\n //获取测距提示点位\r\n let rp = {...t.GM.getGraphicParam('vtx_g_rang_showRangTool').attributes};\r\n //删除多余数据,避免other层级太多\r\n delete rp.other;\r\n let rcontent = rp.markerContent;\r\n if(t.rangingTool.points.length > 0){\r\n let distance = t.calculatePointsDistance(\r\n [e.latLng.lng(),e.latLng.lat()],\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n // 实时计算距离\r\n distance += t.rangingTool.distance;\r\n let distext = distance > 1000\r\n ?`总长:${Math.round(distance/10)/100}公里`:`总长:${distance}米`;\r\n rcontent = `\r\n <div class='vtx-g-rang-showRangTool'>\r\n <div>${distext}</div>\r\n <div>单击确定地点,双击结束</div>\r\n </div>\r\n `;\r\n //测距移动的线\r\n let sl = {\r\n id: 'vtx_g_rang_showRangTool_line',\r\n paths: [\r\n [ t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude\r\n ],\r\n [e.latLng.lng(),e.latLng.lat()]\r\n ],\r\n config: {\r\n color: '#108ee9',\r\n lineWidth: 2,\r\n lineType: 'dashed',\r\n pellucidity: 0.5\r\n }\r\n };\r\n if(!t.GM.getGraphic('vtx_g_rang_showRangTool_line')){\r\n t.addLine([sl]);\r\n t.GM.getGraphic('vtx_g_rang_showRangTool_line').addListener('dblclick',(e)=>{\r\n t.rangingToolEndFun(e)\r\n })\r\n }else{\r\n t.updateLine([sl]);\r\n }\r\n }\r\n rp = {\r\n ...rp,\r\n longitude: e.latLng.lng(),\r\n latitude: e.latLng.lat(),\r\n markerContent: rcontent\r\n }\r\n t.updatePoint([rp],'nodeg');\r\n }\r\n }\r\n if(!t.rangingToolEndFun){\r\n t.rangingToolEndFun = (e)=>{\r\n t.state.gis.disableDoubleClickZoom = false;\r\n //测距完结\r\n if(t.rangingTool.isRanging){\r\n if(t.rangingTool.points.length > 0){\r\n //处理点击和双击事件逻辑\r\n t.rangingToolFun(e,'dbl');\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n });\r\n }\r\n }else{\r\n //删除提示框 \r\n t.removeGraphic('vtx_g_rang_showRangTool','point');\r\n }\r\n //关闭监听事件\r\n for(let i in t.rangingTool.eventList){\r\n if(t.rangingTool.eventList[i]){\r\n t.rangingTool.eventList[i].remove();\r\n }\r\n }\r\n t.rangingTool = {\r\n ...t.rangingTool,\r\n isRanging: false,//是否开启状态\r\n line: {},//线缓存\r\n points: [],//点\r\n distance: 0,//测距长度\r\n isDbclick: false,\r\n dbclickTimer: null\r\n }\r\n t.rangingToolFun = null;\r\n t.rangingToolMoveFun = null;\r\n t.state.gis.draggableCursor = 'url(\"http://maps.gstatic.cn/mapfiles/openhand_8_8.cur\"), default';\r\n }\r\n }\r\n }\r\n //避免鼠标在图元上 测距工具不起作用\r\n gids.forEach((item)=>{\r\n t.rangingTool.eventList[item] = t.GM.getGraphic(item).addListener('mousemove',(e)=>{\r\n if(t.rangingTool.isRanging && t.rangingToolMoveFun){\r\n t.rangingToolMoveFun(e);\r\n }\r\n })\r\n })\r\n //地图鼠标移入事件\r\n t.rangingTool.eventList['mouseover'] = t.state.gis.addListener('mouseover',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n let rp = {\r\n id: 'vtx_g_rang_showRangTool',\r\n longitude: e.latLng.lng(),\r\n latitude: e.latLng.lat(),\r\n markerContent: `\r\n <div class='vtx-g-rang-showRangTool'>单击确定起点</div>\r\n `,\r\n config: {\r\n markerContentX: 20,\r\n markerContentY: 20\r\n }\r\n }\r\n t.addPoint([rp],'nodeg');\r\n }\r\n });\r\n //地图鼠标移出事件\r\n t.rangingTool.eventList['mouseout'] = t.state.gis.addListener('mouseout',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n t.removeGraphic('vtx_g_rang_showRangTool','point');\r\n }\r\n });\r\n //地图鼠标移动事件\r\n t.rangingTool.eventList['mousemove'] = t.state.gis.addListener('mousemove',(e)=>{\r\n //鼠标移动地图时,删除测距显示点\r\n if(t.rangingTool.isRanging && t.rangingToolMoveFun){\r\n t.rangingToolMoveFun(e);\r\n }\r\n });\r\n //双击事件\r\n t.rangingTool.eventList['dblclick'] = t.state.gis.addListener('dblclick',(e)=>{\r\n t.rangingToolEndFun(e);\r\n });\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster (arg) {\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n t._cluster.addMarkers(ary);\r\n }\r\n //删除点聚合效果\r\n removeCluster(arg){\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n if(ary.length > 0){\r\n t._cluster.removeMarkers(ary);\r\n }\r\n }\r\n //清空聚合效果\r\n clearClusters(){\r\n let t = this;\r\n t._cluster.clearMarkers();\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds.filter((item,index)=>{\r\n return item.indexOf(vtx_g_rang) == -1;\r\n });\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 t.clusterIdList = ary;\r\n //过滤moveTo的点位\r\n //缓存所有聚合的点位\r\n let allps = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let gc = t.GM.getGraphic(ary[i]);\r\n allps.push(gc);\r\n //加入label图元\r\n if(gc.ishaveLabel){\r\n allps.push(t.GM.getGraphic(`${ary[i]}_vtxoMap_label`));\r\n }\r\n }\r\n return allps;\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.addListener('click',(e)=>{\r\n //测距点击事件\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e);\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = e.point;\r\n obj.pixel = {\r\n x: e.va.x - t.mapLeft,\r\n y: e.va.y - t.mapTop\r\n };\r\n t.props.clickMap(obj);\r\n }\r\n });\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.addListener('dragstart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n })\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n t.state.gis.addListener('dragend',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n })\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n t.state.gis.addListener('bounds_changed',(e)=>{\r\n if(t.pointCollectionId){\r\n $(`#${t.pointCollectionId}`).css({visibility: 'hidden'});\r\n }\r\n //区别是否在移动状态\r\n if(!t.isZoomming && !t.isMoving){\r\n if(t.oldZoomLevel == t.state.gis.getZoom()){\r\n t.isMoving = true;\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n //google地图没有move事件和zoomEnd事件,通过模拟实现\r\n moveEndAndZoomEnd(){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function' || \r\n typeof(t.props.zoomEnd) === 'function' ||\r\n typeof(t.props.moveStart) === 'function'||\r\n typeof(t.props.zoomStart) === 'function'){\r\n t.state.gis.addListener('idle',(e)=>{\r\n if(t.pointCollectionId){\r\n $(`#${t.pointCollectionId}`).css({visibility: 'inherit'});\r\n }\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //区别是否在移动状态-同时判断是moveEnd还是zoomEnd\r\n if(t.isMoving){\r\n t.isMoving = false;\r\n }\r\n if(t.isZoomming){\r\n t.isZoomming = false;\r\n }\r\n if(t.oldZoomLevel != t.state.gis.getZoom()){\r\n t.oldZoomLevel = t.state.gis.getZoom();\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n t.props.zoomEnd(obj);\r\n }\r\n }else{\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n t.props.moveEnd(obj);\r\n }\r\n }\r\n //更新海量点\r\n if(t.props.mapPointCollection){\r\n t.updatePointCollection(t.props.mapPointCollection);\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.addListener('zoom_changed',(e)=>{\r\n if(t.pointCollectionId){\r\n $(`#${t.pointCollectionId}`).css({visibility: 'hidden'});\r\n }\r\n if(!t.isZoomming){\r\n t.isZoomming = 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 //对外使用方法\r\n //显示隐藏的图元\r\n showGraphicById (id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).setVisible(true);\r\n }\r\n }\r\n //隐藏图元\r\n hideGraphicById(id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).hide(false);\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.getPosition().lng();\r\n lat = gg.getPosition().lat();\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.getPath().getArray().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.getPath().getArray().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().lng();\r\n lat = gg.getCenter().lat();\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 getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis.getBounds();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.getNorthEast().lng(),\r\n lat : nowBounds.getNorthEast().lat()\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.getSouthWest().lng(),\r\n lat : nowBounds.getSouthWest().lat()\r\n };\r\n obj.nowCenter = t.state.gis.getCenter();\r\n obj.zoom = t.state.gis.getZoom();\r\n obj.mapSize = {\r\n width: t.state.gis.getDiv().offsetWidth,\r\n height: t.state.gis.getDiv().offsetHeight\r\n };\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng(),obj.nowCenter.lat()],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getZoom();\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(ms){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n if('getPath' in ms){\r\n path = ms.getPath().getArray();\r\n path = path.map((item,index)=>{\r\n let lng = item.lng(),lat = item.lat();\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n }\r\n return {lnglatAry,_extent,path};\r\n }\r\n //点位移动动画效果\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id),\r\n gc_label = t.GM.getGraphic(`${id}_vtxoMap_label`);\r\n if(!gc){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n if(gc.isAdded){\r\n t._cluster.removeMarker(gc);\r\n }\r\n if(gc_label && gc_label.isAdded){\r\n t._cluster.removeMarker(gc_label);\r\n }\r\n let gg = gc.getPosition();\r\n let tx = gg.lng() + rx,ty = gg.lat() + ry;\r\n gc.setPosition(new t.omap.LatLng({lng:tx,lat:ty}));\r\n if(gc_label){\r\n gc_label.setPosition(new t.omap.LatLng({lng:tx,lat:ty}));\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 let {id,rx,ry,waitTime,deleteTime} = t.movePoints[deleteIndex[i]],\r\n gc = t.GM.getGraphic(id),\r\n gc_label = t.GM.getGraphic(`${id}_vtxoMap_label`);\r\n if(t.clusterIdList.indexOf(id) > -1){\r\n t._cluster.addMarker(gc);\r\n if(gc_label){\r\n t._cluster.addMarker(gc_label);\r\n }\r\n }\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 let t = this,timer = 10,\r\n gc = t.GM.getGraphic(id);\r\n delay = eval(delay || 3)*1000;\r\n let count = delay/timer;\r\n let s = gc.getPosition(),e = new t.omap.LatLng({lng:lnglat[0],lat:lnglat[1]});\r\n if(s.equals(e)){\r\n return false;\r\n }else{\r\n let url= null;\r\n //计算角度,旋转\r\n if(autoRotation && !gc.isMarkerContent){\r\n let ddeg = t.rotateDeg(s,e);\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 let icon = gc.getIcon(),iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(ddeg%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url: url,\r\n width: icon.size.width,\r\n height: icon.size.height\r\n });\r\n }\r\n gc.setIcon({...icon,url: iconUrl.setRotation(ddeg).getUrl()})\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 id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp,ep){\r\n let t = this,\r\n deg = 0,\r\n ftp = t.canvasProjectionOverlay.getProjection(),\r\n spLngLat = sp,epLngLat = ep;\r\n if(ftp){\r\n if(Array.isArray(sp)){\r\n spLngLat = new t.omap.LatLng({lng:sp[0],lat:sp[1]})\r\n }\r\n if(Array.isArray(ep)){\r\n spLngLat = new t.omap.LatLng({lng:ep[0],lat:ep[1]})\r\n }\r\n let s = ftp.fromLatLngToContainerPixel(spLngLat),\r\n //获取当前点位的经纬度\r\n e = ftp.fromLatLngToContainerPixel(epLngLat);\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 }\r\n return deg;\r\n }\r\n /*\r\n 匹配控件位置方法\r\n (谷歌地图有8个方位,为了统一,只使用左上,左下,右上,右下)\r\n */\r\n matchControlPosition(location){\r\n let position = google.maps.ControlPosition.RIGHT_BOTTOM;\r\n switch(location){\r\n case 'tl':\r\n position = google.maps.ControlPosition.LEFT_TOP;\r\n break;\r\n case 'bl':\r\n position = google.maps.ControlPosition.LEFT_BOTTOM\r\n break;\r\n case 'tr':\r\n position = google.maps.ControlPosition.RIGHT_TOP;\r\n break;\r\n case 'br':\r\n position = google.maps.ControlPosition.RIGHT_BOTTOM;\r\n break;\r\n }\r\n return position;\r\n }\r\n /*\r\n 地图内部需要公共方法\r\n */\r\n calculatePointsDistance(fp,ep){\r\n if(google.maps.geometry && google.maps.geometry.spherical){\r\n return Math.round(google.maps.geometry.spherical.computeDistanceBetween(\r\n new google.maps.LatLng({lng:fp[0],lat:fp[1]})\r\n ,\r\n new google.maps.LatLng({lng:ep[0],lat:ep[1]})\r\n )*100)/100;\r\n }\r\n return 0;\r\n }\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 totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\r\n }\r\n //计算图元面积(面,圆)\r\n calculateArea(id){\r\n var t = this;\r\n return google.maps.geometry.spherical.computeArea(t.GM.getGraphic(id).getPath().getArray());\r\n }\r\n //计算多个点的距离(常用于线计算)[入参是 google 经纬度对象数组]\r\n calculateGraphicDistance(ary){\r\n var t = this;\r\n return google.maps.geometry.spherical.computeLength(ary);\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return(\r\n <div id={_map.mapId} style={{width:'100%',height:'100%'}}></div>\r\n );\r\n }\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.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 }\r\n //重新渲染结束\r\n componentDidUpdate(prevProps, prevState) {}\r\n //已加载组件,收到新的参数时调用\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll\r\n } = nextProps;\r\n let props = t.props;\r\n\r\n // 等待地图加载\r\n if(!t.mapCreated)return;\r\n \r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && props.mapPoints instanceof Array && !t.deepEqual(mapPoints,props.mapPoints)){\r\n let oldMapPoints = props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.state.editId){\r\n oldMapPoints = 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 && props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,props.mapPolygons)){\r\n let oldMapPolygons = props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.state.editId){\r\n oldMapPolygons = 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 && props.mapCircles instanceof Array && !t.deepEqual(mapCircles,props.mapCircles)){\r\n let oldMapCircles = props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.state.editId){\r\n oldMapCircles = 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 && props.mapLines instanceof Array && !t.deepEqual(mapLines,props.mapLines)){\r\n let oldMapLines = props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.state.editId){\r\n oldMapLines = 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 && props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n // 获取热力图\r\n if(heatMapData && !t.deepEqual(heatMapData,props.heatMapData)){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //图元编辑调用\r\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\r\n t.doEdit(editGraphicId);\r\n }\r\n //关闭图元编辑\r\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\r\n t.endEdit();\r\n }\r\n //开启图元绘制\r\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n /*设置指定图元展示*/\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n //开关路况\r\n if(isOpenTrafficInfo){\r\n t.openTrafficInfo();\r\n }else{\r\n t.hideTrafficInfo();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.loadLabel){\r\n clearInterval(t.loadLabel);\r\n }\r\n if(t.upPsTimer){\r\n clearTimeout(t.upPsTimer);\r\n }\r\n if(t.addPsTimer){\r\n clearTimeout(t.addPsTimer);\r\n }\r\n if(t.state.gis){\r\n t.state.gis.clearOverlays();\r\n }\r\n t.state.gis = null;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\n\r\nexport default Map;"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_MapToolFunction","_immutable","_default2","e","__esModule","_createForOfIteratorHelper","r","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","ownKeys","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","constructor","name","from","test","_classCallCheck","_defineProperties","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","Set","Immutable","Map","_React$Component","props","_this","GM","graphicManage","initPointIndex","_cluster","clusterIdList","_rangingTool","_bmar","_drawmanager","editGraphicChange","editTimeout","_boundary","moveToTimer","heatmap","morepoints","movePoints","editEvent","rangingTool","isRanging","line","points","distance","mapRangingTool","eventList","isDbclick","rangingTools","mapCreated","state","gis","mapId","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","cacheImgRecord","cacheImg","document","getElementById","createElement","id","style","display","body","appendChild","defImg","Image","src","concat","configUrl","mapServerURL","loadMapJs","loadMapComplete","Promise","resolve","reject","window","google","omap","maps","$","getScript","PointCollection","OmapCluster","all","then","init","createMap","_this$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","areaRestriction","_this$props2","boundaryName","heatMapData","customizedBoundary","_this$state","addPoint","addLine","addPolygon","addCircle","heatMapOverlay","addPointCollection","setVisiblePoints","cluster","openTrafficInfo","hideTrafficInfo","clickMap","dragMapStart","dragMapEnd","moveStart","zoomStart","moveEndAndZoomEnd","_t$props","mapCenter","minZoom","maxZoom","showControl","options","zoom","center","oldZoomLevel","VtxMap","isShowControl","controlPosition","matchControlPosition","location","latLngBounds","sort","b","map","lng","lat","disableDoubleClickZoom","draggableCursor","controlSize","rotateControl","scaleControl","streetViewControl","fullscreenControl","mapTypeControl","zoomControl","rotateControlOptions","position","streetViewControlOptions","fullscreenControlOptions","zoomControlOptions","mapTypeControlOptions","ControlPosition","TOP_CENTER","restriction","north","south","west","east","strictBounds","drawing","DrawingManager","drawingControl","setMap","OMapLib","MarkerClusterer","CanvasProjectionOverlay","OverlayView","onAdd","draw","onRemove","canvasProjectionOverlay","MyLabel","undefined","editable","editParam","sx","sy","isLabel","labelClass","labelContent","labelOffset","x","y","lnglat","_label","funs","innerHTML","className","panes","getPanes","markerLayer","overlayMouseTarget","removeListener","addListener","overlayProjection","getProjection","fromLatLngToDivPixel","left","parseFloat","top","setOptions","setPosition","getPosition","setZIndex","index","ZIndex","isMarkerContent","parentNode","removeChild","fun","tt","dragendFun","setTimeout","event","stopPropagation","latLng","va","pixel","addEventListener","removeEventListener","setDraggable","boolean","edit","mdown","clientX","clientY","mmEvent","replace","mupEvent","latlng","fromDivPixelToLatLng","Point","obj","ls","_t$state","getLngLats","ids","type","alnglat","lngs","lats","getMoreGraphicParam","item","_alnglat","_alnglat2","geometryType","geometry","paths","rings","sw","LatLng","ne","fitView","split","fitBounds","LatLngBounds","setCenter","gt","mgt","c","getCenter","setState","setZoomLevel","z","getZoomLevel","setZoom","clearAll","clearClusters","clearAllPointCollection","allGraphics","_this2","psids","apf","isRepetition","console","warn","longitude","latitude","cg","width","height","labelPixelX","labelPixelY","BAnimationType","markerContentX","markerContentY","deg","markerContent","config","marker","canShowLabel","join","label","setGraphic","iconUrl","RotateIcon","url","icon","anchor","size","Size","scaledSize","setRotation","getUrl","labelOrigin","Marker","ishaveLabel","zIndex","setAnimation","Animation","BOUNCE","DROP","mClick","rangingToolFun","clickGraphic","mMouseover","mouseOverGraphic","mMouseout","mouseOutGraphic","setGraphicParam","attributes","other","click","mouseover","mouseout","addPsTimer","updatePoint","_this3","upf","gc","getGraphic","gc_label","indexOf","removeMarker","oldPosition","getGraphicParam","remove","removeGraphic","setIcon","isAnimation","moveTo","animationDelay","autoRotation","urlleft","moveAnimation","upPsTimer","lsids","color","pellucidity","lineWidth","lineType","isHidden","icons","lineSymbol","path","strokeOpacity","scale","offset","repeat","linePath","lineOption","strokeColor","strokeWeight","Polyline","setVisible","updateLine","setPath","pgsids","lineColor","lineOpacity","polygonOption","strokeStyle","fillColor","fillOpacity","polygonPath","Polygon","updatePolygon","ccsids","circleOption","centerPoint","Circle","radius","updateCircle","setRadius","d","max","visible","opacity","visualization","HeatmapLayer","option","gradient","sortArray","setData","data","ftp","pointCollectionId","divpc","getDiv","offsetHeight","offsetWidth","p","fromLatLngToContainerPixel","shape","VotexpointCollection","GMapLib","addpointCollectionTimer","clearTimeout","updatePointCollection","ds","ind","reDraw","updatePointCollectionTimer","clearPointCollection","clear","graphic","removeCluster","splice","doEdit","gLabel","gtp","endEdit","param","spherical","area","computeArea","mapLayer","getPath","getArray","calculateDistance","Math","pow","PI","editPointLabel","setEditable","drawParam","setDrawingMode","parameter","Date","getTime","len","paramgcr","extData","markerOptions","_drawmanagerEvent","backobj","drawEnd","polylineOptions","lnglatAry","lngX","latX","calculateGraphicDistance","getMaxMin","polygonOptions","calculateArea","_extent","circleOptions","getRadius","rectangleOptions","lnglatJson","getBounds","toJSON","calculatePointsDistance","closeDraw","ps","mapTop","mapLeft","trafficLayer","TrafficLayer","vtxRangingTool","_t$state2","gids","status","fromContainerPixelToLatLng","lnlt","distext","round","random","rangkey","end","lnglats","dbclickTimer","rangingToolEndFun","rangingToolMoveFun","rp","rcontent","grwkid","sl","arg","ary","clusterToolFunction","addMarkers","removeMarkers","clearMarkers","vtx_g_rang","allps","getMapExtent","clickLngLat","css","visibility","isZoomming","isMoving","getZoom","moveEnd","zoomEnd","showGraphicById","hideGraphicById","hide","gp","gg","pts","nowBounds","southWest","getNorthEast","northEast","getSouthWest","nowCenter","mapSize","dealData","ms","xmax","xmin","ymax","ymin","clearInterval","setInterval","waitTime","deleteTime","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","isAdded","tx","ty","_t$movePoints$deleteI","addMarker","delay","urlright","timer","eval","count","equals","ddeg","rotateDeg","getIcon","isHave","sp","ep","spLngLat","epLngLat","tan","atan","disy","bias","RIGHT_BOTTOM","LEFT_TOP","LEFT_BOTTOM","RIGHT_TOP","fp","computeDistanceBetween","totalDistance","computeLength","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","componentDidMount","offsetLeft","offsetTop","componentDidUpdate","prevProps","prevState","UNSAFE_componentWillReceiveProps","nextProps","_t$state3","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","_t$dataMatch","oldMapPoints","newMapPoints","_t$dataMatch2","_t$dealAdd","_t$dealUpdate","_iterator","_step","err","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd2","_t$dealUpdate2","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd3","_t$dealUpdate3","_iterator3","_step3","oldMapLines","newMapLines","_t$dataMatch5","_t$dealAdd4","_t$dealUpdate4","_iterator4","_step4","_t$dataMatch6","_iterator5","_step5","componentWillUnmount","loadLabel","clearOverlays","React","Component","_default","exports","module"],"sources":["VtxMap/OMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport {graphicManage,RotateIcon,getMaxMin} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nclass Map extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.initPointIndex = 0;//初始化地图时记录点当前位置\r\n this._cluster = null;//点聚合对象\r\n this.clusterIdList = [];//点聚合id集合\r\n this._rangingTool = null;//测距对象\r\n this._bmar = null;//区域限制对象\r\n this._drawmanager = null;//图元绘制对象\r\n this.editGraphicChange = null;//编辑方法回调\r\n this.editTimeout = null;//圆编辑回调延迟时间对象\r\n this._boundary = null;//获取行政区域数据的对象\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.heatmap = null;//热力图对象\r\n this.morepoints = [];//海量点数组\r\n this.movePoints = [];//移动点的动画集合\r\n this.editEvent = {};//编辑监听的事件\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false,//是否开启状态\r\n line: {},//线\r\n points: [],//点\r\n distance: 0,//测距长度\r\n mapRangingTool: null,//测距回调\r\n eventList: {},\r\n isDbclick: false\r\n };\r\n this.rangingTools = {};//测距点线缓存\r\n this.mapCreated = false;\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n };\r\n this.cacheImgRecord = {};//缓存图片记录,避免多次加载缓存\r\n // 图片缓存dom位置\r\n let cacheImg = document.getElementById('vtxomapdefaultimg');\r\n if(!cacheImg){\r\n cacheImg = this.cacheImg = document.createElement('div');\r\n cacheImg.id = 'vtxomapcacheImg';\r\n cacheImg.style.display = 'none';\r\n document.body.appendChild(cacheImg);\r\n }\r\n this.cacheImg = cacheImg;\r\n //缓存默认点位地址\r\n if(!document.getElementById('vtxomapdefaultimg')){\r\n let defImg = new Image();\r\n defImg.src = `${configUrl.mapServerURL}/images/defaultMarker.png`;\r\n defImg.id = 'vtxomapdefaultimg';\r\n cacheImg.appendChild(defImg);\r\n }\r\n //加载地图\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.google){\r\n resolve(t.omap = window.google.maps);\r\n }\r\n else{\r\n //&language=zh-CN\r\n //测试用地址,暂时只支持 10.10.11.227的ip\r\n $.getScript('http://ditu.google.cn/maps/api/js?key=AIzaSyAelEHQosKi09YLhXwmw3OR5ggScxOda2A&libraries=geometry,visualization,drawing',()=>{\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 OmapCluster = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/omapCluster.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection,OmapCluster]).then(()=>{\r\n resolve(t.omap = window.google.maps);\r\n })\r\n });\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction\r\n } = this.props;\r\n let {boundaryName,heatMapData,customizedBoundary} = this.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = this.state;\r\n // //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n /*设置指定图元展示*/\r\n if(mapVisiblePoints){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\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 //初始化地图点击事件\r\n t.clickMap();\r\n //地图拖动之前事件\r\n t.dragMapStart();\r\n // //地图拖动结束后事件\r\n t.dragMapEnd();\r\n // //地图移动之前事件\r\n t.moveStart();\r\n // //地图缩放开始前事件\r\n t.zoomStart();\r\n // //地图移动结束后事件/地图缩放结束后事件\r\n t.moveEndAndZoomEnd();\r\n this.mapCreated = true;\r\n }\r\n //创建地图\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapId,mapZoomLevel,minZoom,maxZoom,showControl,areaRestriction} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [626.3002300508477,37.90942995363547],\r\n minZoom: minZoom || 0,\r\n maxZoom: maxZoom || 22\r\n };\r\n //缓存 zoom等级,用于事件判断\r\n t.oldZoomLevel = options.zoom;\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n // 地图控件处理\r\n let isShowControl = false,\r\n controlPosition = t.matchControlPosition();\r\n if(showControl){\r\n controlPosition = t.matchControlPosition(showControl.location);\r\n isShowControl = !!showControl;\r\n }\r\n let latLngBounds = [];\r\n if(areaRestriction && Array.isArray(areaRestriction) && Array.isArray(areaRestriction[0])){\r\n //处理 区域限制数据\r\n latLngBounds = [\r\n areaRestriction[0][0],\r\n areaRestriction[0][1],\r\n areaRestriction[1][0],\r\n areaRestriction[1][1]\r\n ];\r\n latLngBounds.sort((a,b)=>a-b);\r\n }\r\n //创建地图 缓存地图对象\r\n let map = window.VtxMap[mapId] = t.state.gis = new t.omap.Map(document.getElementById(mapId.toString()),{\r\n center: {lng: options.center[0],lat: options.center[1]},\r\n disableDoubleClickZoom: false,\r\n draggableCursor: 'url(\"http://maps.gstatic.cn/mapfiles/openhand_8_8.cur\"), default', \r\n zoom: options.zoom,\r\n minZoom: options.minZoom,\r\n maxZoom: options.maxZoom,\r\n controlSize: 24,\r\n //全屏控件-禁用\r\n rotateControl: isShowControl,\r\n scaleControl: isShowControl,\r\n streetViewControl: isShowControl,\r\n fullscreenControl: isShowControl,\r\n mapTypeControl: isShowControl,\r\n zoomControl: isShowControl,\r\n rotateControlOptions: {position: controlPosition},\r\n streetViewControlOptions: {position: controlPosition},\r\n fullscreenControlOptions: {position: controlPosition},\r\n zoomControlOptions: {position: controlPosition},\r\n mapTypeControlOptions: {position: google.maps.ControlPosition.TOP_CENTER},\r\n //区域限制\r\n restriction: {\r\n latLngBounds: {\r\n north: latLngBounds[1] || 90,\r\n south: latLngBounds[0] || -90,\r\n west: latLngBounds[2] || -180,\r\n east: latLngBounds[3] || 180\r\n },\r\n strictBounds: false,\r\n }\r\n });\r\n /*=================================start========================================*/\r\n /*\r\n draw对象声明, 绘制返回方法实现\r\n */\r\n if(!t._drawmanager){\r\n t._drawmanager = new google.maps.drawing.DrawingManager({\r\n drawingControl: false\r\n });\r\n t._drawmanager.setMap(t.state.gis);\r\n }\r\n /*=================================start========================================*/\r\n //初始化点聚合对象\r\n if(!t._cluster){\r\n t._cluster = new OMapLib.MarkerClusterer(map,[],{maxZoom: options.maxZoom}); \r\n }\r\n /*=================================start========================================*/\r\n /*\r\n 声明OverlayView 类\r\n 用于切换lnglat和 pixel\r\n */\r\n function CanvasProjectionOverlay() {}\r\n CanvasProjectionOverlay.prototype = new google.maps.OverlayView();\r\n CanvasProjectionOverlay.prototype.constructor = CanvasProjectionOverlay;\r\n CanvasProjectionOverlay.prototype.onAdd = function(){};\r\n CanvasProjectionOverlay.prototype.draw = function(){};\r\n CanvasProjectionOverlay.prototype.onRemove = function(){};\r\n this.canvasProjectionOverlay = new CanvasProjectionOverlay();\r\n this.canvasProjectionOverlay.setMap(map);\r\n /*=================================start========================================*/\r\n /*\r\n 重写marker对象,支持html\r\n 要使用google对象,所以在creatMap中声明\r\n */\r\n let MyLabel = t.MyLabel = function(map,options = {}){\r\n //编辑\r\n this.editable = options.editable || false;\r\n this.editParam = {\r\n sx: 0,\r\n sy: 0\r\n };\r\n //地图\r\n this.map = map;\r\n this.isLabel = options.isLabel;\r\n //基本参数\r\n this.labelClass = options.labelClass;\r\n this.labelContent = options.labelContent;\r\n this.labelOffset = options.labelOffset || {x:0,y:0};\r\n this.lnglat = options.lnglat;\r\n\r\n this._label = null;\r\n\r\n this.funs = {};\r\n }\r\n //继承OverlayView类\r\n MyLabel.prototype = new google.maps.OverlayView();\r\n //添加地图时被调用(setMap时被调用)\r\n MyLabel.prototype.onAdd = function(){\r\n //创建文字标签\r\n if(!this._label){\r\n this._label = document.createElement('div');\r\n this._label.innerHTML = this.labelContent;\r\n this._label.style.position = 'absolute';\r\n this._label.className = this.labelClass;\r\n //获取承载点位的框\r\n let panes = this.getPanes();\r\n if(this.isLabel){\r\n panes.markerLayer.appendChild(this._label);\r\n }else{\r\n panes.overlayMouseTarget.appendChild(this._label);\r\n }\r\n }else{\r\n this._label.innerHTML = this.labelContent;\r\n this._label.className = this.labelClass;\r\n }\r\n for(var i in this.funs){\r\n this.removeListener(i);\r\n this.addListener(i,this.funs[i])\r\n }\r\n }\r\n //计算位置, onAdd和缩放和平移之后调用\r\n MyLabel.prototype.draw = function(){\r\n //返回MapCanvasProjection对象,拥有计算pixel和lnglat的方法\r\n let overlayProjection = this.getProjection();\r\n //将地理坐标转换成屏幕坐标\r\n let position = overlayProjection.fromLatLngToDivPixel(this.lnglat);\r\n if(position){\r\n this._label.style.left = position.x + parseFloat(this.labelOffset.x) + 'px';\r\n this._label.style.top = position.y + parseFloat(this.labelOffset.y) + 'px';\r\n }\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.setOptions = function(options){\r\n this.labelClass = options.labelClass;\r\n this.labelContent = options.labelContent;\r\n this.labelOffset = options.labelOffset || {x:0,y:0};\r\n this.lnglat = options.lnglat || this.lnglat;\r\n if(this._label){\r\n this.onAdd();\r\n }\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.setPosition = function(lnglat){\r\n this.lnglat = lnglat;\r\n if(this._label){\r\n this.draw();\r\n }else{\r\n //触发onAdd draw\r\n this.setMap(map);\r\n }\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.getPosition = function(){\r\n return this.lnglat;\r\n }\r\n //更新点位信息\r\n MyLabel.prototype.setZIndex = function(index){\r\n if(this._label){\r\n this._label.style.ZIndex = index;\r\n }\r\n }\r\n //用于updatePoint时 判断原来的点图元类型\r\n MyLabel.prototype.isMarkerContent = function(){\r\n return true;\r\n }\r\n //被删除时会调用\r\n MyLabel.prototype.onRemove = function(){\r\n this._label.parentNode.removeChild(this._label); \r\n this._label = null;\r\n }\r\n MyLabel.prototype.addListener = function(key,fun){\r\n let tt = this;\r\n if(key == 'dragend'){\r\n //编辑返回函数\r\n this.dragendFun = fun;\r\n return false;\r\n }\r\n setTimeout(()=>{\r\n if(tt._label){\r\n tt.funs[key] = function(event){\r\n if(event.stopPropagation){\r\n event.stopPropagation();\r\n }\r\n if(!tt.editable){\r\n fun({\r\n latLng: tt.lnglat,\r\n va: event,\r\n pixel: tt.getProjection().fromLatLngToDivPixel(tt.lnglat)\r\n });\r\n }\r\n }\r\n tt._label.addEventListener(key,tt.funs[key]);\r\n }else{\r\n tt.addListener(key,fun);\r\n }\r\n },50)\r\n }\r\n MyLabel.prototype.removeListener = function(key){\r\n if(key == 'dragend'){\r\n this.dragendFun = ()=>{};\r\n return false;\r\n }\r\n if(this._label){\r\n this._label.removeEventListener(key,this.funs[key]);\r\n }\r\n }\r\n //设置是否可以编辑\r\n MyLabel.prototype.setDraggable = function(boolean){\r\n this.editable = boolean;\r\n if(boolean){\r\n this.edit();\r\n }else{\r\n this._label.removeEventListener('mousedown',this.mdown);\r\n }\r\n }\r\n //编辑时 事件和逻辑\r\n MyLabel.prototype.edit = function(){\r\n let tt = this;\r\n tt.mdown = function(event){\r\n event.stopPropagation();\r\n //禁止文本选中\r\n tt._label.className = 'noselect';\r\n // 记录原始位置\r\n tt.editParam.sx = event.clientX;\r\n tt.editParam.sy = event.clientY;\r\n\r\n let mmEvent = function(e){\r\n e.stopPropagation();\r\n //计算与上一次的差值 累加到label dom上\r\n tt._label.style.left = parseFloat(tt._label.style.left.replace('px','')) + e.clientX - tt.editParam.sx + 'px';\r\n tt._label.style.top = parseFloat(tt._label.style.top.replace('px','')) + e.clientY - tt.editParam.sy + 'px';\r\n //更新原始位置\r\n tt.editParam.sx = e.clientX;\r\n tt.editParam.sy = e.clientY;\r\n }\r\n let mupEvent = function(e){\r\n e.stopPropagation();\r\n //计算与上一次的差值 累加到label dom上\r\n let x = parseFloat(tt._label.style.left.replace('px','')) + e.clientX - tt.editParam.sx,\r\n y = parseFloat(tt._label.style.top.replace('px','')) + e.clientY - tt.editParam.sy;\r\n //计算经纬度,固定label的位置\r\n tt._label.style.left = x + 'px';\r\n tt._label.style.top = y + 'px';\r\n let overlayProjection = tt.getProjection(),\r\n latlng = overlayProjection.fromDivPixelToLatLng(new google.maps.Point(x,y));\r\n tt.setPosition(latlng);\r\n // 清空 文本禁选\r\n tt._label.className = '';\r\n tt.dragendFun(e);\r\n //关闭全局监听\r\n document.removeEventListener('mousemove',mmEvent);\r\n document.removeEventListener('mouseup',mupEvent);\r\n }\r\n document.addEventListener('mousemove',mmEvent)\r\n document.addEventListener('mouseup',mupEvent)\r\n }\r\n tt._label.addEventListener('mousedown',tt.mdown);\r\n }\r\n /*=================================end========================================*/\r\n }\r\n //设置指定图元展示 google只有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,type)=>{\r\n let alnglat = [],lngs = [],lats = [];\r\n if(!type){\r\n t.GM.getMoreGraphicParam(ids).map((item,index)=>{\r\n //根据天地图 覆盖物类型获取lnglat\r\n switch(item.geometryType){\r\n case 'point':\r\n alnglat.push([item.geometry.x,item.geometry.y]);\r\n break;\r\n case 'polyline':\r\n alnglat.push(...item.geometry.paths);\r\n break;\r\n case 'polygon':\r\n alnglat.push(...item.geometry.rings);\r\n break;\r\n case 'circle':\r\n alnglat.push([item.geometry.x,item.geometry.y]);\r\n break;\r\n }\r\n });\r\n }else{\r\n alnglat = ids;\r\n }\r\n alnglat.forEach((item,index)=>{\r\n lngs.push(item[0]);\r\n lats.push(item[1]);\r\n });\r\n lngs.sort();lats.sort();\r\n return {\r\n sw: new google.maps.LatLng({lng:lngs[0],lat:lats[0]}),\r\n ne: new google.maps.LatLng({lng:lngs[lngs.length-1],lat:lats[lats.length-1]})\r\n };\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 //支持传经纬度\r\n if(ids[0] instanceof Array){\r\n ls = getLngLats(ids,'lnglat');\r\n }else{\r\n ls = getLngLats(ids);\r\n }\r\n break;\r\n }\r\n t.state.gis.fitBounds(new google.maps.LatLngBounds(ls.sw,ls.ne));\r\n }\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t = this;\r\n let mgt = [626.3002300508477,37.90942995363547];\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.state.gis.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n mgt = gt;\r\n }\r\n t.state.gis.setCenter(new google.maps.LatLng({lng:mgt[0],lat:mgt[1]}));\r\n t.setState({center: mgt});\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.getZoomLevel();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(zoom);\r\n }\r\n //清空地图所有图元\r\n clearAll (){\r\n let t = this;\r\n //清空热力图\r\n if(t.heatmap){\r\n t.heatmap.setMap(null);\r\n }\r\n t.heatmap = null;\r\n //先清除所有标记\r\n if(t.clusterIdList.length){\r\n t.clearClusters();\r\n }\r\n t.clearAllPointCollection();\r\n //清空点\r\n for(let i in t.GM.allGraphics){\r\n if(t.GM.allGraphics[i]){\r\n t.GM.allGraphics[i].setMap(null)\r\n }\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 //图元功能处理方法\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n let apf = ()=>{\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let position = new t.omap.LatLng({lng:item.longitude,lat:item.latitude});\r\n let marker = null;\r\n if(item.markerContent){\r\n /*自定义html加点\r\n 用Label来实现,无法再添加label(高德有判断,实现不同)*/\r\n //覆盖物参数\r\n marker = new t.MyLabel(t.state.gis,{\r\n labelContent: item.markerContent,\r\n labelOffset: {x: cg.markerContentX,y: cg.markerContentY},\r\n });\r\n marker.setPosition(position);\r\n }else{\r\n /*添加非html点位*/\r\n // //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n let label = new t.MyLabel(t.state.gis,{\r\n isLabel: true,\r\n labelClass,\r\n labelContent: cg.labelContent,\r\n /*\r\n 为和百度等地图相同的参数 加上g.markerContentY值\r\n label是使用OverlayView手动实现,与marker没有关联的原因\r\n */\r\n labelOffset: {x: cg.labelPixelX,y: cg.labelPixelY+cg.markerContentY}\r\n });\r\n label.setPosition(position);\r\n //缓存\r\n t.GM.setGraphic(`${item.id}_vtxoMap_label`,label);\r\n }\r\n let iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(parseFloat(cg.deg)%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url:item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n width: cg.width,\r\n height: cg.height\r\n });\r\n }\r\n let icon = {\r\n anchor: {x: -cg.markerContentX,y: -cg.markerContentY},\r\n size: new t.omap.Size(cg.width,cg.height),\r\n scaledSize: new t.omap.Size(cg.width,cg.height),\r\n url: parseFloat(cg.deg)%360 != 0 ?\r\n iconUrl.setRotation(cg.deg).getUrl()\r\n :item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n labelOrigin: {x: cg.labelPixelX,y: cg.labelPixelY}\r\n };\r\n //添加点到地图\r\n marker = new t.omap.Marker({\r\n icon,\r\n position,\r\n map: t.state.gis\r\n });\r\n if(item.canShowLabel && cg.labelContent){\r\n marker.ishaveLabel = true;\r\n }\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n marker.setZIndex(cg.zIndex);\r\n }\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n marker.setAnimation(google.maps.Animation.BOUNCE);\r\n }else if(!item.markerContent && cg.BAnimationType == 1){\r\n marker.setAnimation(google.maps.Animation.DROP);\r\n }\r\n //点击事件\r\n let mClick = marker.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = marker.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = marker.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //所有点缓存在state中\r\n t.state.pointIds = psids;\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n //内部 不需要旋转图标的处理方式\r\n if(type == 'nodeg'){\r\n apf();\r\n }else{\r\n //缓存图片 旋转功能使用\r\n mapPoints.map((item,index)=>{\r\n //避免多次缓存\r\n if(item.url && !t.cacheImgRecord[item.url]){\r\n let i = new Image();\r\n i.src = item.url;\r\n t.cacheImg.appendChild(i);\r\n t.cacheImgRecord[item.url] = true;\r\n }\r\n });\r\n //定时等待 图片缓存,点位旋转功能需要\r\n t.addPsTimer = setTimeout(()=>{\r\n apf();\r\n },200)\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints,type){\r\n let t = this;\r\n let upf = ()=>{\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 //获取原有的图元 和 对应的label\r\n let gc = t.GM.getGraphic(item.id),\r\n gc_label = t.GM.getGraphic(`${item.id}_vtxoMap_label`);\r\n //更新前删除聚合\r\n if(t.clusterIdList.indexOf(item.id) > -1){\r\n t._cluster.removeMarker(gc);\r\n if(gc_label){\r\n t._cluster.removeMarker(gc_label);\r\n }\r\n }\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //新旧经纬度 旧经纬度配合moveTo使用\r\n let position = new t.omap.LatLng({lng:item.longitude,lat:item.latitude});\r\n let oldPosition = gc.getPosition();\r\n //前后点位类型都是markerContent\r\n if(gc.isMarkerContent && gc.isMarkerContent() && item.markerContent){\r\n /*\r\n 自定义html加点\r\n 用Label来实现,无法再添加label(高德有判断,实现不同)\r\n */\r\n //覆盖物参数\r\n gc.setOptions({\r\n labelContent: item.markerContent,\r\n labelOffset: {x: cg.markerContentX,y: cg.markerContentY},\r\n lnglat: oldPosition\r\n })\r\n }else if(gc.isMarkerContent && gc.isMarkerContent() && !item.markerContent){\r\n //markerContent类型转 marker-url类型\r\n //清除事件\r\n gc.removeListener('click');\r\n gc.removeListener('mouseover');\r\n gc.removeListener('mouseout');\r\n //删除原点位\r\n gc.setMap(null);\r\n let iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(parseFloat(cg.deg)%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url:item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n width: cg.width,\r\n height: cg.height\r\n });\r\n }\r\n let icon = {\r\n anchor: {x: -cg.markerContentX,y: -cg.markerContentY},\r\n size: new t.omap.Size(cg.width,cg.height),\r\n scaledSize: new t.omap.Size(cg.width,cg.height),\r\n url: parseFloat(cg.deg)%360 != 0 ?\r\n iconUrl.setRotation(cg.deg).getUrl()\r\n :item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n labelOrigin: {x: cg.labelPixelX,y: cg.labelPixelY}\r\n };\r\n //重新加载点位\r\n gc = new t.omap.Marker({\r\n icon,\r\n position:oldPosition,\r\n map: t.state.gis\r\n });\r\n //切换 图元对象缓存\r\n t.GM.setGraphic(item.id,gc);\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n if(!gc_label){\r\n gc_label = new t.MyLabel();\r\n t.GM.setGraphic(`${item.id}_vtxoMap_label`,gc_label);\r\n }\r\n gc_label.setOptions({\r\n labelClass,\r\n labelContent: cg.labelContent,\r\n /*\r\n 为和百度等地图相同的参数 加上g.markerContentY值\r\n label是使用OverlayView手动实现,与marker没有关联的原因\r\n */\r\n labelOffset: {x: cg.labelPixelX,y: cg.labelPixelY+cg.markerContentY}\r\n })\r\n gc.ishaveLabel = true;\r\n }\r\n //点击事件\r\n let mClick = gc.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = gc.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = gc.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n }else if(!gc.isMarkerContent && item.markerContent){\r\n //marker-url类型转markerContent类型\r\n //清除事件\r\n if(t.GM.getGraphicParam(`${item.id}_omap_event`).click){\r\n t.GM.getGraphicParam(`${item.id}_omap_event`).click.remove();\r\n }\r\n if(t.GM.getGraphicParam(`${item.id}_omap_event`).mouseover){\r\n t.GM.getGraphicParam(`${item.id}_omap_event`).mouseover.remove();\r\n }\r\n if(t.GM.getGraphicParam(`${item.id}_omap_event`).mouseout){\r\n t.GM.getGraphicParam(`${item.id}_omap_event`).mouseout.remove();\r\n }\r\n //删除原点位\r\n gc.setMap(null);\r\n //存在 label点位 直接删除\r\n if(gc_label){\r\n gc_label.setMap(null);\r\n t.GM.removeGraphic(`${item.id}_vtxoMap_label`);\r\n }\r\n //重新加载点位 (原有位置加载,配合moveTo方法使用)\r\n gc = new t.MyLabel(t.state.gis,{\r\n labelContent: item.markerContent,\r\n labelOffset: {x: cg.markerContentX,y: cg.markerContentY},\r\n });\r\n gc.setPosition(oldPosition);\r\n //切换 图元对象缓存\r\n t.GM.setGraphic(item.id,gc);\r\n //点击事件\r\n let mClick = gc.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = gc.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = gc.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n })\r\n }else{\r\n let iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(parseFloat(cg.deg)%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url:item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n width: cg.width,\r\n height: cg.height\r\n });\r\n }\r\n //前后点位类型都是marker-url\r\n let icon = {\r\n anchor: {x: -cg.markerContentX,y: -cg.markerContentY},\r\n size: new t.omap.Size(cg.width,cg.height),\r\n scaledSize: new t.omap.Size(cg.width,cg.height),\r\n url: parseFloat(cg.deg)%360 != 0 ?\r\n iconUrl.setRotation(cg.deg).getUrl()\r\n :item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n labelOrigin: {x: cg.labelPixelX,y: cg.labelPixelY}\r\n };\r\n gc.setIcon(icon);\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n if(!gc_label){\r\n gc_label = new t.MyLabel();\r\n t.GM.setGraphic(`${item.id}_vtxoMap_label`,gc_label);\r\n }\r\n gc_label.setOptions({\r\n labelClass,\r\n labelContent: cg.labelContent,\r\n /*\r\n 为和百度等地图相同的参数 加上g.markerContentY值\r\n label是使用OverlayView手动实现,与marker没有关联的原因\r\n */\r\n labelOffset: {x: cg.labelPixelX,y: cg.labelPixelY+cg.markerContentY}\r\n })\r\n gc.ishaveLabel = true;\r\n }\r\n }\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n gc.setAnimation(google.maps.Animation.BOUNCE);\r\n }else if(!item.markerContent && cg.BAnimationType == 1){\r\n gc.setAnimation(google.maps.Animation.DROP);\r\n }\r\n /*moveTo*/\r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n if(gc_label){\r\n gc_label.setPosition(position)\r\n }\r\n //修改经纬度\r\n gc.setPosition(position);\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n gc.setZIndex(cg.zIndex);\r\n }\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.moveAnimation();\r\n }\r\n //内部 不需要旋转图标的处理方式\r\n if(type == 'nodeg'){\r\n upf();\r\n }else{\r\n //缓存图片 旋转功能使用\r\n mapPoints.map((item,index)=>{\r\n //排除已经缓存的\r\n if(item.url && !t.cacheImgRecord[item.url]){\r\n let i = new Image();\r\n i.src = item.url;\r\n t.cacheImg.appendChild(i);\r\n t.cacheImgRecord[item.url] = true;\r\n }\r\n if(item.urlleft && !t.cacheImgRecord[item.urlleft]){\r\n let i = new Image();\r\n i.src = item.urlleft;\r\n t.cacheImg.appendChild(i);\r\n t.cacheImgRecord[item.urlleft] = true;\r\n }\r\n });\r\n // 定时等待 图片缓存,点位旋转功能需要\r\n t.upPsTimer = setTimeout(()=>{\r\n upf();\r\n },200)\r\n }\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 //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n // 线样式\r\n let icons = [];\r\n if(cg.lineType == 'dashed'){\r\n let lineSymbol = {\r\n path: 'M 0,-1 0,1',\r\n strokeOpacity: 1,\r\n scale: cg.lineWidth > 5?5:cg.lineWidth <2.5?2.5:cg.lineWidth\r\n };\r\n icons = [{icon:lineSymbol,offset: '0',repeat: '20px'}]\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n }),\r\n //处理线的参数\r\n lineOption = {\r\n strokeColor : cg.color, // 线颜色\r\n strokeWeight : cg.lineWidth, // 线宽\r\n strokeOpacity : cg.lineType == 'dashed'?0:cg.pellucidity, // 线透明度\r\n icons\r\n };\r\n //创建线对象\r\n let line = new google.maps.Polyline({...lineOption,path:linePath});\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.setVisible(false);\r\n }else{\r\n line.setVisible(true);\r\n }\r\n lsids.push(item.id);\r\n //添加线至地图\r\n line.setMap(t.state.gis);\r\n //点击事件\r\n let mClick = line.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = line.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = line.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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 (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n // 线样式\r\n let icons = [];\r\n if(cg.lineType == 'dashed'){\r\n let lineSymbol = {\r\n path: 'M 0,-1 0,1',\r\n strokeOpacity: 1,\r\n scale: cg.lineWidth > 5?5:cg.lineWidth <2.5?2.5:cg.lineWidth\r\n };\r\n icons = [{icon:lineSymbol,offset: '0',repeat: '20px'}]\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n }),\r\n //处理线的参数\r\n lineOption = {\r\n strokeColor : cg.color, // 线颜色\r\n strokeWeight : cg.lineWidth, // 线宽\r\n strokeOpacity : cg.lineType == 'dashed'?0:cg.pellucidity, // 线透明度\r\n icons\r\n };\r\n //修改线点位数据\r\n gc.setPath(linePath);\r\n //修改线配置\r\n gc.setOptions(lineOption);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.setVisible(false);\r\n }else{\r\n gc.setVisible(true);\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n }\r\n //添加面\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 //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //面的参数\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n polygonPath = item.rings.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n });\r\n //创建面对象\r\n let polygon = new google.maps.Polygon({...polygonOption,paths: polygonPath});\r\n //添加面至地图\r\n polygon.setMap(t.state.gis);\r\n //点击事件\r\n let mClick = polygon.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = polygon.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = polygon.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\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 (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //面的参数\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n polygonPath = item.rings.map((item,index)=>{\r\n return new google.maps.LatLng({lng: item[0],lat: item[1]});\r\n });\r\n //更新经纬度\r\n gc.setPath(polygonPath);\r\n //更新 多边形 参数\r\n gc.setOptions(polygonOption);\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n }\r\n }\r\n );\r\n }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 //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n centerPoint = new google.maps.LatLng({lng: item.longitude,lat: item.latitude});\r\n //创建圆图元实例\r\n let circle = new google.maps.Circle({\r\n ...circleOption,\r\n radius: item.radius,\r\n center: centerPoint\r\n });\r\n //添加圆至地图\r\n circle.setMap(t.state.gis);\r\n //点击事件\r\n let mClick = circle.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(item.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = circle.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = circle.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n ccsids.push(item.id);\r\n //缓存数据\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }).setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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 (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n centerPoint = new google.maps.LatLng({lng: item.longitude,lat: item.latitude});\r\n //修改中心点\r\n gc.setCenter(centerPoint);\r\n //修改半径\r\n gc.setRadius(item.radius);\r\n //修改圆 参数\r\n gc.setOptions(circleOption);\r\n //缓存图元的数据,便于后期操作\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\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 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 google.maps.visualization.HeatmapLayer({\r\n map: t.state.gis\r\n });\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: cg.visible?cg.opacity:0,\r\n // maxIntensity: cg.max\r\n }\r\n if(cg.gradient){\r\n option.gradient = ['rgba(102,255, 0,0)'];\r\n //将gradient排序,与其他地图的热力图数据一致\r\n let sortArray = [];\r\n for (let i in cg.gradient) {\r\n sortArray.push({key: i,value: cg.gradient[i]});\r\n }\r\n option.gradient = [\r\n ...option.gradient,\r\n ...sortArray.sort((a,b)=>{\r\n return a.key > b.key;\r\n }).map((item)=>{\r\n return item.value;\r\n })\r\n ]\r\n }\r\n t.heatmap.setOptions(option);\r\n t.heatmap.setData(\r\n (d.data || []).map((item,index)=>{\r\n return new google.maps.LatLng({lng: item.lng,lat: item.lat})\r\n })\r\n );\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n //处理海量点\r\n let panes = t.canvasProjectionOverlay.getPanes(),\r\n ftp = t.canvasProjectionOverlay.getProjection();\r\n if(panes){\r\n if(!t.pointCollectionId){\r\n t.pointCollectionId = `${t.props.mapId}_vtx_gmap_html_pointCollection`;\r\n let divpc = document.createElement('div');\r\n divpc.className = 'vtx_gmap_html_pointCollection_a';\r\n divpc.style.top = `-${t.state.gis.getDiv().offsetHeight/2}px`;\r\n divpc.style.left = `-${t.state.gis.getDiv().offsetWidth/2}px`;\r\n divpc.id = t.pointCollectionId;\r\n panes.markerLayer.appendChild(divpc);\r\n }\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 google.maps.LatLng(d);\r\n p = ftp.fromLatLngToContainerPixel(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.getDiv().offsetWidth,\r\n height: t.state.gis.getDiv().offsetHeight,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }else{\r\n if(t.addpointCollectionTimer){\r\n clearTimeout(t.addpointCollectionTimer);\r\n }\r\n t.addpointCollectionTimer = setTimeout(()=>{\r\n t.addPointCollection(data);\r\n },50);\r\n }\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []){\r\n let t = this;\r\n let ftp = t.canvasProjectionOverlay.getProjection();\r\n if(ftp){\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 google.maps.LatLng(d);\r\n p = ftp.fromLatLngToContainerPixel(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.getDiv().offsetWidth,\r\n height: t.state.gis.getDiv().offsetHeight,\r\n };\r\n item.value.reDraw(points,options);\r\n }\r\n })\r\n })\r\n }else{\r\n if(t.updatePointCollectionTimer){\r\n clearTimeout(t.updatePointCollectionTimer);\r\n }\r\n t.updatePointCollectionTimer = setTimeout(()=>{\r\n t.addPointCollection(data);\r\n },50);\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 removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id),\r\n gc_label = t.GM.getGraphic(`${id}_vtxoMap_label`);\r\n //删除点聚合效果\r\n if(t.clusterIdList.indexOf(id) > -1){\r\n t.removeCluster(id);\r\n }\r\n if(graphic){\r\n //清除地图中图元\r\n graphic.setMap(null);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n //删除点位label\r\n if(gc_label){\r\n gc_label.setMap(null);\r\n t.GM.removeGraphic(`${id}_vtxoMap_label`);\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n /*根据图元id,使图元变成可编辑状态*/\r\n doEdit (id){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(id),\r\n gLabel = t.GM.getGraphic(`${id}_vtxoMap_label`),\r\n gtp = t.GM.getGraphicParam(id);\r\n if(!graphic)return false;\r\n //关闭先前编辑的图元\r\n if(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n if(!t.editGraphicChange){\r\n //编辑变动后\r\n t.editGraphicChange = (e)=>{\r\n let id = t.state.editId,\r\n param = t.getGraphic(id),\r\n obj = {\r\n param,e,id,\r\n geometry: param.geometry\r\n };\r\n if(param.geometry.type == 'polygon'){\r\n if(google.maps.geometry && google.maps.geometry.spherical){\r\n obj.area = google.maps.geometry.spherical.computeArea(param.mapLayer.getPath().getArray());\r\n }else{\r\n obj.area = 0;\r\n }\r\n }\r\n if(param.geometry.type == 'polyline'){\r\n obj.distance = t.calculateDistance(param.geometry.paths);\r\n }\r\n if(param.geometry.type == 'circle'){\r\n obj.area = Math.pow(param.geometry.radius,2)*Math.PI;\r\n if(t.editTimeout){\r\n clearTimeout(t.editTimeout);\r\n }\r\n t.editTimeout = setTimeout(()=>{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n },300);\r\n }else{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n }\r\n }\r\n }\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.setDraggable(true);\r\n t.editEvent['dragend'] = graphic.addListener(\"dragend\",t.editGraphicChange);\r\n //判断是否是 markerContent 再判断是否有label\r\n if(!gtp.attributes.markerContent && gLabel){\r\n //label事件对象 便于删除\r\n t.editPointLabel = graphic.addListener(\"drag\",(event)=>{\r\n gLabel.setPosition(event.latLng);\r\n });\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n graphic.setEditable(true);\r\n t.editEvent['mouseup'] = graphic.addListener(\"mouseup\",t.editGraphicChange);\r\n break;\r\n case 'circle':\r\n graphic.setEditable(true);\r\n t.editEvent['center_changed'] = graphic.addListener(\"center_changed\",t.editGraphicChange);\r\n t.editEvent['radius_changed'] = graphic.addListener(\"radius_changed\",t.editGraphicChange);\r\n break;\r\n }\r\n t.setState({editId:id});\r\n }\r\n //关闭编辑\r\n endEdit (){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(t.state.editId);\r\n let gtp = t.GM.getGraphicParam(t.state.editId);\r\n if(!graphic)return false;\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.setDraggable(false);\r\n if(graphic.removeListener){\r\n graphic.removeListener(\"dragend\",t.editGraphicChange);\r\n }else{\r\n for(let i in t.editEvent){\r\n if(t.editEvent[i]){\r\n t.editEvent[i].remove();\r\n }\r\n }\r\n if(t.editPointLabel){\r\n t.editPointLabel.remove();\r\n t.editPointLabel = null;\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n graphic.setEditable(false);\r\n for(let i in t.editEvent){\r\n if(t.editEvent[i]){\r\n t.editEvent[i].remove();\r\n }\r\n }\r\n break;\r\n }\r\n //事件缓存制空,避免异常\r\n t.editEvent = {};\r\n let editGraphic = t.state.editGraphic;\r\n if(editGraphic){\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n },()=>{\r\n t.props.editGraphicChange(editGraphic);\r\n })\r\n }\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this,drawParam = {};\r\n //先关闭(防止连点)\r\n t._drawmanager.setDrawingMode(null);\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 t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let param = {};\r\n let paramgcr = {};\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.strokeColor = drawParam.parameter.lineColor;\r\n paramgcr.strokeOpacity = drawParam.parameter.lineOpacity;\r\n paramgcr.strokeWeight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.strokeStyle = drawParam.parameter.lineType;\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 let icon = {\r\n anchor: {x: -drawParam.parameter.markerContentX || 15,y: -drawParam.parameter.markerContentY || 30},\r\n size: new t.omap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30),\r\n scaledSize: new t.omap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30),\r\n url: drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`\r\n };\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n markerOptions: {\r\n icon\r\n }\r\n });\r\n t._drawmanager.setDrawingMode('marker');\r\n t._drawmanagerEvent = t._drawmanager.addListener('markercomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let backobj = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n url: icon.url,\r\n config: {\r\n width: icon.size.width,\r\n height: icon.size.height\r\n }\r\n },\r\n geometry: {\r\n type: 'point',\r\n x: e.getPosition().lng(),\r\n y: e.getPosition().lat()\r\n },\r\n geometryType: 'point',\r\n mapLayer: e\r\n }\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${drawParam.data.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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.strokeColor = drawParam.parameter.color;\r\n param.strokeOpacity = drawParam.parameter.pellucidity;\r\n param.strokeWeight = drawParam.parameter.lineWidth;\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n polylineOptions: param\r\n });\r\n t._drawmanager.setDrawingMode('polyline');\r\n t._drawmanagerEvent = t._drawmanager.addListener('polylinecomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let paths = [];\r\n let lnglatAry = (e.getPath().getArray() || []).map((item,index)=>{\r\n paths.push({lng: item.lng(),lat: item.lat()})\r\n return {lngX: item.lng(),latX: item.lat()};\r\n });\r\n let backobj = {\r\n geometryType: 'polyline',\r\n distance: t.calculateGraphicDistance(e.getPath().getArray()),\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: param.strokeColor,\r\n pellucidity: param.strokeOpacity,\r\n lineWidth: param.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'polyline',\r\n lnglatAry: lnglatAry,\r\n paths: getMaxMin(paths).path\r\n },\r\n lnglatAry: lnglatAry \r\n }\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\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 t._drawmanager.setOptions({\r\n drawingControl: false,\r\n polygonOptions: paramgcr\r\n });\r\n t._drawmanager.setDrawingMode('polygon');\r\n t._drawmanagerEvent = t._drawmanager.addListener('polygoncomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let paths = [],area = t.calculateArea(drawParam.data.id);\r\n let lnglatAry = (e.getPath().getArray() || []).map((item,index)=>{\r\n paths.push({lng: item.lng(),lat: item.lat()})\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: paramgcr.fillColor,\r\n lineColor: paramgcr.strokeColor,\r\n lineOpacity: paramgcr.strokeOpacity,\r\n pellucidity: paramgcr.fillOpacity,\r\n lineWidth: paramgcr.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(paths).path,\r\n _extent: getMaxMin(paths)._extent,\r\n area: area\r\n },\r\n lnglatAry: lnglatAry,\r\n area: area\r\n };\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'circle':\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n circleOptions: paramgcr\r\n });\r\n t._drawmanager.setDrawingMode('circle');\r\n t._drawmanagerEvent = t._drawmanager.addListener('circlecomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let area = Math.PI * Math.pow(e.getRadius(),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: paramgcr.fillColor,\r\n lineColor: paramgcr.strokeColor,\r\n lineOpacity: paramgcr.strokeOpacity,\r\n pellucidity: paramgcr.fillOpacity,\r\n lineWidth: paramgcr.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'circle',\r\n x: e.getCenter().lng(),\r\n y: e.getCenter().lat(),\r\n radius: e.getRadius(),\r\n area: area\r\n },\r\n area: area\r\n };\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'rectangle':\r\n t._drawmanager.setOptions({\r\n drawingControl: false,\r\n rectangleOptions: paramgcr\r\n });\r\n t._drawmanager.setDrawingMode('rectangle');\r\n t._drawmanagerEvent = t._drawmanager.addListener('rectanglecomplete',(e)=>{\r\n //清楚事件监听\r\n t._drawmanagerEvent.remove();\r\n //关闭绘制功能\r\n t._drawmanager.setDrawingMode(null);\r\n t.GM.setGraphic(drawParam.data.id,e);\r\n let lnglatJson = e.getBounds().toJSON();\r\n let paths = [{\r\n lng: lnglatJson.west,\r\n lat: lnglatJson.south\r\n },{\r\n lng: lnglatJson.east,\r\n lat: lnglatJson.south\r\n },{\r\n lng: lnglatJson.east,\r\n lat: lnglatJson.north\r\n },{\r\n lng: lnglatJson.west,\r\n lat: lnglatJson.north\r\n }];\r\n let lnglatAry = (paths || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let area = t.calculatePointsDistance([lnglatJson.west,lnglatJson.south],[lnglatJson.east,lnglatJson.south])*\r\n t.calculatePointsDistance([lnglatJson.east,lnglatJson.south],[lnglatJson.east,lnglatJson.north]);\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: paramgcr.fillColor,\r\n lineColor: paramgcr.strokeColor,\r\n lineOpacity: paramgcr.strokeOpacity,\r\n pellucidity: paramgcr.fillOpacity,\r\n lineWidth: paramgcr.strokeWeight\r\n }\r\n },\r\n mapLayer: e,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(paths).path,\r\n _extent: getMaxMin(paths)._extent,\r\n area: area\r\n },\r\n lnglatAry: lnglatAry,\r\n area: area\r\n };\r\n //点击事件\r\n let mClick = e.addListener('click',(e)=>{\r\n //避免鼠标在图元上 测距工具不起作用\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e)\r\n }else{\r\n t.clickGraphic(drawParam.data.id,e);\r\n }\r\n });\r\n //鼠标移入事件\r\n let mMouseover = e.addListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n //鼠标移出事件\r\n let mMouseout = e.addListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj)\r\n .setGraphicParam(`${item.id}_omap_event`,{\r\n click: mClick,\r\n mouseover: mMouseover,\r\n mouseout: mMouseout\r\n });\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(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 let t = this;\r\n t._drawmanager.setDrawingMode(null);\r\n }\r\n /*\r\n 事件处理\r\n */\r\n //点击图元事件\r\n clickGraphic (id,e) {\r\n let t = this;\r\n //判断是否点击的测距关闭点位\r\n if(id && id.indexOf('vtx_g_rang_end') > -1){\r\n let index = t.GM.getGraphicParam(id).attributes.index;\r\n let ls = t.rangingTools[index].line,\r\n ps = t.rangingTools[index].points;\r\n //删除测距线\r\n t.removeGraphic(ls.id,'line');\r\n //删除关闭点\r\n t.removeGraphic(id,'point');\r\n //删除中间点\r\n for(let i = 0 ; i < ps.length ; i++){\r\n t.removeGraphic(ps[i].id,'point');\r\n }\r\n //清除测距数据缓存\r\n delete t.rangingTools[index];\r\n }else{\r\n if(id.indexOf('vtx_g_rang_') > -1){\r\n return false;\r\n }\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.va.y - t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.va.x - t.mapLeft,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n if(id.indexOf('vtx_g_rang_') > -1){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.va.y - t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.va.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 //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n if(id.indexOf('vtx_g_rang_') > -1){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.va.y - t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.va.x - t.mapLeft,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*\r\n 地图服务功能\r\n */\r\n //开启路况\r\n openTrafficInfo(){\r\n let t =this;\r\n if(!t.trafficLayer){\r\n t.trafficLayer = new google.maps.TrafficLayer();\r\n }\r\n t.trafficLayer.setMap(t.state.gis);\r\n }\r\n //关闭路况\r\n hideTrafficInfo(){\r\n let t =this;\r\n if(t.trafficLayer){\r\n t.trafficLayer.setMap(null);\r\n }\r\n }\r\n //测距功能\r\n vtxRangingTool(mapRangingTool){\r\n let t =this;\r\n let {lineIds,polygonIds,circleIds} = t.state;\r\n let gids = [...lineIds,...polygonIds,...circleIds];\r\n t.state.gis.disableDoubleClickZoom = true;\r\n t.state.gis.draggableCursor = 'crosshair';\r\n //开启测距状态\r\n if(!t.rangingTool.isRanging){\r\n t.rangingTool.isRanging = true;\r\n }\r\n //初始测距回调\r\n if(!t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool = mapRangingTool;\r\n }\r\n if(!t.rangingToolFun){\r\n /*测距功能*/\r\n t.rangingToolFun = (e,status)=>{\r\n let fun = ()=>{\r\n t.rangingTool.isDbclick = false;\r\n if(t.rangingTool.isRanging){\r\n //测距开始\r\n //点击位置\r\n let ftp = t.canvasProjectionOverlay.getProjection(),\r\n lnglat = ftp.fromContainerPixelToLatLng(new google.maps.Point(e.va.x - t.mapLeft,e.va.y - t.mapTop)),\r\n lnlt = [lnglat.lng(),lnglat.lat()];\r\n //2个点以上 计算长度\r\n if(t.rangingTool.points.length > 0){\r\n t.rangingTool.distance += t.calculatePointsDistance(lnlt,\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude]\r\n );\r\n }else{\r\n t.rangingTool.line.paths = [];\r\n }\r\n t.rangingTool.line.paths.push([...lnlt]);\r\n //处理距离展示\r\n let distext = t.rangingTool.distance > 0\r\n ?(t.rangingTool.distance > 1000\r\n ?`总长:${Math.round(t.rangingTool.distance/10)/100}公里`:`总长:${t.rangingTool.distance}米`)\r\n :'起点';\r\n //加点\r\n let point = {\r\n id: t.rangingTool.points.length + 'vtx_g_rang_p'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div style='z-index:1; height: 0px;'>\r\n <div class='vtx-g-rangingPoint'></div>\r\n <div class='vtx-g-rangingDistance'>${distext}</div>\r\n </div>\r\n `,\r\n config: {\r\n markerContentX: -5.5,\r\n markerContentY: -12.5,\r\n }\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([point]);\r\n //缓存点信息\r\n t.rangingTool.points.push(point);\r\n if(t.rangingTool.line.paths.length == 2){\r\n //加线\r\n t.rangingTool.line = {\r\n id: 'vtx_g_rang_line'+Math.random(),\r\n paths: [...t.rangingTool.line.paths],\r\n config:{\r\n color: '#108ee9',\r\n lineWidth: 2,\r\n lineType: 'solid'\r\n }\r\n }\r\n t.addLine([t.rangingTool.line]);\r\n }else if(t.rangingTool.line.paths.length > 2){\r\n t.updateLine([{\r\n ...t.rangingTool.line,\r\n paths: [...t.rangingTool.line.paths]\r\n }]);\r\n }\r\n //双击 测距结束\r\n if(status == 'dbl'){\r\n let rangkey = new Date().getTime()+Math.random();\r\n //加结束点\r\n let end = {\r\n id: 'vtx_g_rang_end'+Math.random(),\r\n longitude: lnlt[0],\r\n latitude: lnlt[1],\r\n markerContent: `\r\n <div>\r\n <div class='vtx-g-rang-exit'>x</div>\r\n </div>\r\n `,\r\n config: {\r\n width:13,\r\n height:13,\r\n markerContentX: -20,\r\n markerContentY: -20,\r\n },\r\n index: rangkey\r\n };\r\n //用addpoint方法加点\r\n t.addPoint([end]);\r\n //删除提示框 \r\n t.removeGraphic('vtx_g_rang_showRangTool','point');\r\n t.removeGraphic('vtx_g_rang_showRangTool_line','line');\r\n //缓存当前这一条测距数据\r\n t.rangingTools[rangkey] = {...t.rangingTool};\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n })\r\n }\r\n }\r\n }\r\n }\r\n if(status !== 'dbl'){\r\n //100毫秒内点击2次 则结束\r\n if(!t.rangingTool.isDbclick){\r\n t.rangingTool.isDbclick = true;\r\n }else{\r\n if(t.rangingTool.dbclickTimer){\r\n clearTimeout(t.rangingTool.dbclickTimer);\r\n }\r\n t.rangingTool.isDbclick = false;\r\n t.rangingToolEndFun(e);\r\n }\r\n t.rangingTool.dbclickTimer = setTimeout(()=>{\r\n fun();\r\n },200)\r\n }else{\r\n fun();\r\n }\r\n }\r\n }\r\n if(!t.rangingToolMoveFun){\r\n t.rangingToolMoveFun = (e)=>{\r\n //获取测距提示点位\r\n let rp = {...t.GM.getGraphicParam('vtx_g_rang_showRangTool').attributes};\r\n //删除多余数据,避免other层级太多\r\n delete rp.other;\r\n let rcontent = rp.markerContent;\r\n if(t.rangingTool.points.length > 0){\r\n let distance = t.calculatePointsDistance(\r\n [e.latLng.lng(),e.latLng.lat()],\r\n [t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude],\r\n t.state.gis,\r\n t.grwkid\r\n );\r\n // 实时计算距离\r\n distance += t.rangingTool.distance;\r\n let distext = distance > 1000\r\n ?`总长:${Math.round(distance/10)/100}公里`:`总长:${distance}米`;\r\n rcontent = `\r\n <div class='vtx-g-rang-showRangTool'>\r\n <div>${distext}</div>\r\n <div>单击确定地点,双击结束</div>\r\n </div>\r\n `;\r\n //测距移动的线\r\n let sl = {\r\n id: 'vtx_g_rang_showRangTool_line',\r\n paths: [\r\n [ t.rangingTool.points[t.rangingTool.points.length-1].longitude,\r\n t.rangingTool.points[t.rangingTool.points.length-1].latitude\r\n ],\r\n [e.latLng.lng(),e.latLng.lat()]\r\n ],\r\n config: {\r\n color: '#108ee9',\r\n lineWidth: 2,\r\n lineType: 'dashed',\r\n pellucidity: 0.5\r\n }\r\n };\r\n if(!t.GM.getGraphic('vtx_g_rang_showRangTool_line')){\r\n t.addLine([sl]);\r\n t.GM.getGraphic('vtx_g_rang_showRangTool_line').addListener('dblclick',(e)=>{\r\n t.rangingToolEndFun(e)\r\n })\r\n }else{\r\n t.updateLine([sl]);\r\n }\r\n }\r\n rp = {\r\n ...rp,\r\n longitude: e.latLng.lng(),\r\n latitude: e.latLng.lat(),\r\n markerContent: rcontent\r\n }\r\n t.updatePoint([rp],'nodeg');\r\n }\r\n }\r\n if(!t.rangingToolEndFun){\r\n t.rangingToolEndFun = (e)=>{\r\n t.state.gis.disableDoubleClickZoom = false;\r\n //测距完结\r\n if(t.rangingTool.isRanging){\r\n if(t.rangingTool.points.length > 0){\r\n //处理点击和双击事件逻辑\r\n t.rangingToolFun(e,'dbl');\r\n //回调测距参数\r\n if(t.rangingTool.mapRangingTool){\r\n t.rangingTool.mapRangingTool({\r\n distance: t.rangingTool.distance,\r\n lnglats: t.rangingTool.line.paths\r\n });\r\n }\r\n }else{\r\n //删除提示框 \r\n t.removeGraphic('vtx_g_rang_showRangTool','point');\r\n }\r\n //关闭监听事件\r\n for(let i in t.rangingTool.eventList){\r\n if(t.rangingTool.eventList[i]){\r\n t.rangingTool.eventList[i].remove();\r\n }\r\n }\r\n t.rangingTool = {\r\n ...t.rangingTool,\r\n isRanging: false,//是否开启状态\r\n line: {},//线缓存\r\n points: [],//点\r\n distance: 0,//测距长度\r\n isDbclick: false,\r\n dbclickTimer: null\r\n }\r\n t.rangingToolFun = null;\r\n t.rangingToolMoveFun = null;\r\n t.state.gis.draggableCursor = 'url(\"http://maps.gstatic.cn/mapfiles/openhand_8_8.cur\"), default';\r\n }\r\n }\r\n }\r\n //避免鼠标在图元上 测距工具不起作用\r\n gids.forEach((item)=>{\r\n t.rangingTool.eventList[item] = t.GM.getGraphic(item).addListener('mousemove',(e)=>{\r\n if(t.rangingTool.isRanging && t.rangingToolMoveFun){\r\n t.rangingToolMoveFun(e);\r\n }\r\n })\r\n })\r\n //地图鼠标移入事件\r\n t.rangingTool.eventList['mouseover'] = t.state.gis.addListener('mouseover',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n let rp = {\r\n id: 'vtx_g_rang_showRangTool',\r\n longitude: e.latLng.lng(),\r\n latitude: e.latLng.lat(),\r\n markerContent: `\r\n <div class='vtx-g-rang-showRangTool'>单击确定起点</div>\r\n `,\r\n config: {\r\n markerContentX: 20,\r\n markerContentY: 20\r\n }\r\n }\r\n t.addPoint([rp],'nodeg');\r\n }\r\n });\r\n //地图鼠标移出事件\r\n t.rangingTool.eventList['mouseout'] = t.state.gis.addListener('mouseout',(e)=>{\r\n //鼠标移出地图时,删除测距显示点\r\n if(t.rangingTool.isRanging){\r\n t.removeGraphic('vtx_g_rang_showRangTool','point');\r\n }\r\n });\r\n //地图鼠标移动事件\r\n t.rangingTool.eventList['mousemove'] = t.state.gis.addListener('mousemove',(e)=>{\r\n //鼠标移动地图时,删除测距显示点\r\n if(t.rangingTool.isRanging && t.rangingToolMoveFun){\r\n t.rangingToolMoveFun(e);\r\n }\r\n });\r\n //双击事件\r\n t.rangingTool.eventList['dblclick'] = t.state.gis.addListener('dblclick',(e)=>{\r\n t.rangingToolEndFun(e);\r\n });\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster (arg) {\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n t._cluster.addMarkers(ary);\r\n }\r\n //删除点聚合效果\r\n removeCluster(arg){\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n if(ary.length > 0){\r\n t._cluster.removeMarkers(ary);\r\n }\r\n }\r\n //清空聚合效果\r\n clearClusters(){\r\n let t = this;\r\n t._cluster.clearMarkers();\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds.filter((item,index)=>{\r\n return item.indexOf(vtx_g_rang) == -1;\r\n });\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 t.clusterIdList = ary;\r\n //过滤moveTo的点位\r\n //缓存所有聚合的点位\r\n let allps = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let gc = t.GM.getGraphic(ary[i]);\r\n allps.push(gc);\r\n //加入label图元\r\n if(gc.ishaveLabel){\r\n allps.push(t.GM.getGraphic(`${ary[i]}_vtxoMap_label`));\r\n }\r\n }\r\n return allps;\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.addListener('click',(e)=>{\r\n //测距点击事件\r\n if(t.rangingTool.isRanging){\r\n t.rangingToolFun(e);\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = e.point;\r\n obj.pixel = {\r\n x: e.va.x - t.mapLeft,\r\n y: e.va.y - t.mapTop\r\n };\r\n t.props.clickMap(obj);\r\n }\r\n });\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.addListener('dragstart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n })\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n t.state.gis.addListener('dragend',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n })\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n t.state.gis.addListener('bounds_changed',(e)=>{\r\n if(t.pointCollectionId){\r\n $(`#${t.pointCollectionId}`).css({visibility: 'hidden'});\r\n }\r\n //区别是否在移动状态\r\n if(!t.isZoomming && !t.isMoving){\r\n if(t.oldZoomLevel == t.state.gis.getZoom()){\r\n t.isMoving = true;\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n //google地图没有move事件和zoomEnd事件,通过模拟实现\r\n moveEndAndZoomEnd(){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function' || \r\n typeof(t.props.zoomEnd) === 'function' ||\r\n typeof(t.props.moveStart) === 'function'||\r\n typeof(t.props.zoomStart) === 'function'){\r\n t.state.gis.addListener('idle',(e)=>{\r\n if(t.pointCollectionId){\r\n $(`#${t.pointCollectionId}`).css({visibility: 'inherit'});\r\n }\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //区别是否在移动状态-同时判断是moveEnd还是zoomEnd\r\n if(t.isMoving){\r\n t.isMoving = false;\r\n }\r\n if(t.isZoomming){\r\n t.isZoomming = false;\r\n }\r\n if(t.oldZoomLevel != t.state.gis.getZoom()){\r\n t.oldZoomLevel = t.state.gis.getZoom();\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n t.props.zoomEnd(obj);\r\n }\r\n }else{\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n t.props.moveEnd(obj);\r\n }\r\n }\r\n //更新海量点\r\n if(t.props.mapPointCollection){\r\n t.updatePointCollection(t.props.mapPointCollection);\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.addListener('zoom_changed',(e)=>{\r\n if(t.pointCollectionId){\r\n $(`#${t.pointCollectionId}`).css({visibility: 'hidden'});\r\n }\r\n if(!t.isZoomming){\r\n t.isZoomming = 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 //对外使用方法\r\n //显示隐藏的图元\r\n showGraphicById (id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).setVisible(true);\r\n }\r\n }\r\n //隐藏图元\r\n hideGraphicById(id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).hide(false);\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.getPosition().lng();\r\n lat = gg.getPosition().lat();\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.getPath().getArray().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.getPath().getArray().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().lng();\r\n lat = gg.getCenter().lat();\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 getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis.getBounds();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.getNorthEast().lng(),\r\n lat : nowBounds.getNorthEast().lat()\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.getSouthWest().lng(),\r\n lat : nowBounds.getSouthWest().lat()\r\n };\r\n obj.nowCenter = t.state.gis.getCenter();\r\n obj.zoom = t.state.gis.getZoom();\r\n obj.mapSize = {\r\n width: t.state.gis.getDiv().offsetWidth,\r\n height: t.state.gis.getDiv().offsetHeight\r\n };\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng(),obj.nowCenter.lat()],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getZoom();\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(ms){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n if('getPath' in ms){\r\n path = ms.getPath().getArray();\r\n path = path.map((item,index)=>{\r\n let lng = item.lng(),lat = item.lat();\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n }\r\n return {lnglatAry,_extent,path};\r\n }\r\n //点位移动动画效果\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id),\r\n gc_label = t.GM.getGraphic(`${id}_vtxoMap_label`);\r\n if(!gc){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n if(gc.isAdded){\r\n t._cluster.removeMarker(gc);\r\n }\r\n if(gc_label && gc_label.isAdded){\r\n t._cluster.removeMarker(gc_label);\r\n }\r\n let gg = gc.getPosition();\r\n let tx = gg.lng() + rx,ty = gg.lat() + ry;\r\n gc.setPosition(new t.omap.LatLng({lng:tx,lat:ty}));\r\n if(gc_label){\r\n gc_label.setPosition(new t.omap.LatLng({lng:tx,lat:ty}));\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 let {id,rx,ry,waitTime,deleteTime} = t.movePoints[deleteIndex[i]],\r\n gc = t.GM.getGraphic(id),\r\n gc_label = t.GM.getGraphic(`${id}_vtxoMap_label`);\r\n if(t.clusterIdList.indexOf(id) > -1){\r\n t._cluster.addMarker(gc);\r\n if(gc_label){\r\n t._cluster.addMarker(gc_label);\r\n }\r\n }\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 let t = this,timer = 10,\r\n gc = t.GM.getGraphic(id);\r\n delay = eval(delay || 3)*1000;\r\n let count = delay/timer;\r\n let s = gc.getPosition(),e = new t.omap.LatLng({lng:lnglat[0],lat:lnglat[1]});\r\n if(s.equals(e)){\r\n return false;\r\n }else{\r\n let url= null;\r\n //计算角度,旋转\r\n if(autoRotation && !gc.isMarkerContent){\r\n let ddeg = t.rotateDeg(s,e);\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 let icon = gc.getIcon(),iconUrl = '';\r\n // 360deg 不需要旋转\r\n if(ddeg%360 != 0){\r\n iconUrl = new RotateIcon({\r\n url: url,\r\n width: icon.size.width,\r\n height: icon.size.height\r\n });\r\n }\r\n gc.setIcon({...icon,url: iconUrl.setRotation(ddeg).getUrl()})\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 id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp,ep){\r\n let t = this,\r\n deg = 0,\r\n ftp = t.canvasProjectionOverlay.getProjection(),\r\n spLngLat = sp,epLngLat = ep;\r\n if(ftp){\r\n if(Array.isArray(sp)){\r\n spLngLat = new t.omap.LatLng({lng:sp[0],lat:sp[1]})\r\n }\r\n if(Array.isArray(ep)){\r\n spLngLat = new t.omap.LatLng({lng:ep[0],lat:ep[1]})\r\n }\r\n let s = ftp.fromLatLngToContainerPixel(spLngLat),\r\n //获取当前点位的经纬度\r\n e = ftp.fromLatLngToContainerPixel(epLngLat);\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 }\r\n return deg;\r\n }\r\n /*\r\n 匹配控件位置方法\r\n (谷歌地图有8个方位,为了统一,只使用左上,左下,右上,右下)\r\n */\r\n matchControlPosition(location){\r\n let position = google.maps.ControlPosition.RIGHT_BOTTOM;\r\n switch(location){\r\n case 'tl':\r\n position = google.maps.ControlPosition.LEFT_TOP;\r\n break;\r\n case 'bl':\r\n position = google.maps.ControlPosition.LEFT_BOTTOM\r\n break;\r\n case 'tr':\r\n position = google.maps.ControlPosition.RIGHT_TOP;\r\n break;\r\n case 'br':\r\n position = google.maps.ControlPosition.RIGHT_BOTTOM;\r\n break;\r\n }\r\n return position;\r\n }\r\n /*\r\n 地图内部需要公共方法\r\n */\r\n calculatePointsDistance(fp,ep){\r\n if(google.maps.geometry && google.maps.geometry.spherical){\r\n return Math.round(google.maps.geometry.spherical.computeDistanceBetween(\r\n new google.maps.LatLng({lng:fp[0],lat:fp[1]})\r\n ,\r\n new google.maps.LatLng({lng:ep[0],lat:ep[1]})\r\n )*100)/100;\r\n }\r\n return 0;\r\n }\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 totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\r\n }\r\n //计算图元面积(面,圆)\r\n calculateArea(id){\r\n var t = this;\r\n return google.maps.geometry.spherical.computeArea(t.GM.getGraphic(id).getPath().getArray());\r\n }\r\n //计算多个点的距离(常用于线计算)[入参是 google 经纬度对象数组]\r\n calculateGraphicDistance(ary){\r\n var t = this;\r\n return google.maps.geometry.spherical.computeLength(ary);\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return(\r\n <div id={_map.mapId} style={{width:'100%',height:'100%'}}></div>\r\n );\r\n }\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.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 }\r\n //重新渲染结束\r\n componentDidUpdate(prevProps, prevState) {}\r\n //已加载组件,收到新的参数时调用\r\n UNSAFE_componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll\r\n } = nextProps;\r\n let props = t.props;\r\n\r\n // 等待地图加载\r\n if(!t.mapCreated)return;\r\n \r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && props.mapPoints instanceof Array && !t.deepEqual(mapPoints,props.mapPoints)){\r\n let oldMapPoints = props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.state.editId){\r\n oldMapPoints = 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 && props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,props.mapPolygons)){\r\n let oldMapPolygons = props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.state.editId){\r\n oldMapPolygons = 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 && props.mapCircles instanceof Array && !t.deepEqual(mapCircles,props.mapCircles)){\r\n let oldMapCircles = props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.state.editId){\r\n oldMapCircles = 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 && props.mapLines instanceof Array && !t.deepEqual(mapLines,props.mapLines)){\r\n let oldMapLines = props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.state.editId){\r\n oldMapLines = 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 && props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n // 获取热力图\r\n if(heatMapData && !t.deepEqual(heatMapData,props.heatMapData)){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //图元编辑调用\r\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\r\n t.doEdit(editGraphicId);\r\n }\r\n //关闭图元编辑\r\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\r\n t.endEdit();\r\n }\r\n //开启图元绘制\r\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n /*设置指定图元展示*/\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n //开关路况\r\n if(isOpenTrafficInfo){\r\n t.openTrafficInfo();\r\n }else{\r\n t.hideTrafficInfo();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.loadLabel){\r\n clearInterval(t.loadLabel);\r\n }\r\n if(t.upPsTimer){\r\n clearTimeout(t.upPsTimer);\r\n }\r\n if(t.addPsTimer){\r\n clearTimeout(t.addPsTimer);\r\n }\r\n if(t.state.gis){\r\n t.state.gis.clearOverlays();\r\n }\r\n t.state.gis = null;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\n\r\nexport default Map;"],"mappings":"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","ignoreList":[]}
|