@vtx/map 1.1.48 → 1.1.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_MapToolFunction","_immutable","_default2","obj","__esModule","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","ownKeys","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","iter","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","arg","_toPrimitive","_typeof","String","input","hint","prim","toPrimitive","undefined","res","Number","_inherits","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","Set","Immutable","Map","_React$Component","_super","_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","state","gis","mapId","mapCreated","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","setState","_t$props","mapCenter","minZoom","maxZoom","showControl","options","zoom","center","oldZoomLevel","VtxMap","isShowControl","controlPosition","matchControlPosition","location","latLngBounds","sort","a","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","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","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","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","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","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","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","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","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.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n };\r\n this.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\r\n t.setState({\r\n mapCreated:true\r\n })\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 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.state.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","obj","__esModule","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","ownKeys","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","_toPropertyKey","configurable","writable","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","iter","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","arg","_toPrimitive","_typeof","String","input","hint","prim","toPrimitive","undefined","res","Number","_inherits","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","Set","Immutable","Map","_React$Component","_super","_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","a","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","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","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","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","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","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","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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"}