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