@vtx/map 1.1.43 → 1.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/VtxMap/AMap/AMap.js +1012 -640
- package/lib/VtxMap/AMap/AMap.js.map +1 -1
- package/lib/VtxMap/BMap/Map.js +1197 -749
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/GMap/Map.js +1564 -1046
- package/lib/VtxMap/GMap/Map.js.map +1 -1
- package/lib/VtxMap/Map.js +42 -8
- package/lib/VtxMap/Map.js.map +1 -1
- package/lib/VtxMap/MapToolFunction.js +63 -26
- package/lib/VtxMap/MapToolFunction.js.map +1 -1
- package/lib/VtxMap/OMap/Map.js +1361 -867
- package/lib/VtxMap/OMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +1289 -699
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/TMap/TMap.js +1058 -651
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxMap/index.js +8 -1
- package/lib/VtxMap/index.js.map +1 -1
- package/lib/VtxMap/mapPlayer.js +123 -67
- package/lib/VtxMap/mapPlayer.js.map +1 -1
- package/lib/VtxMap/optimizingPointMap.js +77 -21
- package/lib/VtxMap/optimizingPointMap.js.map +1 -1
- package/lib/VtxMap/style/css.js +6 -0
- package/lib/VtxMap/style/css.js.map +1 -1
- package/lib/VtxMap/style/index.js +6 -0
- package/lib/VtxMap/style/index.js.map +1 -1
- package/lib/VtxMap/zoomMap.js +41 -12
- package/lib/VtxMap/zoomMap.js.map +1 -1
- package/lib/VtxModal/VtxModal.js +63 -19
- package/lib/VtxModal/VtxModal.js.map +1 -1
- package/lib/VtxModal/draggableModal.js +48 -12
- package/lib/VtxModal/draggableModal.js.map +1 -1
- package/lib/VtxModal/index.js +6 -1
- package/lib/VtxModal/index.js.map +1 -1
- package/lib/VtxModal/style/css.js +6 -0
- package/lib/VtxModal/style/css.js.map +1 -1
- package/lib/VtxModal/style/index.js +6 -0
- package/lib/VtxModal/style/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +238 -105
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
- package/lib/VtxSearchCheckMap/index.js +2 -0
- package/lib/VtxSearchCheckMap/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/mapping.js +2 -1
- package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/css.js +19 -0
- package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/index.js +19 -0
- package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.js +220 -89
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/lib/VtxSearchMap/index.js +2 -0
- package/lib/VtxSearchMap/index.js.map +1 -1
- package/lib/VtxSearchMap/mapping.js +2 -1
- package/lib/VtxSearchMap/mapping.js.map +1 -1
- package/lib/VtxSearchMap/style/css.js +19 -0
- package/lib/VtxSearchMap/style/css.js.map +1 -1
- package/lib/VtxSearchMap/style/index.js +19 -0
- package/lib/VtxSearchMap/style/index.js.map +1 -1
- package/lib/default.js +13 -4
- package/lib/default.js.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_MapToolFunction","_immutable","_default2","obj","__esModule","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","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":["Set","Immutable","Map","props","GM","graphicManage","initPointIndex","_cluster","clusterIdList","_rangingTool","_bmar","_drawmanager","editGraphicChange","editTimeout","_boundary","moveToTimer","heatmap","morepoints","movePoints","editEvent","rangingTool","isRanging","line","points","distance","mapRangingTool","eventList","isDbclick","rangingTools","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","configUrl","mapServerURL","loadMapJs","t","loadMapComplete","Promise","resolve","reject","window","google","omap","maps","$","getScript","PointCollection","OmapCluster","all","then","createMap","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","areaRestriction","boundaryName","heatMapData","customizedBoundary","Array","addPoint","addLine","addPolygon","addCircle","heatMapOverlay","addPointCollection","setVisiblePoints","cluster","openTrafficInfo","hideTrafficInfo","clickMap","dragMapStart","dragMapEnd","moveStart","zoomStart","moveEndAndZoomEnd","setState","mapCenter","minZoom","maxZoom","showControl","options","zoom","center","oldZoomLevel","VtxMap","isShowControl","controlPosition","matchControlPosition","location","latLngBounds","isArray","sort","a","b","map","toString","lng","lat","disableDoubleClickZoom","draggableCursor","controlSize","rotateControl","scaleControl","streetViewControl","fullscreenControl","mapTypeControl","zoomControl","rotateControlOptions","position","streetViewControlOptions","fullscreenControlOptions","zoomControlOptions","mapTypeControlOptions","ControlPosition","TOP_CENTER","restriction","north","south","west","east","strictBounds","drawing","DrawingManager","drawingControl","setMap","OMapLib","MarkerClusterer","CanvasProjectionOverlay","prototype","OverlayView","constructor","onAdd","draw","onRemove","canvasProjectionOverlay","MyLabel","editable","editParam","sx","sy","isLabel","labelClass","labelContent","labelOffset","x","y","lnglat","_label","funs","innerHTML","className","panes","getPanes","markerLayer","overlayMouseTarget","i","removeListener","addListener","overlayProjection","getProjection","fromLatLngToDivPixel","left","parseFloat","top","setOptions","setPosition","getPosition","setZIndex","index","ZIndex","isMarkerContent","parentNode","removeChild","key","fun","tt","dragendFun","setTimeout","event","stopPropagation","latLng","va","pixel","addEventListener","removeEventListener","setDraggable","boolean","edit","mdown","clientX","clientY","mmEvent","e","replace","mupEvent","latlng","fromDivPixelToLatLng","Point","obj","ls","getLngLats","ids","type","alnglat","lngs","lats","getMoreGraphicParam","item","geometryType","push","geometry","paths","rings","forEach","sw","LatLng","ne","length","fitView","split","fitBounds","LatLngBounds","gt","mgt","c","getCenter","setCenter","z","getZoomLevel","setZoom","clearClusters","clearAllPointCollection","allGraphics","clearAll","psids","apf","isRepetition","console","warn","longitude","latitude","cg","width","height","labelPixelX","labelPixelY","BAnimationType","markerContentX","markerContentY","deg","markerContent","config","marker","canShowLabel","join","label","setGraphic","iconUrl","RotateIcon","url","icon","anchor","size","Size","scaledSize","setRotation","getUrl","labelOrigin","Marker","ishaveLabel","zIndex","setAnimation","Animation","BOUNCE","DROP","mClick","rangingToolFun","clickGraphic","mMouseover","mouseOverGraphic","mMouseout","mouseOutGraphic","setGraphicParam","attributes","other","click","mouseover","mouseout","addPsTimer","upf","gc","getGraphic","gc_label","indexOf","removeMarker","oldPosition","getGraphicParam","remove","removeGraphic","setIcon","isAnimation","moveTo","animationDelay","autoRotation","urlleft","moveAnimation","upPsTimer","lsids","color","pellucidity","lineWidth","lineType","isHidden","icons","lineSymbol","path","strokeOpacity","scale","offset","repeat","linePath","lineOption","strokeColor","strokeWeight","Polyline","setVisible","setPath","pgsids","lineColor","lineOpacity","polygonOption","strokeStyle","fillColor","fillOpacity","polygonPath","Polygon","ccsids","circleOption","centerPoint","Circle","radius","setRadius","d","max","visible","opacity","visualization","HeatmapLayer","option","gradient","sortArray","value","setData","data","ftp","pointCollectionId","divpc","getDiv","offsetHeight","offsetWidth","p","fromLatLngToContainerPixel","shape","VotexpointCollection","GMapLib","addpointCollectionTimer","clearTimeout","ds","ind","reDraw","updatePointCollectionTimer","clear","graphic","removeCluster","splice","gLabel","gtp","endEdit","param","spherical","area","computeArea","mapLayer","getPath","getArray","calculateDistance","Math","pow","PI","editPointLabel","setEditable","drawParam","setDrawingMode","parameter","Date","getTime","len","paramgcr","extData","markerOptions","_drawmanagerEvent","backobj","drawEnd","polylineOptions","lnglatAry","lngX","latX","calculateGraphicDistance","getMaxMin","polygonOptions","calculateArea","_extent","circleOptions","getRadius","rectangleOptions","lnglatJson","getBounds","toJSON","calculatePointsDistance","ps","mapTop","mapLeft","trafficLayer","TrafficLayer","gids","status","fromContainerPixelToLatLng","lnlt","distext","round","random","updateLine","rangkey","end","lnglats","dbclickTimer","rangingToolEndFun","rangingToolMoveFun","rp","rcontent","grwkid","sl","updatePoint","arg","ary","clusterToolFunction","addMarkers","removeMarkers","clearMarkers","filter","vtx_g_rang","Object","apply","allps","getMapExtent","clickLngLat","css","visibility","isZoomming","isMoving","getZoom","moveEnd","zoomEnd","updatePointCollection","hide","gp","gg","pts","nowBounds","southWest","getNorthEast","northEast","getSouthWest","nowCenter","mapSize","ms","xmax","xmin","ymax","ymin","clearInterval","setInterval","waitTime","deleteTime","nowMovePoints","slice","deleteIndex","rx","ry","isAdded","tx","ty","addMarker","delay","urlright","timer","eval","count","s","equals","ddeg","rotateDeg","getIcon","isHave","sp","ep","spLngLat","epLngLat","tan","atan","disy","bias","RIGHT_BOTTOM","LEFT_TOP","LEFT_BOTTOM","RIGHT_TOP","fp","computeDistanceBetween","totalDistance","computeLength","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","offsetLeft","offsetTop","init","prevProps","prevState","nextProps","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","dataMatch","clearPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","doEdit","closeDraw","vtxRangingTool","loadLabel","clearOverlays","React","Component"],"sources":["VtxMap/OMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport {graphicManage,RotateIcon,getMaxMin} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nclass Map extends React.Component {\r\n constructor(props){\r\n super(props);\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.initPointIndex = 0;//初始化地图时记录点当前位置\r\n this._cluster = null;//点聚合对象\r\n this.clusterIdList = [];//点聚合id集合\r\n this._rangingTool = null;//测距对象\r\n this._bmar = null;//区域限制对象\r\n this._drawmanager = null;//图元绘制对象\r\n this.editGraphicChange = null;//编辑方法回调\r\n this.editTimeout = null;//圆编辑回调延迟时间对象\r\n this._boundary = null;//获取行政区域数据的对象\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.heatmap = null;//热力图对象\r\n this.morepoints = [];//海量点数组\r\n this.movePoints = [];//移动点的动画集合\r\n this.editEvent = {};//编辑监听的事件\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false,//是否开启状态\r\n line: {},//线\r\n points: [],//点\r\n distance: 0,//测距长度\r\n mapRangingTool: null,//测距回调\r\n eventList: {},\r\n isDbclick: false\r\n };\r\n this.rangingTools = {};//测距点线缓存\r\n this.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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"}
|