@vtx/map 1.1.25 → 1.1.26
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/BMap/Map.js +75 -0
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/OMap/Map.js +43 -43
- package/lib/VtxMap/OMap/Map.js.map +1 -1
- package/lib/VtxMap/OMap/Map.less +70 -70
- package/lib/VtxMap/OlMap/Map.js +23 -23
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.less +230 -230
- package/lib/VtxMap/TMap/TMap.js +18 -18
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxMap/images/close.png +0 -0
- package/lib/VtxSearchCheckMap/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
- package/lib/VtxSearchMap/index.js.map +1 -1
- package/lib/VtxSearchMap/mapping.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TMap.js","names":["Set","Immutable","TMap","props","GM","graphicManage","getPolygonArea","pointCollectionId","isNotClickMap","isZoom","mapLeft","mapTop","clusterObj","clusterMarkers","markerTool","polylineTool","polygonTool","rectangleTool","circleTool","isEditId","moveToTimer","timer","movePoints","morepoints","heatmap","animTimer","animCount","waitInit","isLoading","waitReceive","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","mapZoomLevel","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","controlStyle","loadMapJs","t","loadMapComplete","Promise","resolve","reject","window","T","$","getScript","configUrl","mapServerURL","getTMapTK","Heatmap","PointCollection","ImageOverlays","all","then","clearInterval","setInterval","Tool","mapPoints","mapLines","mapPolygons","mapCircles","setVisiblePoints","mapVisiblePoints","mapCenter","mapCluster","mapPointCollection","showControl","boundaryName","areaRestriction","heatMapData","imageOverlays","coverageType","infoWindowData","createMap","setMapType","Array","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","heatMapOverlay","infoWindow","setTimeout","addPointCollection","setZoomLevel","cluster","satelliteSwitch","showMapTypeControl","setAreaRestriction","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","clickMap","setState","mapStyle","minZoom","maxZoom","VtxMap","AnchorConstant","tr","T_ANCHOR_TOP_RIGHT","tl","T_ANCHOR_TOP_LEFT","bl","T_ANCHOR_BOTTOM_LEFT","br","T_ANCHOR_BOTTOM_RIGHT","Map","toString","zoom","center","LngLat","setStyle","pointCollectionDiv","document","createElement","id","className","getPanes","mapPane","children","before","type","TMAP_NORMAL_MAP","TMAP_HYBRID_MAP","imageAry","map","item","index","sw","ne","url","opacity","displayOnMinLevel","displayOnMaxLevel","console","warn","isArray","swnep","LngLatBounds","ImageOverlay","addOverLay","clear","removeMarkers","clearAllPointCollection","getOverlays","removeOverLay","clearAll","gt","centerAndZoom","getZoom","sw_ne","bounds","setMaxBounds","obj","ls","getLngLats","ids","alnglat","getMoreGraphic","getType","push","getLngLat","getCenter","fitView","split","length","getViewport","setCenter","lng","lat","mapSize","width","getSize","x","height","y","nowCenter","getCurrentCenter","northEast","getBounds","getNorthEast","southWest","getSouthWest","getZoomLevel","radius","calculatePointsDistance","getLng","getLat","arg","ary","Object","prototype","apply","ms","filter","label","MarkerClusterer","markers","location","offset","scaleOffset","config","scaleControl","removeControl","navigationControl","control","Control","Scale","position","addControl","navigation","Zoom","css","right","top","left","bottom","mapTypeControl","MapType","lineTool","PolylineTool","showLabel","open","addEventListener","mapRangingTool","distance","currentDistance","lnglats","currentLnglats","gp","getGraphicParam","gg","getGraphic","p","pts","geometryType","mapLayer","geometry","attributes","longitude","latitude","other","paths","rings","getRadius","psids","cg","labelContent","labelPixelX","labelPixelY","markerContentX","markerContentY","zIndex","deg","isRepetition","markerContent","markerOption","zIndexOffset","marker","icon","Icon","iconUrl","iconSize","Point","iconAnchor","undefined","Marker","Label","text","canShowLabel","labelClass","BAnimationType","pointAnimation","getElement","style","transform","e","clickGraphic","mouseOverGraphic","mouseOutGraphic","setGraphic","setGraphicParam","gc","getIcon","options","setZIndexOffset","isAnimation","setLngLat","setIcon","moveTo","animationDelay","autoRotation","urlleft","moveAnimation","lsids","color","pellucidity","lineWidth","lineType","isHidden","lineOption","weight","lineStyle","path","itm","ind","Polyline","getColor","getOpacity","getWeight","getLineStyle","setColor","setOpacity","setLineStyle","setWeight","setLngLats","pgsids","lineColor","lineOpacity","polygonOption","fillColor","fillOpacity","r","Polygon","on","getFillColor","getFillOpacity","setFillColor","setFillOpacity","ccsids","circleOption","Circle","setRadius","data","d","points","i","lngLatToContainerPoint","size","shape","VotexpointCollection","GMapLib","value","draw","ds","reDraw","max","visible","TMapLib","HeatmapOverlay","initialize","option","eval","gradient","setOptions","setDataSet","isHideHeatMap","show","hide","sContent","infowindow","InfoWindow","setMinWidth","setMaxHeight","content","render","setContent","openInfoWindow","closeInfoWindow","drawParam","parameter","Date","getTime","len","indexOf","splice","param","paramgcr","extData","follow","close","MarkTool","ob","target","currentLnglat","currentMarker","allMarkers","backobj","drawEnd","currentPolyline","allPolylines","lnglatAry","lngX","latX","getMaxMin","PolygonTool","currentArea","currentPolygon","allPolygons","_extent","area","CircleTool","currentCenter","currentRadius","currentCircle","allCircles","Math","PI","pow","RectangleTool","currentBounds","currentRectangle","allRectangles","distanceTo","endEdit","enableDragging","enableEdit","disableDragging","removeEventListener","disableEdit","editGraphicChange","calculateDistance","removeMarker","getLabel","removeGraphic","removeGraphicParam","containerPoint","getMapExtent","xylist","matchList","match","updatePointCollection","display","allParam","clickLngLat","lnglat","pixel","getIconAnchor","now","start","notation","setIconAnchor","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","oleLng","oldLat","rx","ry","totalTime","ddeg","tx","ty","lglt","setIconUrl","a","b","delay","urlright","count","s","equals","rotateDeg","isHave","sp","ep","spLngLat","AMap","lngLatToLayerPoint","tan","atan","disy","bias","is","fromJS","f","lnglat1","lnglat2","round","ps","totalDistance","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","searchValue","pageSize","pageIndex","searchConfig","pageCapacity","onSearchComplete","result","pois","list","hotPointID","lonlat","name","localsearch","LocalSearch","search","getElementById","offsetLeft","offsetTop","init","prevProps","prevState","nextProps","receive","customizedBoundary","isOpenTrafficInfo","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isClearAll","isSetAreaRestriction","isClearAreaRestriction","deepEqual","removeStyle","dataMatch","clearPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","updatePoint","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","updateLine","doEdit","closeDraw","vtxRangingTool","clearAreaRestriction","JSON","stringify","j","React","Component"],"sources":["VtxMap/TMap/TMap.js"],"sourcesContent":["import React from 'react';\nimport { render } from 'react-dom';\nimport {graphicManage,getMaxMin,getPolygonArea} from '../MapToolFunction';\nimport Immutable from 'immutable';\nconst {Set} = Immutable;\n//公共地址配置\nimport configUrl, { getTMapTK } from '../../default';\nclass TMap extends React.Component{\n constructor(props){\n super(props);\n //初始化 图元管理方法\n this.GM = new graphicManage();\n this.getPolygonArea = getPolygonArea;\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\n this.isNotClickMap = false;//阻止点击事件冒泡到地图\n this.isZoom = false;//阻止 zoom事件后触发的移动事件\n this.mapLeft = 0;//地图offset的Left值\n this.mapTop = 0;//地图offset的Top值\n this.clusterObj = null;//聚合对象\n this.clusterMarkers = null;//聚合的点集合\n this.markerTool = null;//绘制点对象\n this.polylineTool = null;//绘制线对象\n this.polygonTool = null;//绘制面对象\n this.rectangleTool = null;//绘制矩形对象\n this.circleTool = null;//绘制圆对象\n this.isEditId = null;//记录当前编辑的id,过滤移入移出事件\n this.moveToTimer = null;//moveTo时间对象\n this.timer = 10; //动画播放频率\n this.movePoints = [];//move点的对象集合\n this.morepoints = [];//海量点集合\n this.heatmap = null;//热力图对象\n this.animTimer = {};//点位跳动动画\n this.animCount = {};//点位跳动动画 位置记录\n this.waitInit = null; //等加载定时\n this.isLoading = false; //是否加载完\n this.waitReceive = null;//等初始化,更新定时\n this.state={\n gis: null,//地图对象\n mapId: props.mapId,\n mapCreated: false,\n pointIds:[], //地图上点的ids\n lineIds:[], //地图上线的ids\n polygonIds:[], //地图上面的ids\n circleIds:[], //地图上圆的ids\n editId: '',//当前编辑的图元id\n editGraphic: '',//当前编辑完后图元所有数据\n // center: props.mapCenter,\n mapZoomLevel: props.mapZoomLevel,\n boundaryInfo: [],//当前画出的边界线的id和区域名\n drawIds: {//绘制工具id集合\n point: [],\n polyline: [],\n polygon: [],\n circle: [],\n rectangle: []\n },\n controlStyle: 'lt'\n }\n this.loadMapJs();\n }\n loadMapJs(){\n let t = this; \n this.loadMapComplete = new Promise((resolve,reject)=>{\n if(window.T){\n resolve(window.T);\n }\n else{\n $.getScript(`${configUrl.mapServerURL}/T_content.js`,()=>{\n $.getScript(`//api.tianditu.gov.cn/api?v=4.0&tk=${getTMapTK()}`,()=>{\n let Heatmap = new Promise((resolve,reject)=>{\n //对象问题 和arcgis使用不同的热力图\n $.getScript(`${configUrl.mapServerURL}/Theatmap.js`,()=>{\n resolve();\n });\n });\n let PointCollection = new Promise((resolve,reject)=>{\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\n resolve();\n });\n });\n let ImageOverlays = new Promise((resolve,reject)=>{\n $.getScript(`${configUrl.mapServerURL}/TImageOverlay.js`,()=>{\n resolve();\n });\n });\n // let components = new Promise((resolve,reject)=>{\n // $.getScript(`${configUrl.mapServerURL}/T_toolComponents.js`,()=>{\n // resolve();\n // })\n // });\n Promise.all([Heatmap,PointCollection,ImageOverlays/*,components*/]).then(()=>{\n if(t.waitInit){\n clearInterval(t.waitInit);\n }\n t.waitInit = setInterval(()=>{\n if(T.Tool){\n clearInterval(t.waitInit);\n resolve(window.T);\n }\n },50)\n })\n })\n })\n }\n });\n }\n init(){\n let t = this;\n const {\n mapPoints,mapLines,mapPolygons,mapCircles,\n setVisiblePoints,mapVisiblePoints,\n mapCenter,mapZoomLevel,\n mapCluster,mapPointCollection,\n showControl,boundaryName,\n areaRestriction,heatMapData,\n imageOverlays,coverageType,\n infoWindowData\n } = t.props;\n //创建地图\n t.createMap();\n // 切换地图矢量图和卫星图背景\n if(coverageType){\n t.setMapType(coverageType);\n }\n //添加点\n if(mapPoints instanceof Array){\n t.addPoint(mapPoints);\n }\n //添加线\n if(mapLines instanceof Array){\n t.addLine(mapLines);\n }\n // //添加面\n if(mapPolygons instanceof Array){\n t.addPolygon(mapPolygons);\n }\n //添加圆\n if(mapCircles instanceof Array){\n t.addCircle(mapCircles);\n }\n //添加图片图层\n if(imageOverlays instanceof Array){\n t.imageUrlOverlay(imageOverlays);\n }\n /*设置指定图元展示*/\n if(mapVisiblePoints){\n t.setVisiblePoints(mapVisiblePoints);\n }\n // 画热力图\n if(heatMapData){\n t.heatMapOverlay(heatMapData);\n }\n // 打开信息窗体\n if(infoWindowData){\n t.infoWindow(infoWindowData);\n }\n //添加海量点\n if(mapPointCollection instanceof Array){\n setTimeout(()=>{\n t.addPointCollection(mapPointCollection);\n },100)\n }\n //设置比例尺\n if(mapZoomLevel){\n t.setZoomLevel(mapZoomLevel);\n }\n //设置点聚合\n if(mapCluster){\n t.cluster(mapCluster);\n }\n // //展示比例尺\n if(showControl){\n t.showControl();\n }\n //添加地图类型控件\n if(t.props.satelliteSwitch){\n t.showMapTypeControl();\n }\n // //画边界线\n // if(boundaryName instanceof Array && boundaryName.length>0){\n // t.addBaiduBoundary(boundaryName);\n // }\n\n //设置区域限制\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\n t.setAreaRestriction(areaRestriction);\n }\n //初始化地图拖拽开始事件\n t.dragMapStart();\n //初始化地图拖拽结束事件\n t.dragMapEnd();\n //初始化地图移动开始事件\n t.moveStart();\n //初始化地图移动结束事件\n t.moveEnd();\n //初始化地图zoom改变开始事件\n t.zoomStart();\n //初始化地图zoom改变结束事件\n t.zoomEnd();\n //初始化地图点击事件\n t.clickMap();\n\n t.setState({\n mapCreated:true\n });\n }\n createMap(){\n let t = this;\n const {mapStyle,mapCenter=[],mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\n if(!window.VtxMap){\n window.VtxMap = {};\n }\n // 控件位置常量\n t.AnchorConstant = {\n tr: T_ANCHOR_TOP_RIGHT,\n tl: T_ANCHOR_TOP_LEFT,\n bl: T_ANCHOR_BOTTOM_LEFT,\n br: T_ANCHOR_BOTTOM_RIGHT\n }\n window.VtxMap[mapId] = t.state.gis = new T.Map(mapId.toString(),{\n //zoom等级,和百度一样默认10\n zoom: mapZoomLevel || 10,\n //必须有中心点,不传默认在北京(不设置中心点,报错)\n center: mapCenter?new T.LngLat(mapCenter[0] || 116.40769, mapCenter[1] || 39.906705)\n :new T.LngLat(116.40769, 39.89945),\n minZoom: minZoom || 1,\n maxZoom: maxZoom || 18\n });\n if(mapStyle){\n t.state.gis.setStyle(mapStyle);\n }\n //海量点图元容器\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\n let pointCollectionDiv = document.createElement('div');\n pointCollectionDiv.id = t.pointCollectionId;\n pointCollectionDiv.class = 'vtx_gmap_html_pointCollection_t';\n pointCollectionDiv.className = 'vtx_gmap_html_pointCollection_t';\n $(t.state.gis.getPanes().mapPane.children[0]).before(pointCollectionDiv);\n }\n setMapType(type){\n switch (type) {\n case 'sl':\n this.state.gis.setMapType(TMAP_NORMAL_MAP);\n break;\n case 'wx':\n this.state.gis.setMapType(TMAP_HYBRID_MAP);\n break;\n }\n }\n //增加图片图层\n imageUrlOverlay(imageAry){\n let t = this;\n imageAry.map((item,index)=>{\n let {sw,ne,url,opacity,displayOnMinLevel,displayOnMaxLevel} = item;\n if(!url){\n console.warn(`图片图层url数据错误`);\n return false;\n }\n if(sw && ne && Array.isArray(sw) && Array.isArray(ne) && sw[0] && sw[1] && ne[0] && ne[1]){\n let swnep = new T.LngLatBounds(\n new T.LngLat(sw[0],sw[1]),\n new T.LngLat(ne[0],ne[1])\n ),\n imageUrlOverlay = new T.ImageOverlay(\n url,\n swnep,\n {\n minZoom: displayOnMinLevel || 3,\n maxZoom: displayOnMaxLevel || 18\n }\n );\n t.state.gis.addOverLay(imageUrlOverlay);\n }else{\n console.warn(`区域经纬度sw/ne数据错误`);\n return false;\n }\n })\n }\n //清空地图所有图元\n clearAll (){\n let t = this;\n //清空热力图\n if(t.heatmap){\n t.heatmap.clear();\n }\n t.heatmap = null;\n //先清除所有标记\n if(t.clusterMarkers){\n t.clusterObj.removeMarkers(t.clusterMarkers);\n }\n t.clearAllPointCollection();\n //清空点\n t.state.gis.getOverlays().map((item,index)=>{\n t.state.gis.removeOverLay(item);\n })\n //清空缓存数据\n t.GM.clearAll();\n //清空历史数据记录\n t.setState({\n pointIds: [],\n lineIds: [],\n polygonIds: [],\n circleIds: [],\n boundaryInfo: [],\n drawIds: {\n point: [],\n polyline: [],\n polygon: [],\n circle: [],\n rectangle: []\n }\n });\n }\n /*set方法*/\n //设置地图中心位置 lng/经度 lat/纬度\n setCenter (gt) {\n let t =this;\n if(gt){\n t.state.gis.centerAndZoom(new T.LngLat(gt[0], gt[1]),t.state.gis.getZoom());\n }else{\n t.state.gis.centerAndZoom(new T.LngLat(116.400433, 39.906705),t.state.gis.getZoom());\n }\n }\n /*地图区域限制*/\n setAreaRestriction(sw_ne){\n let t =this;\n let bounds = new T.LngLatBounds(new T.LngLat(sw_ne[0][0],sw_ne[0][1]),new T.LngLat(sw_ne[1][0],sw_ne[1][1]))\n t.state.gis.setMaxBounds(bounds);\n }\n clearAreaRestriction(){\n this.state.gis.setMaxBounds(null);\n }\n //设置指定图元展示 高德只有zoom和center全适应,单适应暂时无法实现\n setVisiblePoints(obj){\n let t = this;\n let ls = [];\n let {pointIds,lineIds,polygonIds,circleIds} = t.state;\n let getLngLats = (ids)=>{\n let alnglat = [];\n t.GM.getMoreGraphic(ids).map((item,index)=>{\n //根据天地图 覆盖物类型获取lnglat\n switch(item.getType()){\n case 1:\n case 2:\n alnglat.push(item.getLngLat());\n break;\n case 4:\n alnglat.push(...item.getLngLats());\n break;\n case 5://多边形 返回的是 三维数组\n alnglat.push(...item.getLngLats()[0]);\n break;\n case 8:\n alnglat.push(item.getCenter());\n break;\n }\n });\n return alnglat;\n }\n //算出 要展示的图元点位\n switch(obj.fitView){\n case 'point':\n ls = getLngLats(pointIds);\n break;\n case 'line':\n ls = getLngLats(lineIds);\n break;\n case 'polygon':\n ls = getLngLats(polygonIds);\n break;\n case 'circle':\n ls = getLngLats(circleIds);\n break;\n case 'all':\n ls = getLngLats([...pointIds,...lineIds,...polygonIds,...circleIds]);\n break;\n default:\n let ids = [];\n if(obj.fitView instanceof Array){\n ids = obj.fitView;\n }else if(typeof(obj.fitView) === 'string'){\n ids = obj.fitView.split(',');\n }\n if(ids[0] instanceof Array){\n ls = ids.map((item)=>{\n return new T.LngLat(item[0],item[1]);\n })\n }else{\n ls = getLngLats(ids);\n }\n break;\n }\n if(ls.length >= 1){\n let {center, zoom} = (t.state.gis.getViewport(ls));\n if(obj.type == 'zoom'){\n t.setZoomLevel(zoom);\n }else if(obj.type == 'center'){\n t.setCenter([center.lng,center.lat]);\n } else {\n t.state.gis.centerAndZoom(center, zoom);\n }\n }\n }\n\n //设置地图比例尺\n setZoomLevel (zoom) {\n let t =this;\n t.state.gis.centerAndZoom(t.state.gis.getCenter(),zoom);\n }\n //获取当前地图的中心位置\n getCurrentCenter(){\n let t =this;\n return {\n lat: t.state.gis.getCenter().lat,\n lng: t.state.gis.getCenter().lng\n };\n }\n //获取当前比例尺\n getZoomLevel (){\n let t = this;\n return t.state.gis.getZoom();\n }\n //获取当前地图边框左右边角经纬度,中心点位置,和比例尺,半径距离\n getMapExtent(){\n let t =this;\n let {gis} = t.state;\n let obj = {\n mapSize: {width:gis.getSize().x,height:gis.getSize().y},\n nowCenter: t.getCurrentCenter(),\n northEast: {\n lat: gis.getBounds().getNorthEast().lat,\n lng: gis.getBounds().getNorthEast().lng\n },\n southWest: {\n lat: gis.getBounds().getSouthWest().lat,\n lng: gis.getBounds().getSouthWest().lng\n },\n zoom: t.getZoomLevel()\n }\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],[\n gis.getBounds().getNorthEast().getLng(),gis.getBounds().getNorthEast().getLat()]);\n return obj;\n }\n //聚合地图图元(arg为空时聚合全部点)\n cluster (arg) {\n let t = this;\n let ary = [];\n if(!arg){\n let {pointIds} = t.state;\n ary = pointIds;\n }else{\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\n ary = arg;\n }else if(typeof arg === 'string'){\n ary = arg.split(',');\n }\n }\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\n // return !item && item != 0 ? false : true;\n return item && item.getType() === 2 && !item.label;\n });\n //聚合的对象,便于后期清除时调用\n this.clusterObj = new T.MarkerClusterer(t.state.gis, {markers: ms});\n //记录聚合的点,便于后期清除\n this.clusterMarkers = ms;\n }\n //设置比例尺\n showControl(props){\n let t = this,location = t.AnchorConstant['tr'],offset=null, scaleOffset=null;\n let config = props || t.props;\n if(t.scaleControl) {\n t.state.gis.removeControl(t.scaleControl);\n }\n if(t.navigationControl) {\n t.state.gis.removeControl(t.navigationControl);\n }\n if(config.showControl.location){\n location = t.AnchorConstant[config.showControl.location];\n }\n // 添加比例尺\n let control = new T.Control.Scale({position: location, offset: scaleOffset});\n t.state.gis.addControl(control);\n t.scaleControl = control;\n // 缩放地图\n let navigation = new T.Control.Zoom({position: location, offset}); \n t.state.gis.addControl(navigation);\n t.navigationControl = navigation\n\n // TODO不支持偏移,手动偏移\n if (config.showControl.offset && config.showControl.offset.length > 0) {\n if (location == \"topright\") {\n $('div.tdt-top.tdt-right').css({ right: config.showControl.offset[0], top: config.showControl.offset[1] })\n } else if (location == \"topleft\") {\n $('div.tdt-top.tdt-left').css({ left: config.showControl.offset[0], top: config.showControl.offset[1] })\n } else if (location == \"bottomleft\") {\n $('div.tdt-bottom.tdt-left').css({ left: config.showControl.offset[0], bottom: config.showControl.offset[1] })\n } else if (location == \"bottomright\") {\n $('div.tdt-bottom.tdt-right').css({ right: config.showControl.offset[0], bottom: config.showControl.offset[1] })\n }\n }\n }\n\n // 移除比例尺\n removeControl() {\n const t = this;\n if(t.scaleControl) {\n t.state.gis.removeControl(t.scaleControl);\n t.scaleControl = null;\n }\n if(t.navigationControl) {\n t.state.gis.removeControl(t.navigationControl);\n t.navigationControl = null;\n }\n }\n\n //展示地图切换控件\n showMapTypeControl (props){\n let t = this,location = t.AnchorConstant['br'],offset=null;\n let config = props || t.props;\n if(t.mapTypeControl) {\n t.state.gis.removeControl(t.mapTypeControl);\n }\n if(config.satelliteSwitch.location){\n location = t.AnchorConstant[config.satelliteSwitch.location];\n }\n // 地图切换控件\n let control = new T.Control.MapType({position: location, offset: offset});\n t.state.gis.addControl(control);\n t.mapTypeControl = control;\n\n // TODO不支持偏移,手动偏移\n if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {\n if (location == \"topright\") {\n $('div.tdt-top.tdt-right').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\n } else if (location == \"topleft\") {\n $('div.tdt-top.tdt-left').css({ left: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\n } else if (location == \"bottomleft\") {\n $('div.tdt-bottom.tdt-left').css({ left: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\n } else if (location == \"bottomright\") {\n $('div.tdt-bottom.tdt-right').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\n }\n }\n }\n //测距\n vtxRangingTool () {\n let t = this;\n //将map对象放到全局中.是因为天地图api中使用了全局map.(坑B)\n window.map = t.state.gis;\n //创建标注工具对象\n let lineTool = new T.PolylineTool(t.state.gis,{showLabel: true});\n lineTool.open();\n this.isNotClickMap = true;\n //监听每次点击事件,阻止地图点击事件冒泡\n lineTool.addEventListener('addpoint',()=>{\n this.isNotClickMap = true;\n })\n lineTool.addEventListener('draw',(obj)=>{\n if('mapRangingTool' in t.props){\n t.props.mapRangingTool({\n distance: obj.currentDistance,\n lnglats: obj.currentLnglats.map((item,index)=>{\n return [item.lng,item.lat];\n })\n });\n }\n })\n }\n //获取图元数据\n getGraphic (id) {\n let t = this;\n if(!id){\n return false;\n }\n let gp = t.GM.getGraphicParam(id);\n let gg = t.GM.getGraphic(id);\n if(!gg){\n return false;\n }\n let p = {},pts = [],lng = 0,lat = 0;\n switch(gp.geometryType){\n case 'point':\n lng = gg.getLngLat().getLng();\n lat = gg.getLngLat().getLat();\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n x: lng,\n y: lat\n },\n attributes: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n other: {\n ...gp.attributes.other,\n longitude: lng,\n latitude: lat,\n }\n }\n }\n break;\n case 'polyline':\n pts = gg.getLngLats().map((item,index)=>{\n return [item.lng,item.lat]\n });\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n paths: pts\n },\n attributes: {\n ...gp.attributes,\n paths: pts,\n other: {\n ...gp.attributes.other,\n paths: pts\n }\n }\n }\n break;\n case 'polygon':\n pts = gg.getLngLats()[0].map((item,index)=>{\n return [item.lng,item.lat]\n });\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n rings: pts\n },\n attributes: {\n ...gp.attributes,\n rings: pts,\n other: {\n ...gp.attributes.other,\n rings: pts\n }\n }\n }\n break;\n case 'circle':\n lng = gg.getCenter().getLng();\n lat = gg.getCenter().getLat();\n let radius = gg.getRadius();\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n x: lng,\n y: lat,\n radius\n },\n attributes: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n radius,\n other: {\n ...gp.attributes.other,\n longitude: lng,\n latitude: lat,\n radius\n }\n }\n }\n break;\n }\n return p;\n }\n //添加点\n addPoint(mapPoints,type){\n let t = this;\n let psids = [...t.state.pointIds];\n mapPoints.map((item,index)=>{\n let cg = {\n width: 33,\n height: 33,\n labelContent: '',\n labelPixelX: 0,\n labelPixelY: 33,\n markerContentX: -16.5,\n markerContentY: -33,\n zIndex: 100,\n deg: 0\n }\n //如果id重复,直接跳过不执行.\n if (this.GM.isRepetition(item.id)) {\n console.warn(`加点id: ${item.id} 重复`);\n return false;\n }\n //点位数据不符合,直接跳过\n if(!item.longitude || !item.latitude){\n console.warn(`点 经纬度 数据错误`);\n return false;\n }\n if(item.markerContent){\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\n }\n //初始化默认数据\n if(item.config){\n cg = {...cg,...item.config};\n }\n //覆盖物参数\n let markerOption = {\n zIndexOffset: cg.zIndex,\n opacity: 1\n }\n let marker = null;\n //判断html还是图片\n if(!!item.markerContent){\n markerOption.icon = new T.Icon({\n iconUrl: item.url || `${configUrl.mapServerURL}/images/touming.png`,\n iconSize: new T.Point(cg.width,cg.height),\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\n });\n if(cg.zIndex !== undefined || cg.zIndex !== null){\n markerOption.zIndexOffset = cg.zIndex;\n }\n //获得覆盖物对象\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\n t.state.gis.addOverLay(marker);\n //-12,+15测试的阈值\n marker.label = new T.Label({\n text: item.markerContent,\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\n });\n marker.showLabel();\n //统一加点\n }else{\n markerOption.icon = new T.Icon({\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\n iconSize: new T.Point(cg.width,cg.height),\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\n });\n if(cg.zIndex !== undefined || cg.zIndex !== null){\n markerOption.zIndexOffset = cg.zIndex;\n }\n //获得覆盖物对象\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\n //添加点击事件\n //统一加点\n t.state.gis.addOverLay(marker);\n //是否展示label\n if(item.canShowLabel){\n let labelClass = item.labelClass || 'label-content';\n marker.label = new T.Label({\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\n offset: new T.Point((cg.labelPixelX - (cg.width/2)),cg.labelPixelY + (cg.markerContentY + cg.height/2))\n })\n marker.showLabel();\n }\n }\n //点跳动动画\n if(!item.markerContent && cg.BAnimationType == 0){\n t.pointAnimation(item.id,marker);\n }else{\n t.pointAnimation(item.id,null);\n }\n if(cg.deg){\n marker.getElement().style.transform = marker.getElement().style.transform + ` rotate(${cg.deg}deg)`;\n marker.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\n }\n marker.addEventListener( 'click', (e)=>{\n t.clickGraphic(item.id,e);\n });\n marker.addEventListener( 'mouseover', (e)=>{\n t.mouseOverGraphic(item.id,e);\n });\n marker.addEventListener( 'mouseout', (e)=>{\n t.mouseOutGraphic(item.id,e);\n });\n psids.push(item.id);\n //缓存图元的数据,偏于后期操作\n this.GM.setGraphic(\n item.id,marker\n ).setGraphicParam(\n item.id,\n {\n attributes: {...item,other: item},\n geometryType: 'point',\n geometry: {\n type: 'point',\n x: item.longitude,\n y: item.latitude\n },\n deg: cg.deg\n }\n );\n });\n if(type !== 'defined'){\n t.state.pointIds = psids;\n // t.setState({\n // pointIds: psids\n // });\n }\n }\n //更新点\n updatePoint(mapPoints){\n let t = this;\n mapPoints.map((item,index)=>{\n //判断图元是否存在.\n if (this.GM.isRepetition(item.id)) {\n //点位数据不符合,直接跳过\n if(!item.longitude || !item.latitude){\n console.warn(`点 经纬度 数据错误`);\n return false;\n }\n //获取原有的图元\n let gc = this.GM.getGraphic(item.id);\n let cg = null;\n if(!!item.markerContent){\n cg = {\n markerContentX: (item.config || {}).markerContentX || gc.getIcon().options.iconSize.x,\n markerContentY: (item.config || {}).markerContentY || gc.getIcon().options.iconSize.y,\n //暂时不设置旋转角度,后期维护设置吧\n // deg: item.config.deg,\n zIndex: (item.config || {}).zIndex || gc.options.zIndexOffset\n };\n //设置点的标记添加顺序\n // gc.setZindex(cg.zIndex);\n gc.setZIndexOffset(cg.zIndex);\n if(!(item.config || {}).isAnimation){\n //修改经纬度\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\n }\n if(gc.label){\n this.state.gis.removeOverLay(gc.label);\n }\n gc.label = new T.Label({\n text: item.markerContent,\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\n });\n gc.showLabel();\n }else{\n cg = {\n width: (item.config || {}).width || 33,\n height: (item.config || {}).height || 33,\n markerContentX: (item.config || {}).markerContentX || -16.5,\n markerContentY: (item.config || {}).markerContentY || -33,\n //暂时不设置旋转角度,后期维护设置吧\n deg: (item.config || {}).deg,\n zIndex: (item.config || {}).zIndex || 100,\n labelClass: (item.config || {}).labelContent || 'label-content',\n labelContent: '',\n BAnimationType: (item.config || {}).BAnimationType,\n labelPixelX: 0,\n labelPixelY: 33,\n };\n gc.setIcon(new T.Icon({\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\n iconSize: new T.Point(cg.width,cg.height),\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\n }));\n if(!(item.config || {}).isAnimation){\n //修改经纬度\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\n }\n //是否展示label\n if(item.canShowLabel){\n if(gc.label){\n this.state.gis.removeOverLay(gc.label);\n }\n // cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):gc.getLabel().options.offset.x;\n // cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):gc.getLabel().options.offset.y;\n // cg.labelContent= (item.config || {}).labelContent || gc.getLabel().options.text;\n cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):cg.labelPixelX - cg.width/2;\n cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):cg.labelPixelY + (cg.markerContentY + cg.height/2);\n cg.labelContent= (item.config || {}).labelContent || '';\n let labelClass = item.labelClass || 'label-content';\n //更新label\n gc.label = new T.Label({\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\n offset: new T.Point(cg.labelPixelX,cg.labelPixelY)\n })\n gc.showLabel();\n }\n //设置点的标记添加顺序\n gc.setZIndexOffset(cg.zIndex);\n }\n //点跳动动画\n if(!item.markerContent && cg.BAnimationType == 0){\n t.pointAnimation(item.id,gc);\n }else{\n t.pointAnimation(item.id,null);\n }\n if(cg.deg){\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${cg.deg}deg)`;\n gc.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\n }\n //动画效果会延迟执行经纬度的切换\n if((item.config || {}).isAnimation){\n t.moveTo(item.id,[item.longitude,item.latitude],(item.config || {}).animationDelay,(item.config || {}).autoRotation,item.url,item.urlleft);\n }\n this.GM.setGraphicParam(\n item.id,\n {\n attributes: {...item,other: item},\n geometryType: 'point',\n geometry: {\n type: 'point',\n x: item.longitude,\n y: item.latitude\n },\n deg: cg.deg || 0\n }\n );\n }else{\n console.warn(`更新的点id不存在!`);\n return false;\n }\n });\n t.moveAnimation();\n }\n //添加线\n addLine(mapLines,type){\n let t = this;\n let lsids = [...t.state.lineIds];\n //遍历添加线(图元)\n mapLines.map((item,index)=>{\n let cg = {\n color: '#277ffa',\n pellucidity: 0.9,\n lineWidth: 5,\n lineType: 'solid',\n isHidden: false\n }\n //如果id重复,直接跳过不执行.\n if (this.GM.isRepetition(item.id)) {\n console.warn(`多折线id: ${item.id} 重复`);\n return false;\n }\n //多折线点位数据不符合,直接跳过\n if(!(item.paths && item.paths.length >= 2)){\n console.warn(`多折线paths数据错误`);\n return false;\n }\n if(item.config){\n cg = {...cg,...item.config};\n }\n let lineOption = {\n color: cg.color,\n opacity: cg.pellucidity,\n weight: cg.lineWidth,\n lineStyle: cg.lineType,\n path: item.paths || [],\n }\n //天地图没有hidden方法,所以用weight为0来实现\n if(cg.isHidden){\n lineOption.weight = 0;\n }\n let p = lineOption.path.map((itm,ind)=>{\n return new T.LngLat(itm[0],itm[1]);\n });\n let polyline = new T.Polyline(p,lineOption);\n t.state.gis.addOverLay(polyline);\n // 添加点击事件\n polyline.addEventListener( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(item.id,e);\n });\n polyline.addEventListener( 'mouseover', (e)=>{\n t.mouseOverGraphic(item.id,e);\n });\n polyline.addEventListener( 'mouseout', (e)=>{\n t.mouseOutGraphic(item.id,e);\n });\n //缓存图元的数据,便于后期操作\n let pts = item.paths.map((itm,ind)=>{\n return [...itm];\n });\n this.GM.setGraphic(item.id,polyline).setGraphicParam(\n item.id,\n {\n attributes: {\n ...item,\n paths: [pts],\n other: item\n },\n geometryType: 'polyline',\n geometry: {\n type: 'polyline',\n paths: [pts]\n }\n }\n );\n lsids.push(item.id);\n //state中缓存 line的id...用于数据判断\n t.state.lineIds.push(item.id);\n });\n if(type !== 'defined'){\n t.state.lineIds = lsids;\n // t.setState({\n // lineIds: lsids\n // });\n }\n }\n //更新线\n updateLine(mapLines){\n let t = this;\n //遍历添加线(图元)\n mapLines.map((item,index)=>{\n //判断图元是否存在.\n if (this.GM.isRepetition(item.id)) {\n //多折线点位数据不符合,直接跳过\n if(!(item.paths && item.paths.length >= 2)){\n console.warn(`多折线paths数据错误`);\n return false;\n }\n //获取原有的图元\n let gc = this.GM.getGraphic(item.id);\n //获取原有的线属性,转换key值\n let cg = {\n color: gc.getColor(),\n pellucidity: gc.getOpacity(),\n lineWidth: gc.getWeight(),\n lineType: gc.getLineStyle()\n };\n //重新初始化值\n if(item.config){\n cg = {...cg,...item.config};\n }\n //更新线\n gc.setColor(cg.color);\n gc.setOpacity(cg.pellucidity);\n gc.setLineStyle(cg.lineType);\n //根据参数判断是否显示多折线\n gc.setWeight(cg.lineWidth || 5);\n if(item.config && item.config.isHidden){\n gc.setWeight(0);\n }\n //更新经纬度\n let p = item.paths.map((itm,ind)=>{\n return new T.LngLat(itm[0],itm[1]);\n });\n gc.setLngLats(p);\n //处理数据 用于其他事件返回\n let pts = item.paths.map((itm,ind)=>{\n return [...itm];\n });\n this.GM.setGraphicParam(\n item.id,\n {\n attributes: {\n ...item,\n paths: [pts],\n other: item\n },\n geometryType: 'polyline',\n geometry: {\n type: 'polyline',\n paths: [pts]\n }\n }\n );\n }else{\n console.warn(`更新的多折线id不存在!`);\n return false;\n }\n });\n }\n //添加面\n addPolygon(mapPolygons){\n let t = this;\n let pgsids = [...t.state.polygonIds];\n //遍历添加面(图元)\n mapPolygons.map((item,index)=>{\n let cg = {\n lineType: 'solid',\n lineWidth: 5,\n lineColor: '#277ffa',\n lineOpacity: 1,\n color: '#fff',\n pellucidity: 0.5\n // isHidden: false //后期跟百度一起加\n }\n //如果id重复,直接跳过不执行.\n if (this.GM.isRepetition(item.id)) {\n console.warn(`多边形id: ${item.id} 重复`);\n return false;\n }\n //多边形点位数据不符合,直接跳过\n if(!(item.rings && item.rings.length >= 3)){\n console.warn(`多边形rings数据错误`);\n return false;\n }\n if(item.config){\n cg = {...cg,...item.config};\n }\n let polygonOption = {\n color: cg.lineColor,\n opacity: cg.lineOpacity,\n weight: cg.lineWidth,\n lineStyle: cg.lineType,\n fillColor: cg.color,\n fillOpacity: cg.pellucidity,\n path: item.rings || []\n }\n let r = polygonOption.path.map((itm,ind)=>{\n return new T.LngLat(itm[0],itm[1]);\n });\n let polygon = new T.Polygon(r,polygonOption);\n this.state.gis.addOverLay(polygon);\n //添加点击事件\n polygon.on( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(item.id,e);\n });\n polygon.on( 'mouseover', (e)=>{\n t.mouseOverGraphic(item.id,e);\n });\n polygon.on( 'mouseout', (e)=>{\n t.mouseOutGraphic(item.id,e);\n });\n //缓存图元的数据,便于后期操作\n let pts = item.rings.map((itm,ind)=>{\n return [...itm];\n });\n this.GM.setGraphic(item.id,polygon).setGraphicParam(\n item.id,\n {\n attributes: {\n ...item,\n rings: [pts],\n other: item\n },\n geometryType: 'polygon',\n geometry: {\n type: 'polygon',\n rings: [pts]\n },\n }\n );\n pgsids.push(item.id);\n\n });\n t.state.polygonIds = pgsids;\n // t.setState({\n // polygonIds: pgsids\n // })\n }\n //更新面\n updatePolygon(mapPolygons){\n let t = this;\n mapPolygons.map((item,index)=>{\n //判断图元是否存在.\n if (this.GM.isRepetition(item.id)) {\n //多边形点位数据不符合,直接跳过\n if(!(item.rings && item.rings.length >= 3)){\n console.warn(`多边形rings数据错误`);\n return false;\n }\n //获取原有的图元\n let gc = this.GM.getGraphic(item.id);\n //获取原有的面属性,转换key值\n let cg = {\n lineType: gc.getLineStyle(),\n lineWidth: gc.getWeight(),\n lineColor: gc.getColor(),\n lineOpacity: gc.getOpacity(),\n color: gc.getFillColor(),\n pellucidity: gc.getFillOpacity()\n }\n //重新初始化值\n if(item.config){\n cg = {...cg,...item.config};\n }\n gc.setLineStyle(cg.lineType);\n gc.setWeight(cg.lineWidth);\n gc.setColor(cg.lineColor);\n gc.setOpacity(cg.lineOpacity);\n gc.setFillColor(cg.color);\n gc.setFillOpacity(cg.pellucidity);\n let r = item.rings.map((itm,ind)=>{\n return new T.LngLat(itm[0],itm[1]);\n })\n gc.setLngLats(r);\n let pts = item.rings.map((itm,ind)=>{\n return [...itm];\n });\n this.GM.setGraphicParam(\n item.id,\n {\n attributes: {\n ...item,\n rings: [pts],\n other: item\n },\n geometryType: 'polygon',\n geometry: {\n type: 'polygon',\n rings: [pts]\n }\n }\n );\n }else{\n console.warn(`更新的多边形id不存在!`);\n return false;\n }\n });\n }\n //添加圆 circle\n addCircle(mapCircles){\n let t = this;\n let ccsids = [...t.state.circleIds];\n mapCircles.map((item,index)=>{\n let cg = {\n lineType: 'solid',\n lineWidth: 5,\n lineColor: '#277ffa',\n lineOpacity: 1,\n color: '#fff',\n pellucidity: 0.5\n // isHidden: false //后期跟百度一起加\n }\n //如果id重复,直接跳过不执行.\n if (this.GM.isRepetition(item.id)) {\n console.warn(`圆id: ${item.id} 重复`);\n return false;\n }\n //圆 点位数据不符合,直接跳过\n if(!item.longitude || !item.latitude){\n console.warn(`圆 经纬度 数据错误`);\n return false;\n }\n if(item.config){\n cg = {...cg,...item.config};\n }\n //初始化配置数据\n let circleOption = {\n color: cg.lineColor,\n opacity: cg.lineOpacity,\n weight: cg.lineWidth,\n lineStyle: cg.lineType,\n fillColor: cg.color,\n fillOpacity: cg.pellucidity\n }\n //创建圆对象\n let circle = new T.Circle(new T.LngLat(item.longitude,item.latitude),item.radius,circleOption);\n this.state.gis.addOverLay(circle);\n //添加点击事件\n circle.on( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(item.id,e);\n });\n circle.on( 'mouseover', (e)=>{\n t.mouseOverGraphic(item.id,e);\n });\n circle.on( 'mouseout', (e)=>{\n t.mouseOutGraphic(item.id,e);\n });\n //缓存图元的数据,便于后期操作\n this.GM.setGraphic(item.id,circle).setGraphicParam(\n item.id,\n {\n attributes: {...item,other: item},\n geometryType: 'circle',\n geometry: {\n type: 'circle',\n x: item.longitude,\n y: item.latitude,\n radius: item.radius\n }\n }\n );\n ccsids.push(item.id);\n });\n t.state.circleIds = ccsids;\n // t.setState({\n // circleIds: ccsids\n // })\n }\n //更新圆\n updateCircle(mapCircles){\n let t = this;\n mapCircles.map((item,index)=>{\n //判断图元是否存在.\n if (this.GM.isRepetition(item.id)) {\n //圆 点位数据不符合,直接跳过\n if(!item.longitude || !item.latitude){\n console.warn(`圆 经纬度 数据错误`);\n return false;\n }\n //获取原有的图元\n let gc = this.GM.getGraphic(item.id);\n //获取原有的面属性,转换key值\n let cg = {\n lineType: gc.getLineStyle(),\n lineWidth: gc.getWeight(),\n lineColor: gc.getColor(),\n lineOpacity: gc.getOpacity(),\n color: gc.getFillColor(),\n pellucidity: gc.getFillOpacity()\n }\n //重新初始化值\n if(item.config){\n cg = {...cg,...item.config};\n }\n gc.setLineStyle(cg.lineType);\n gc.setWeight(cg.lineWidth);\n gc.setColor(cg.lineColor);\n gc.setOpacity(cg.lineOpacity);\n gc.setFillColor(cg.color);\n gc.setFillOpacity(cg.pellucidity);\n gc.setRadius(item.radius || 0);\n gc.setCenter(new T.LngLat(item.longitude,item.latitude));\n\n //缓存图元的数据,便于后期操作\n this.GM.setGraphicParam(\n item.id,\n {\n attributes: {...item,other: item},\n geometryType: 'circle',\n geometry: {\n type: 'circle',\n x: item.longitude,\n y: item.latitude,\n radius: item.radius\n }\n }\n );\n }else{\n console.warn(`更新的圆id不存在!`);\n return false;\n }\n });\n }\n //添加海量点\n addPointCollection(data = []) {\n let t = this;\n data.map((item,index)=>{\n let d = item || {};\n let points = (d.points || []).map((d,i)=>{\n let p = new T.LngLat(d.lng,d.lat);\n p = t.state.gis.lngLatToContainerPoint(p);\n return [p.x,p.y];\n });\n let options = {\n size: d.size,\n shape: d.shape,\n color: d.color,\n width: t.state.gis.getSize().x,\n height: t.state.gis.getSize().y,\n mapId: t.props.mapId\n };\n //和arcgis使用同一个海量点\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\n t.morepoints.push({\n id: d.id,\n value: VotexpointCollection\n });\n VotexpointCollection.draw();\n });\n }\n //更新海量点\n updatePointCollection(data = []) {\n let t = this;\n data.map((ds,ind)=>{\n t.morepoints.map((item,index)=>{\n if(item.id == ds.id){\n let points = (ds.points || []).map((d,i)=>{\n let p = new T.LngLat(d.lng,d.lat);\n p = t.state.gis.lngLatToContainerPoint(p);\n return [p.x,p.y];\n });\n let options = {\n size: ds.size,\n shape: ds.shape,\n color: ds.color,\n width: t.state.gis.getSize().x,\n height: t.state.gis.getSize().y\n };\n item.value.reDraw(points,options);\n }\n })\n })\n }\n //清空单个海量点\n clearPointCollection(ids) {\n let t = this;\n ids.map((id,ind)=>{\n t.morepoints.map(function (item,index) {\n if(id == item.id){\n item.value.clear();\n }\n });\n });\n }\n //清空海量点\n clearAllPointCollection() {\n let t = this;\n t.morepoints.map(function (item,index) {\n item.value.clear();\n });\n }\n //热力图\n heatMapOverlay(d = {}){\n let t = this;\n let cg = {\n radius: 20,\n max: 100,\n visible: true,\n opacity: 0.7\n };\n if(d.config){\n cg = {...cg,...d.config};\n }\n if(!t.heatmap){\n t.heatmap = new TMapLib.HeatmapOverlay({\n visible: cg.visible\n });\n t.heatmap.initialize(t.state.gis,t.pointCollectionId);\n }\n let option = {\n radius: cg.radius,\n //百度是1-100,高德是0-1\n opacity: eval(cg.opacity) * 100,\n visible: cg.visible\n }\n if(cg.gradient){\n option.gradient = cg.gradient;\n }\n t.heatmap.setOptions(option);\n t.heatmap.setDataSet({\n max: cg.max,\n data: d.data || []\n });\n if(cg.visible){\n t.isHideHeatMap = false;\n t.heatmap.show();\n }else{\n t.isHideHeatMap = true;\n t.heatmap.hide();\n }\n }\n //信息窗体\n infoWindow (d = {}){\n let t = this;\n var cg = {\n width: 300,\n height: 172,\n };\n if (d.config) {\n cg = {...cg,...d.config};\n }\n var sContent = document.createElement('div');\n var infowindow = new T.InfoWindow();\n infowindow.setMinWidth(cg.width);\n infowindow.setMaxHeight(cg.height);\n \n if(d.lat && d.lng && d.content){\n render(d.content, sContent);\n infowindow.setContent(sContent);\n t.state.gis.openInfoWindow(infowindow, new T.LngLat(d.lng,d.lat));\n\n } else {\n infowindow && t.state.gis.closeInfoWindow();\n }\n }\n /*\n 参数\n geometryType:point/polyline/polygon/circle/rectangle 默认point\n parameter 样式 默认null 对象{}写入方式跟add方法一样(对应点线圆面)\n data //初始化数据 默认{id:'add'}\n */\n draw (obj) {\n var t = this,drawParam = {};\n //初始化参数\n drawParam.geometryType = obj.geometryType || 'point';\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\n drawParam.data = obj.data?{...obj.data}:{};\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\n //判断id是否存在\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\n if(len > -1){\n //如果id存在 删除存在的图元,清除drawId中的id数据\n switch(drawParam.geometryType){\n case 'point':\n this.markerTool.clear();\n break;\n case 'polyline':\n this.polylineTool.clear();\n break;\n case 'polygon':\n this.polygonTool.clear();\n break;\n case 'circle':\n this.circleTool.clear();\n break;\n case 'rectangle':\n this.rectangleTool.clear();\n break;\n }\n t.state.drawIds[drawParam.geometryType].splice(len,1);\n }\n let param = {};\n let paramgcr = {};\n window.map = this.state.gis;\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\n paramgcr.fillColor = drawParam.parameter.color;\n paramgcr.color = drawParam.parameter.lineColor;\n paramgcr.opacity = drawParam.parameter.lineOpacity;\n paramgcr.weight = drawParam.parameter.lineWidth;\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\n paramgcr.extData = {\n id: drawParam.data.id,\n attributes: {\n id: drawParam.data.id,\n config: {\n color: drawParam.parameter.color,\n lineColor: drawParam.parameter.lineColor,\n lineOpacity: drawParam.parameter.lineOpacity,\n pellucidity: drawParam.parameter.pellucidity,\n lineWidth: drawParam.parameter.lineWidth\n }\n },\n type: drawParam.geometryType\n };\n }\n switch(drawParam.geometryType){\n case 'point':\n param.icon = new T.Icon({\n iconUrl: drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\n iconSize: new T.Point(drawParam.parameter.width || 33,drawParam.parameter.height || 33),\n iconAnchor: new T.Point(drawParam.parameter.width?drawParam.parameter.width/2:16.5,\n drawParam.parameter.height?drawParam.parameter.height:33)\n });\n param.follow = false;\n if(this.markerTool)this.markerTool.close();\n this.markerTool = new T.MarkTool(this.state.gis, param);\n this.markerTool.open();\n this.markerTool.addEventListener('mouseup',(ob)=>{\n let { type, target, currentLnglat,currentMarker, allMarkers } = ob;\n t.GM.setGraphic(drawParam.data.id,currentMarker);\n let backobj = {\n id: drawParam.data.id,\n attributes: {\n id: drawParam.data.id,\n url: currentMarker.getIcon().options.iconUrl,\n config: {\n width: currentMarker.getIcon().options.iconSize.x,\n height: currentMarker.getIcon().options.iconSize.y\n }\n },\n geometry: {\n type: 'point',\n x: currentLnglat.lng,\n y: currentLnglat.lat\n },\n geometryType: 'point',\n mapLayer: currentMarker\n };\n //添加点击事件\n currentMarker.on( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(drawParam.data.id,e);\n });\n currentMarker.on( 'mouseover', (e)=>{\n t.mouseOverGraphic(drawParam.data.id,e);\n });\n currentMarker.on( 'mouseout', (e)=>{\n t.mouseOutGraphic(drawParam.data.id,e);\n });\n t.GM.setGraphicParam(drawParam.data.id,backobj);\n if('drawEnd' in t.props){\n t.props.drawEnd(backobj);\n }\n });\n break;\n case 'polyline':\n param.color = drawParam.parameter.color;\n param.opacity = drawParam.parameter.pellucidity;\n param.weight = drawParam.parameter.lineWidth;\n if(this.polylineTool)this.polylineTool.close();\n this.polylineTool = new T.PolylineTool(this.state.gis, param);\n this.polylineTool.open();\n this.polylineTool.addEventListener('draw',(ob)=>{\n let {type,target,currentLnglats,currentDistance,currentPolyline,allPolylines} = ob;\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\n return {lngX: item.lng,latX: item.lat};\n });\n t.GM.setGraphic(drawParam.data.id,currentPolyline);\n let backobj ={\n geometryType: 'polyline',\n distance: currentDistance,\n id: drawParam.data.id,\n attributes: {\n id: drawParam.data.id,\n config: {\n color: currentPolyline.getColor(),\n pellucidity: currentPolyline.getOpacity(),\n lineWidth: currentPolyline.getWeight()\n }\n },\n mapLayer: currentPolyline,\n geometry: {\n type: 'polyline',\n lnglatAry: lnglatAry,\n paths: getMaxMin(currentLnglats).path\n },\n lnglatAry: lnglatAry\n };\n //添加点击事件\n currentPolyline.on( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(drawParam.data.id,e);\n });\n currentPolyline.on( 'mouseover', (e)=>{\n t.mouseOverGraphic(drawParam.data.id,e);\n });\n currentPolyline.on( 'mouseout', (e)=>{\n t.mouseOutGraphic(drawParam.data.id,e);\n });\n t.GM.setGraphicParam(drawParam.data.id,backobj);\n if('drawEnd' in t.props){\n t.props.drawEnd(backobj);\n }\n });\n break;\n case 'polygon':\n if(this.polygonTool)this.polygonTool.close();\n this.polygonTool = new T.PolygonTool(this.state.gis, paramgcr);\n this.polygonTool.open();\n this.polygonTool.addEventListener('draw',(ob)=>{\n let {type,target,currentLnglats,currentArea,currentPolygon,allPolygons} = ob;\n t.GM.setGraphic(drawParam.data.id,currentPolygon);\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\n return {lngX: item.lng,latX: item.lat};\n });\n let backobj = {\n geometryType: 'polygon',\n id: drawParam.data.id,\n attributes: {\n id: drawParam.data.id,\n config: {\n color: currentPolygon.getFillColor(),\n lineColor: currentPolygon.getColor(),\n lineOpacity: currentPolygon.getOpacity(),\n pellucidity: currentPolygon.getFillOpacity(),\n lineWidth: currentPolygon.getWeight()\n }\n },\n mapLayer: currentPolygon,\n geometry: {\n type: 'polygon',\n lnglatAry: lnglatAry,\n rings: getMaxMin(currentLnglats).path,\n _extent: getMaxMin(currentLnglats)._extent,\n area: currentArea\n },\n lnglatAry: lnglatAry,\n area: currentArea\n };\n //添加点击事件\n currentPolygon.on( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(drawParam.data.id,e);\n });\n currentPolygon.on( 'mouseover', (e)=>{\n t.mouseOverGraphic(drawParam.data.id,e);\n });\n currentPolygon.on( 'mouseout', (e)=>{\n t.mouseOutGraphic(drawParam.data.id,e);\n });\n t.GM.setGraphicParam(drawParam.data.id,backobj);\n if('drawEnd' in t.props){\n t.props.drawEnd(backobj);\n }\n });\n break;\n case 'circle':\n if(this.circleTool)this.circleTool.close();\n this.circleTool = new T.CircleTool(this.state.gis, paramgcr);\n this.circleTool.open();\n this.circleTool.addEventListener('drawend',(ob)=>{\n let {type,target,currentCenter,currentRadius,currentCircle,allCircles} = ob;\n t.GM.setGraphic(drawParam.data.id,currentCircle);\n let area = Math.PI * Math.pow(currentRadius,2);\n let backobj = {\n geometryType: 'circle',\n id: drawParam.data.id,\n attributes: {\n id: drawParam.data.id,\n config: { \n color: currentCircle.getFillColor(),\n lineColor: currentCircle.getColor(),\n lineOpacity: currentCircle.getOpacity(),\n pellucidity: currentCircle.getFillOpacity(),\n lineWidth: currentCircle.getWeight()\n }\n },\n mapLayer: currentCircle,\n geometry: {\n type: 'circle',\n x: currentCenter.lng,\n y: currentCenter.lat,\n radius: currentRadius,\n area: area\n },\n area: area\n };\n //添加点击事件\n currentCircle.on( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(drawParam.data.id,e);\n });\n currentCircle.on( 'mouseover', (e)=>{\n t.mouseOverGraphic(drawParam.data.id,e);\n });\n currentCircle.on( 'mouseout', (e)=>{\n t.mouseOutGraphic(drawParam.data.id,e);\n });\n t.GM.setGraphicParam(drawParam.data.id,backobj);\n if('drawEnd' in t.props){\n t.props.drawEnd(backobj);\n }\n });\n break;\n case 'rectangle':\n if(this.rectangleTool)this.rectangleTool.close();\n this.rectangleTool = new T.RectangleTool(this.state.gis, paramgcr);\n this.rectangleTool.open();\n this.rectangleTool.addEventListener('draw',(ob)=>{\n let {type,target,currentBounds,currentRectangle,allRectangles} = ob;\n t.GM.setGraphic(drawParam.data.id,currentRectangle);\n let currentLnglats = [\n currentBounds.getNorthEast(),\n currentBounds.getSouthWest(),\n {lng: currentBounds.getSouthWest().lng,lat: currentBounds.getNorthEast().lat},\n {lng: currentBounds.getNorthEast().lng,lat: currentBounds.getSouthWest().lat}\n ];\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\n return {lngX: item.lng,latX: item.lat};\n });\n let area = currentBounds.getNorthEast().distanceTo(\n new T.LngLat(currentBounds.getNorthEast().lng,\n currentBounds.getSouthWest().lat)\n )* currentBounds.getNorthEast().distanceTo(\n new T.LngLat(currentBounds.getSouthWest().lng,\n currentBounds.getNorthEast().lat)\n );\n let backobj = {\n geometryType: 'polygon',\n id: drawParam.data.id,\n attributes: {\n id: drawParam.data.id,\n config: {\n color: currentRectangle.getFillColor(),\n lineColor: currentRectangle.getColor(),\n lineOpacity: currentRectangle.getOpacity(),\n pellucidity: currentRectangle.getFillOpacity(),\n lineWidth: currentRectangle.getWeight()\n }\n },\n mapLayer: currentRectangle,\n geometry: {\n type: 'polygon',\n lnglatAry: lnglatAry,\n rings: getMaxMin(currentLnglats).path,\n _extent: getMaxMin(currentLnglats)._extent,\n area: area\n },\n lnglatAry: lnglatAry,\n area: area\n };\n //添加点击事件\n currentRectangle.on( 'click', (e)=>{\n t.isNotClickMap = true;\n t.clickGraphic(drawParam.data.id,e);\n });\n currentRectangle.on( 'mouseover', (e)=>{\n t.mouseOverGraphic(drawParam.data.id,e);\n });\n currentRectangle.on( 'mouseout', (e)=>{\n t.mouseOutGraphic(drawParam.data.id,e);\n });\n t.GM.setGraphicParam(drawParam.data.id,backobj);\n if('drawEnd' in t.props){\n t.props.drawEnd(backobj);\n }\n });\n break;\n }\n //保存绘制图元的id便于后期比对\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\n }\n //关闭绘制图元\n closeDraw(){\n if(this.markerTool){\n this.markerTool.close();\n }\n if(this.polylineTool){\n this.polylineTool.close();\n }\n if(this.polygonTool){\n this.polygonTool.close();\n }\n if(this.rectangleTool){\n this.rectangleTool.close();\n }\n if(this.circleTool){\n this.circleTool.close();\n }\n }\n\n /*根据图元id,使图元变成可编辑状态*/\n doEdit(id){\n let t = this;\n let ms = t.getGraphic(id);\n if(!ms){\n return false;\n }\n if(ms.getType === 1){\n return false;\n }\n if(!!t.state.editId){\n t.endEdit();\n }\n this.isEditId = id;\n switch(ms.geometryType){\n case 'point':\n ms.mapLayer.enableDragging();\n // ms.mapLayer.addEventListener('dragend',t.editGraphicChange);\n if(ms.mapLayer.label){\n ms.mapLayer.addEventListener('drag',t.showLabel);\n }\n break;\n case 'polyline':\n case 'polygon':\n case 'rectangle':\n case 'circle':\n ms.mapLayer.enableEdit();\n break;\n }\n t.setState({\n editId: id\n })\n }\n //关闭编辑\n endEdit(){\n let t = this;\n let ms = t.getGraphic(t.state.editId);\n this.isEditId = null;\n switch(ms.geometryType){\n case 'point':\n ms.mapLayer.disableDragging();\n // ms.mapLayer.removeEventListener('dragend',t.editGraphicChange);\n if(ms.mapLayer.label){\n ms.mapLayer.removeEventListener('drag',t.showLabel);\n }\n break;\n case 'polyline':\n case 'polygon':\n case 'rectangle':\n case 'circle':\n ms.mapLayer.disableEdit();\n break;\n }\n t.editGraphicChange(t.state.editId);\n t.setState({\n editId: '',\n editGraphic: ''\n })\n }\n showLabel(){\n //这里的this指向调用的 点的对象\n this.showLabel();\n }\n //编辑变动后\n editGraphicChange(id){\n if(!id) return;\n let t = this;\n let ms = t.getGraphic(id);\n let obj = {\n id: id\n }\n switch(ms.geometryType){\n case 'point':\n obj.geometry = ms.geometry;\n obj.param = ms;\n break;\n case 'polyline':\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats())._extent;\n obj.geometry = ms.geometry;\n obj.param = ms;\n obj.distance = t.calculateDistance(ms.mapLayer.getLngLats());\n break;\n case 'polygon':\n case 'rectangle':\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats()[0])._extent;\n obj.geometry = ms.geometry;\n obj.param = ms;\n // obj.area = getPolygonArea(ms.mapLayer.getLngLats()[0]);\n // obj.area = t.polygonTool.getArea(ms.mapLayer.getLngLats()[0]);\n // 关闭多边形多个听绘制后,回显报错\n break;\n case 'circle':\n obj.geometry = ms.geometry;\n obj.param = ms;\n obj.area = Math.PI*Math.pow(ms.geometry.radius,2);\n break;\n }\n t.props.editGraphicChange(obj);\n }\n //删除图元\n removeGraphic(id,type){\n let t = this;\n if(!!this.GM.getGraphic(id)){\n //清除聚合点 避免异常\n if(t.clusterObj){\n t.clusterObj.removeMarker(this.GM.getGraphic(id));\n }\n //清除地图中图元\n this.state.gis.removeOverLay(this.GM.getGraphic(id));\n //删除含 label点的label(天地图的坑)\n if(type === 'point' && this.GM.getGraphic(id).label){\n this.state.gis.removeOverLay(this.GM.getGraphic(id).getLabel());\n }\n //清除对应id的图元数据缓存\n this.GM.removeGraphic(id);\n this.GM.removeGraphicParam(id);\n }else{\n return false;\n }\n for(let i = 0 ; i < t.movePoints.length ; i++){\n if(t.movePoints[i].id == id){\n t.movePoints.splice(i,1);\n continue;\n }\n }\n //清除 state中id的缓存\n let ids = [];\n switch(type){\n case 'point':\n ids = t.state.pointIds;\n break;\n case 'line':\n ids = t.state.lineIds;\n break;\n case 'polygon':\n ids = t.state.polygonIds;\n break;\n case 'circle':\n ids = t.state.circleIds;\n break;\n case 'draw':\n if(t.state.drawIds.point.indexOf(id) > -1){\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\n }\n if(t.state.drawIds.polyline.indexOf(id) > -1){\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\n }\n if(t.state.drawIds.polygon.indexOf(id) > -1){\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\n }\n if(t.state.drawIds.circle.indexOf(id) > -1){\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\n }\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\n }\n break;\n default:\n if(t.state.pointIds.indexOf(id) > -1){\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\n }\n if(t.state.lineIds.indexOf(id) > -1){\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\n }\n if(t.state.polygonIds.indexOf(id) > -1){\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\n }\n if(t.state.circleIds.indexOf(id) > -1){\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\n }\n break;\n }\n if(id == t.state.editId){\n t.state.editId = '';\n }\n if(ids.indexOf(id) != -1){\n ids.splice(ids.indexOf(id),1);\n }\n }\n //点击图元事件\n clickGraphic (id,e) {\n let t = this;\n if(typeof(t.props.clickGraphic) ===\"function\"){\n let param = t.getGraphic(id);\n let obj = {\n param,\n type: param.geometry.type,//图元类型\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\n left: e.containerPoint.x + t.mapLeft,\n e: e\n }\n t.props.clickGraphic(obj);\n }\n }\n //图元鼠标悬浮事件\n mouseOverGraphic(id,e){\n let t = this;\n if(typeof(t.props.mouseOverGraphic) === 'function'){\n if(id === t.isEditId){\n return false;\n }\n let obj = {\n e,id,\n param: t.getGraphic(id),\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\n left: e.containerPoint.x + t.mapLeft,\n }\n t.props.mouseOverGraphic(obj);\n }\n }\n //图元鼠标移开事件\n mouseOutGraphic(id,e){\n let t = this;\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\n if(id === t.isEditId){\n return false;\n }\n let obj = {\n e,id,\n param: t.getGraphic(id),\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\n left: e.containerPoint.x + t.mapLeft,\n }\n t.props.mouseOutGraphic(obj);\n }\n }\n //拖拽地图开始\n dragMapStart(){\n let t = this;\n if(typeof(t.props.dragMapStart) ===\"function\"){\n t.state.gis.addEventListener('dragstart', function(e) {\n let obj = t.getMapExtent();\n obj.e = e;\n //处理下数据,符合拖拽事件\n t.props.dragMapStart(obj);\n });\n }\n }\n //拖拽地图结束事件\n dragMapEnd(){\n let t = this;\n if(typeof(t.props.dragMapEnd) ===\"function\"){\n t.state.gis.addEventListener('dragend', function(e) {\n let obj = t.getMapExtent();\n obj.e = e;\n //处理下数据,符合拖拽事件\n t.props.dragMapEnd(obj);\n });\n }\n }\n //地图移动开始事件\n moveStart(){\n let t = this;\n if(typeof(t.props.moveStart) ===\"function\"){\n t.state.gis.addEventListener('movestart', function(e) {\n if(!t.isZoom){\n let obj = t.getMapExtent();\n obj.e = e;\n //处理下数据,符合拖拽事件\n t.props.moveStart(obj);\n }\n });\n }\n }\n //地图移动结束事件\n moveEnd(){\n let t = this;\n if(typeof(t.props.moveEnd) ===\"function\"){\n t.state.gis.addEventListener('moveend', function(e) {\n let xylist = [],mapPane = t.state.gis.getPanes().mapPane;\n if(mapPane.style.top){\n xylist = [mapPane.style.left,mapPane.style.top];\n }else{\n let matchList = mapPane.style.transform.match(/translate\\((-?\\d*)+px,\\s*(-?\\d*)+px\\)/) \n || mapPane.style.transform.match(/translate3d\\((-?\\d*)+px,\\s*(-?\\d*)+px,\\s*(-?\\d*)+px\\)/)\n || [];\n xylist = [matchList[1],matchList[2]];\n }\n //重画海量点\n $(`#${t.pointCollectionId}`).css({\n top: `${-xylist[1]}px`,\n left: `${-xylist[0]}px`\n })\n if(t.morepoints.length > 0){\n t.updatePointCollection(t.props.mapPointCollection);\n }\n if(t.isZoom){\n t.isZoom = false;\n }else{\n let obj = t.getMapExtent();\n obj.e = e;\n //处理下数据,符合拖拽事件\n t.props.moveEnd(obj);\n }\n });\n }\n }\n //地图更改缩放级别开始时触发触发此事件\n zoomStart(){\n let t =this;\n if(typeof(t.props.zoomStart) ===\"function\"){\n t.state.gis.addEventListener('zoomstart', function(e) {\n if(t.heatmap && !t.isHideHeatMap){\n t.heatmap.hide();\n }\n $(`#${t.pointCollectionId}`).css({display: 'none'});\n t.isZoom = true;\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.zoomStart(obj);\n });\n }\n }\n //地图更改缩放级别结束时触发触发此事件\n zoomEnd(){\n let t =this;\n if(typeof(t.props.zoomEnd) ===\"function\"){\n t.state.gis.addEventListener('zoomend', function(e) {\n //重画热力图\n if(t.heatmap && !t.isHideHeatMap){\n t.heatmap.show();\n t.heatmap.draw();\n }\n //重画海量点\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\n if(t.morepoints.length > 0){\n t.updatePointCollection(t.props.mapPointCollection);\n }\n //避免zoom切换后,chrome的旋转角度被替换\n for(let i in t.GM.allParam){\n if(t.GM.allParam[i].geometryType == 'point' && t.GM.allParam[i].deg){\n t.GM.getGraphic(i).getElement().style.transform = \n t.GM.getGraphic(i).getElement().style.transform + ` rotate(${t.GM.allParam[i].deg}deg)`;\n }\n }\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.zoomEnd(obj);\n });\n }\n }\n //地图点击事件\n clickMap(){\n let t =this;\n if(typeof(t.props.clickMap) ===\"function\"){\n t.state.gis.addEventListener('click', function(e) {\n if(t.isNotClickMap){\n t.isNotClickMap = false;\n }else{\n let obj = t.getMapExtent();\n obj.e = e;\n obj.clickLngLat = e.lnglat;\n obj.pixel = e.containerPoint;\n t.props.clickMap(obj);\n }\n });\n }\n }\n //点的跳动动画\n pointAnimation(id,marker){\n let t = this;\n //null时关闭跳动\n if(!!marker){\n if(t.animTimer[id]){\n clearInterval(t.animTimer[id]);\n }\n t.animTimer[id] = setInterval(()=>{\n //点被隐藏时,没有执行,定时不关\n if(marker.getIcon()){\n let shape = {...marker.getIcon().getIconAnchor()};\n //初始数据 点位有变动,重新刷新数据\n if(!t.animCount[id] || shape.y != t.animCount[id].now){\n t.animCount[id] = {\n start: shape.y,\n now: shape.y,\n notation: -1\n };\n }\n if(t.animCount[id].now - t.animCount[id].start == 20){\n t.animCount[id].notation = -1;\n }\n if(t.animCount[id].now - t.animCount[id].start == 0){\n t.animCount[id].notation = 1;\n }\n shape.y = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\n marker.getIcon().setIconAnchor(shape);\n }\n },35);\n }else{\n clearInterval(t.animTimer[id]);\n }\n }\n moveAnimation(){\n let t = this;\n if(t.moveToTimer){\n clearInterval(t.moveToTimer);\n }\n t.moveToTimer = setInterval(()=>{\n for(let i = 0;i < t.movePoints.length; i++){\n t.movePoints[i].waitTime += this.timer;\n t.movePoints[i].deleteTime -= this.timer;\n }\n t.movePoints.sort((x,y)=>{\n return y.waitTime -x.waitTime;\n });\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\n for(let i = 0;i < nowMovePoints.length; i++){\n let {id,oleLng,oldLat,rx,ry,deleteTime,totalTime,ddeg} = nowMovePoints[i];\n let gc = t.GM.getGraphic(id);\n if(!gc){\n clearInterval(t.moveToTimer[id]);\n }else{\n let tx = oleLng + rx * ((totalTime-deleteTime) / this.timer),\n ty = oldLat + ry* ((totalTime-deleteTime) / this.timer);\n let lglt = new T.LngLat(tx,ty);\n if(t.movePoints[i].url){\n gc.getIcon().setIconUrl(t.movePoints[i].url);\n }\n gc.setLngLat(lglt);\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\n //旋转角度\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${ddeg}deg)`;\n gc.getElement().style['-ms-transform'] = ` rotate(${ddeg}deg)`;\n if(gc.label){\n gc.showLabel();\n }\n // 移动过的 放后面再动\n t.movePoints[i].waitTime = 0;\n if(deleteTime <= 0){\n deleteIndex.push(i);\n }\n }\n }\n deleteIndex.sort((a,b)=>{return b-a});\n for(let i = 0 ; i < deleteIndex.length ; i++){\n t.movePoints.splice(deleteIndex[i],1);\n }\n if(nowMovePoints.length == 0){\n clearInterval(t.moveToTimer);\n }\n },10);\n }\n /*公共方法*/\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\n delay = delay || 3;\n let t = this;\n delay = eval(delay)*1000;\n let count = delay/this.timer,\n gc = this.GM.getGraphic(id);\n let s = gc.getLngLat(),e = new T.LngLat(lnglat[0],lnglat[1]);\n if(s.equals(e)){\n return false;\n }else{\n let ddeg = 0,url= null;\n //计算角度,旋转\n if(autoRotation){\n //自己实现旋转\n ddeg = t.rotateDeg(gc.getLngLat(),lnglat);\n if(urlleft && (ddeg < -90 && ddeg > -270)){\n ddeg += 180;\n url = urlleft;\n }else{\n url = urlright;\n }\n }\n //拆分延迟移动定位\n let rx = (e.lng - s.lng)/count, ry = (e.lat - s.lat)/count;\n let isHave = false;\n for(let i = 0 ; i < t.movePoints.length ;i++){\n if(t.movePoints[i].id == id){\n t.movePoints.splice(i,1,{\n oleLng: s.lng,\n oldLat: s.lat,\n id,rx,ry,ddeg,url,\n waitTime: 0,\n totalTime: delay,\n deleteTime: delay\n });\n isHave = true;\n }\n }\n if(!isHave){\n t.movePoints.push({\n oleLng: s.lng,\n oldLat: s.lat,\n id,rx,ry,ddeg,url,\n waitTime: 0,\n totalTime: delay,\n deleteTime: delay\n });\n }\n }\n }\n //点位角度旋转(以指向东(右)为0°)\n rotateDeg(sp,ep){\n let t = this;\n let spLngLat = sp;\n if(Array.isArray(sp)){\n spLngLat = new AMap.LngLat(sp[0],sp[1]);\n }\n let s = t.state.gis.lngLatToLayerPoint(spLngLat),\n //获取当前点位的经纬度\n e = t.state.gis.lngLatToLayerPoint(new T.LngLat(ep[0],ep[1])),\n deg = 0;\n if(e.x != s.x){\n var tan = (e.y - s.y)/(e.x - s.x),\n atan = Math.atan(tan);\n deg = atan*360/(2*Math.PI);\n //degree correction;\n if(e.x < s.x){\n deg = -deg + 90 + 90;\n\n } else {\n deg = -deg;\n }\n deg = -deg;\n }else {\n var disy = e.y- s.y ;\n var bias = 0;\n if(disy > 0)\n bias=-1;\n else\n bias = 1;\n if(disy == 0)\n bias = 0; \n deg = -bias * 90;\n }\n return deg;\n }\n //对比对象数据是否相等\n deepEqual(a,b){\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\n }\n //计算2点间距离 单位m 精确到个位\n calculatePointsDistance(f,s){\n let lnglat1 = new T.LngLat(f[0],f[1]);\n let lnglat2 = new T.LngLat(s[0],s[1]);\n return Math.round(lnglat1.distanceTo(lnglat2));\n }\n calculateDistance(ps){\n let t = this,totalDistance = 0;\n if (ps.length < 0) {return false;}\n for(let i= 0 ; i< ps.length ; i++){\n if(i < ps.length-1){\n if('distanceTo' in ps[i]){\n totalDistance += ps[i].distanceTo(ps[i + 1]);\n }else{\n totalDistance += new T.LngLat(ps[i][0],ps[i][1]).distanceTo(new T.LngLat(ps[i + 1][0],ps[i + 1][1]));\n }\n }\n }\n return Math.round(totalDistance*100)/100;\n }\n //数据解析(分析,新增,更新,删除对应的数据)\n dataMatch(oldData,newData,type){\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\n \n return {deletedDataIDs,addedData,updatedData,replacedData};\n }\n //处理需要增加图元的数据(避免意外问题)\n dealAdd(ary,ids){\n let ads = [], otherupds = [];\n for(let i = 0 ; i < ary.length ; i++){\n if(ids.indexOf(ary[i].id) > -1){\n otherupds.push(ary[i]);\n }else{\n ads.push(ary[i]);\n }\n }\n return {ads,otherupds};\n }\n //处理需要更新图元的数据(避免意外问题)\n dealUpdate(ary,ids){\n let upds = [], otherads = [];\n for(let i = 0 ; i < ary.length ; i++){\n if(ids.indexOf(ary[i].id) > -1){\n upds.push(ary[i]);\n }else{\n otherads.push(ary[i]);\n }\n }\n return {upds,otherads};\n }\n searchPoints(searchValue,pageSize=10,pageIndex=1){\n let t = this;\n return new Promise((resolve)=>{\n let searchConfig = {\n pageCapacity: pageSize*pageIndex, //每页显示的数量\n //接收数据的回调函数\n onSearchComplete: (result)=>{\n if(!result.pois){\n resolve([]);;\n }else{\n let list = result.pois.map((r)=>{\n return {\n id: r.hotPointID,\n longitude: r.lonlat.split(' ')[0],\n latitude: r.lonlat.split(' ')[1],\n canShowLabel: true,\n config: {\n labelContent: r.name,\n labelPixelY: 27\n },\n other: 'search'\n }\n })\n resolve(list);\n }\n } \n };\n //创建搜索对象\n let localsearch = new T.LocalSearch(t.state.gis, searchConfig);\n localsearch.search(searchValue);\n });\n\n }\n render(){\n let t = this;\n return (\n <div id={t.props.mapId} style={{width:'100%',height:'100%',zIndex: '1'}}></div>\n );\n }\n componentDidMount(){\n let t = this;\n this.loadMapComplete.then(()=>{\n t.mapLeft = document.getElementById(t.props.mapId).offsetLeft;\n t.mapTop = document.getElementById(t.props.mapId).offsetTop;\n t.init();\n //初始化完成后,再走更新\n t.isLoading = true;\n })\n }\n componentDidUpdate(prevProps, prevState) {//重新渲染结束\n let t = this;\n }\n componentWillReceiveProps(nextProps,prevProps) {//已加载组件,收到新的参数时调用\n let t = this;\n let receive = ()=>{\n //点/线旧数据\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\n let {point,polyline,polygon,circle,rectangle} = drawIds;\n //点/线新数据\n let {\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\n isOpenTrafficInfo,boundaryName,heatMapData,imageOverlays,\n mapVisiblePoints,setVisiblePoints,\n setCenter,mapCenter,\n setZoomLevel,mapZoomLevel,\n setCluster,mapCluster,\n isRangingTool,mapRangingTool,\n isRemove,mapRemove,\n mapDraw,isDraw,isCloseDraw,\n editGraphicId,isDoEdit,isEndEdit,\n mapPointCollection,isclearAllPointCollection,\n isClearAll,mapStyle,\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\n coverageType,\n infoWindowData\n } = nextProps;\n\n // 等待地图加载\n if(!t.state.mapCreated)return;\n // 设置地图样式\n if(!t.deepEqual(mapStyle,t.props.mapStyle)){\n if(mapStyle){\n t.state.gis.setStyle(mapStyle);\n }else{\n t.state.gis.removeStyle();\n }\n }\n // 切换地图矢量图和卫星图背景\n if(coverageType && !t.deepEqual(coverageType,t.props.coverageType)){\n t.setMapType(coverageType);\n }\n /*添加海量点*/\n if(mapPointCollection instanceof Array && t.props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,t.props.mapPointCollection)){\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.mapPointCollection,mapPointCollection,'id');\n t.clearPointCollection(deletedDataIDs);\n t.addPointCollection(addedData);\n t.updatePointCollection(updatedData);\n }\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\n t.clearAllPointCollection();\n }\n\n /*点数据处理\n pointData[2]相同的点,执行刷新\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\n pointData[0]数据中多余的id,执行删除\n */\n if(mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints,t.props.mapPoints)){\n let oldMapPoints = t.props.mapPoints;\n let newMapPoints = mapPoints;\n //过滤编辑的图元\n if(!!t.state.editId){\n oldMapPoints = t.props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\n }\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for(let id of deletedDataIDs){\n t.removeGraphic(id,'point');\n }\n //增加\n t.addPoint([...ads,...otherads]);\n //更新\n t.updatePoint([...upds,...otherupds]);\n }\n /*\n 面数据处理\n 先全删除,再新增\n */\n if(mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,t.props.mapPolygons)){\n let oldMapPolygons = t.props.mapPolygons;\n let newMapPolygons = mapPolygons;\n if(!!t.state.editId){\n oldMapPolygons = t.props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\n }\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for(let id of deletedDataIDs){\n t.removeGraphic(id,'polygon');\n }\n //增加\n t.addPolygon([...ads,...otherads]);\n //更新\n t.updatePolygon([...upds,...otherupds]);\n }\n /*\n 圆数据处理\n 先全删除,再新增\n */\n if(mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles,t.props.mapCircles)){\n let oldMapCircles = t.props.mapCircles;\n let newMapCircles = mapCircles;\n if(!!t.state.editId){\n oldMapCircles = t.props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\n }\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for(let id of deletedDataIDs){\n t.removeGraphic(id,'circle');\n }\n //增加\n t.addCircle([...ads,...otherads]);\n //更新\n t.updateCircle([...upds,...otherupds]);\n }\n /*\n 线数据处理\n 先全删除,再新增\n */\n if(mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines,t.props.mapLines)){\n let oldMapLines = t.props.mapLines;\n let newMapLines = mapLines;\n if(!!t.state.editId){\n oldMapLines = t.props.mapLines.filter((item)=>{return item.id !== editGraphicId});\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\n }\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for(let id of deletedDataIDs){\n t.removeGraphic(id,'line');\n }\n //增加\n t.addLine([...ads,...otherads]);\n //更新\n t.updateLine([...upds,...otherupds]); \n }\n //画其他特例线专用\n if(customizedBoundary instanceof Array && t.props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,t.props.customizedBoundary)){\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.customizedBoundary,customizedBoundary,'id');\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for(let id of deletedDataIDs){\n t.removeGraphic(id,'line');\n }\n t.updateLine(updatedData);\n t.addLine(addedData); \n }\n // //绘制边界线\n // if(boundaryName instanceof Array && !t.deepEqual(boundaryName,t.props.boundaryName)){\n // let newBDName = Set(boundaryName);\n // let oldBDName = Set(t.props.boundaryName);\n // let removedBoundaryName = oldBDName.subtract(newBDName).toJS();\n // let addedBoundaryName = newBDName.subtract(oldBDName).toJS();\n // t.removeBaiduBoundary(removedBoundaryName);\n // t.addBaiduBoundary(addedBoundaryName);\n // }\n // 获取热力图\n if(heatMapData && !t.deepEqual(heatMapData,t.props.heatMapData)){\n t.heatMapOverlay(heatMapData);\n }\n // 打开信息窗体\n if(infoWindowData && !t.deepEqual(infoWindowData,t.props.infoWindowData)){\n t.infoWindow(infoWindowData);\n }\n //添加图片图层\n if(imageOverlays instanceof Array && !t.deepEqual(imageOverlays,t.props.imageOverlays)){\n t.imageUrlOverlay(imageOverlays);\n }\n //图元编辑调用\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\n t.doEdit(editGraphicId);\n }\n //是否关闭图元编辑\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\n t.endEdit();\n }\n /*设置指定图元展示*/\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\n t.setVisiblePoints(mapVisiblePoints);\n }\n //绘制图元\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\n t.draw(mapDraw);\n }\n //关闭绘制\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\n t.closeDraw();\n }\n //清空地图\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\n t.clearAll();\n }\n //设置中心点\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\n if(!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])){\n t.setCenter(mapCenter);\n }\n }\n //设置比例尺\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\n if(!(t.getZoomLevel() == mapZoomLevel)){\n t.setZoomLevel(mapZoomLevel);\n }\n }\n // //是否打开路况\n // if(isOpenTrafficInfo){\n // t.openTrafficInfo();\n // }else{\n // t.hideTrafficInfo();\n // }\n //设置点聚合\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\n t.cluster(mapCluster);\n }\n //测距工具调用\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\n t.vtxRangingTool();\n }\n //单独删除操作\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\n mapRemove.map((item,index)=>{\n t.removeGraphic(item.id,item.type);\n });\n }\n //设置区域限制\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\n t.setAreaRestriction(areaRestriction);\n }\n //关闭区域限制\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\n t.clearAreaRestriction();\n }\n }\n if(t.waitReceive){\n clearInterval(t.waitReceive);\n }\n //等等天地图初始化\n if(t.isLoading){\n receive();\n }else{\n t.waitReceive = setInterval(()=>{\n if(t.isLoading){\n clearInterval(t.waitReceive);\n receive();\n }\n },100);\n }\n\n // 比例尺控件位置改变\n if(nextProps.showControl && JSON.stringify(nextProps.showControl)!=JSON.stringify(t.props.showControl)){\n t.showControl(nextProps);\n }\n // 比例尺移除\n if(!nextProps.showControl) {\n t.removeControl();\n }\n // 地图类型控件位置改变\n if(nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch)!=JSON.stringify(t.props.satelliteSwitch)){\n t.showMapTypeControl(nextProps);\n }\n }\n componentWillUnmount() {\n //关闭moveTo定时\n let t = this;\n if(t.moveToTimer){\n clearInterval(t.moveToTimer);\n }\n if(t.waitReceive){\n clearInterval(t.waitReceive);\n }\n if(t.waitInit){\n clearInterval(t.waitInit);\n }\n //关闭animation定时\n for(let j in t.animTimer){\n if(t.animTimer[j]){\n clearInterval(t.animTimer[j]);\n }\n }\n if(window.VtxMap && window.VtxMap[t.state.mapId])\n window.VtxMap[t.state.mapId]= null;\n }\n}\nexport default TMap;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TMap.js","names":["Set","Immutable","TMap","props","GM","graphicManage","getPolygonArea","pointCollectionId","isNotClickMap","isZoom","mapLeft","mapTop","clusterObj","clusterMarkers","markerTool","polylineTool","polygonTool","rectangleTool","circleTool","isEditId","moveToTimer","timer","movePoints","morepoints","heatmap","animTimer","animCount","waitInit","isLoading","waitReceive","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","mapZoomLevel","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","controlStyle","loadMapJs","t","loadMapComplete","Promise","resolve","reject","window","T","$","getScript","configUrl","mapServerURL","getTMapTK","Heatmap","PointCollection","ImageOverlays","all","then","clearInterval","setInterval","Tool","mapPoints","mapLines","mapPolygons","mapCircles","setVisiblePoints","mapVisiblePoints","mapCenter","mapCluster","mapPointCollection","showControl","boundaryName","areaRestriction","heatMapData","imageOverlays","coverageType","infoWindowData","createMap","setMapType","Array","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","heatMapOverlay","infoWindow","setTimeout","addPointCollection","setZoomLevel","cluster","satelliteSwitch","showMapTypeControl","setAreaRestriction","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","clickMap","setState","mapStyle","minZoom","maxZoom","VtxMap","AnchorConstant","tr","T_ANCHOR_TOP_RIGHT","tl","T_ANCHOR_TOP_LEFT","bl","T_ANCHOR_BOTTOM_LEFT","br","T_ANCHOR_BOTTOM_RIGHT","Map","toString","zoom","center","LngLat","setStyle","pointCollectionDiv","document","createElement","id","className","getPanes","mapPane","children","before","type","TMAP_NORMAL_MAP","TMAP_HYBRID_MAP","imageAry","map","item","index","sw","ne","url","opacity","displayOnMinLevel","displayOnMaxLevel","console","warn","isArray","swnep","LngLatBounds","ImageOverlay","addOverLay","clear","removeMarkers","clearAllPointCollection","getOverlays","removeOverLay","clearAll","gt","centerAndZoom","getZoom","sw_ne","bounds","setMaxBounds","obj","ls","getLngLats","ids","alnglat","getMoreGraphic","getType","push","getLngLat","getCenter","fitView","split","length","getViewport","setCenter","lng","lat","mapSize","width","getSize","x","height","y","nowCenter","getCurrentCenter","northEast","getBounds","getNorthEast","southWest","getSouthWest","getZoomLevel","radius","calculatePointsDistance","getLng","getLat","arg","ary","Object","prototype","apply","ms","filter","label","MarkerClusterer","markers","location","offset","scaleOffset","config","scaleControl","removeControl","navigationControl","control","Control","Scale","position","addControl","navigation","Zoom","css","right","top","left","bottom","mapTypeControl","MapType","lineTool","PolylineTool","showLabel","open","addEventListener","mapRangingTool","distance","currentDistance","lnglats","currentLnglats","gp","getGraphicParam","gg","getGraphic","p","pts","geometryType","mapLayer","geometry","attributes","longitude","latitude","other","paths","rings","getRadius","psids","cg","labelContent","labelPixelX","labelPixelY","markerContentX","markerContentY","zIndex","deg","isRepetition","markerContent","markerOption","zIndexOffset","marker","icon","Icon","iconUrl","iconSize","Point","iconAnchor","undefined","Marker","Label","text","canShowLabel","labelClass","BAnimationType","pointAnimation","getElement","style","transform","e","clickGraphic","mouseOverGraphic","mouseOutGraphic","setGraphic","setGraphicParam","gc","getIcon","options","setZIndexOffset","isAnimation","setLngLat","setIcon","moveTo","animationDelay","autoRotation","urlleft","moveAnimation","lsids","color","pellucidity","lineWidth","lineType","isHidden","lineOption","weight","lineStyle","path","itm","ind","Polyline","getColor","getOpacity","getWeight","getLineStyle","setColor","setOpacity","setLineStyle","setWeight","setLngLats","pgsids","lineColor","lineOpacity","polygonOption","fillColor","fillOpacity","r","Polygon","on","getFillColor","getFillOpacity","setFillColor","setFillOpacity","ccsids","circleOption","Circle","setRadius","data","d","points","i","lngLatToContainerPoint","size","shape","VotexpointCollection","GMapLib","value","draw","ds","reDraw","max","visible","TMapLib","HeatmapOverlay","initialize","option","eval","gradient","setOptions","setDataSet","isHideHeatMap","show","hide","sContent","infowindow","InfoWindow","setMinWidth","setMaxHeight","content","render","setContent","openInfoWindow","closeInfoWindow","drawParam","parameter","Date","getTime","len","indexOf","splice","param","paramgcr","extData","follow","close","MarkTool","ob","target","currentLnglat","currentMarker","allMarkers","backobj","drawEnd","currentPolyline","allPolylines","lnglatAry","lngX","latX","getMaxMin","PolygonTool","currentArea","currentPolygon","allPolygons","_extent","area","CircleTool","currentCenter","currentRadius","currentCircle","allCircles","Math","PI","pow","RectangleTool","currentBounds","currentRectangle","allRectangles","distanceTo","endEdit","enableDragging","enableEdit","disableDragging","removeEventListener","disableEdit","editGraphicChange","calculateDistance","removeMarker","getLabel","removeGraphic","removeGraphicParam","containerPoint","getMapExtent","xylist","matchList","match","updatePointCollection","display","allParam","clickLngLat","lnglat","pixel","getIconAnchor","now","start","notation","setIconAnchor","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","oleLng","oldLat","rx","ry","totalTime","ddeg","tx","ty","lglt","setIconUrl","a","b","delay","urlright","count","s","equals","rotateDeg","isHave","sp","ep","spLngLat","AMap","lngLatToLayerPoint","tan","atan","disy","bias","is","fromJS","f","lnglat1","lnglat2","round","ps","totalDistance","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","searchValue","pageSize","pageIndex","searchConfig","pageCapacity","onSearchComplete","result","pois","list","hotPointID","lonlat","name","localsearch","LocalSearch","search","getElementById","offsetLeft","offsetTop","init","prevProps","prevState","nextProps","receive","customizedBoundary","isOpenTrafficInfo","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isClearAll","isSetAreaRestriction","isClearAreaRestriction","deepEqual","removeStyle","dataMatch","clearPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","updatePoint","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","updateLine","doEdit","closeDraw","vtxRangingTool","clearAreaRestriction","JSON","stringify","j","React","Component"],"sources":["VtxMap/TMap/TMap.js"],"sourcesContent":["import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport {graphicManage,getMaxMin,getPolygonArea} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl, { getTMapTK } from '../../default';\r\nclass TMap extends React.Component{\r\n constructor(props){\r\n super(props);\r\n //初始化 图元管理方法\r\n this.GM = new graphicManage();\r\n this.getPolygonArea = getPolygonArea;\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection';//海量点canvas点位容器id class管理\r\n this.isNotClickMap = false;//阻止点击事件冒泡到地图\r\n this.isZoom = false;//阻止 zoom事件后触发的移动事件\r\n this.mapLeft = 0;//地图offset的Left值\r\n this.mapTop = 0;//地图offset的Top值\r\n this.clusterObj = null;//聚合对象\r\n this.clusterMarkers = null;//聚合的点集合\r\n this.markerTool = null;//绘制点对象\r\n this.polylineTool = null;//绘制线对象\r\n this.polygonTool = null;//绘制面对象\r\n this.rectangleTool = null;//绘制矩形对象\r\n this.circleTool = null;//绘制圆对象\r\n this.isEditId = null;//记录当前编辑的id,过滤移入移出事件\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.timer = 10; //动画播放频率\r\n this.movePoints = [];//move点的对象集合\r\n this.morepoints = [];//海量点集合\r\n this.heatmap = null;//热力图对象\r\n this.animTimer = {};//点位跳动动画\r\n this.animCount = {};//点位跳动动画 位置记录\r\n this.waitInit = null; //等加载定时\r\n this.isLoading = false; //是否加载完\r\n this.waitReceive = null;//等初始化,更新定时\r\n this.state={\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n // center: props.mapCenter,\r\n mapZoomLevel: props.mapZoomLevel,\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n },\r\n controlStyle: 'lt'\r\n }\r\n this.loadMapJs();\r\n }\r\n loadMapJs(){\r\n let t = this; \r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.T){\r\n resolve(window.T);\r\n }\r\n else{\r\n $.getScript(`${configUrl.mapServerURL}/T_content.js`,()=>{\r\n $.getScript(`//api.tianditu.gov.cn/api?v=4.0&tk=${getTMapTK()}`,()=>{\r\n let Heatmap = new Promise((resolve,reject)=>{\r\n //对象问题 和arcgis使用不同的热力图\r\n $.getScript(`${configUrl.mapServerURL}/Theatmap.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n let PointCollection = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n let ImageOverlays = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TImageOverlay.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n // let components = new Promise((resolve,reject)=>{\r\n // $.getScript(`${configUrl.mapServerURL}/T_toolComponents.js`,()=>{\r\n // resolve();\r\n // })\r\n // });\r\n Promise.all([Heatmap,PointCollection,ImageOverlays/*,components*/]).then(()=>{\r\n if(t.waitInit){\r\n clearInterval(t.waitInit);\r\n }\r\n t.waitInit = setInterval(()=>{\r\n if(T.Tool){\r\n clearInterval(t.waitInit);\r\n resolve(window.T);\r\n }\r\n },50)\r\n })\r\n })\r\n })\r\n }\r\n });\r\n }\r\n init(){\r\n let t = this;\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,\r\n setVisiblePoints,mapVisiblePoints,\r\n mapCenter,mapZoomLevel,\r\n mapCluster,mapPointCollection,\r\n showControl,boundaryName,\r\n areaRestriction,heatMapData,\r\n imageOverlays,coverageType,\r\n infoWindowData\r\n } = t.props;\r\n //创建地图\r\n t.createMap();\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType){\r\n t.setMapType(coverageType);\r\n }\r\n //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n // //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n //添加图片图层\r\n if(imageOverlays instanceof Array){\r\n t.imageUrlOverlay(imageOverlays);\r\n }\r\n /*设置指定图元展示*/\r\n if(mapVisiblePoints){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n // 画热力图\r\n if(heatMapData){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n // 打开信息窗体\r\n if(infoWindowData){\r\n t.infoWindow(infoWindowData);\r\n }\r\n //添加海量点\r\n if(mapPointCollection instanceof Array){\r\n setTimeout(()=>{\r\n t.addPointCollection(mapPointCollection);\r\n },100)\r\n }\r\n //设置比例尺\r\n if(mapZoomLevel){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置点聚合\r\n if(mapCluster){\r\n t.cluster(mapCluster);\r\n }\r\n // //展示比例尺\r\n if(showControl){\r\n t.showControl();\r\n }\r\n //添加地图类型控件\r\n if(t.props.satelliteSwitch){\r\n t.showMapTypeControl();\r\n }\r\n // //画边界线\r\n // if(boundaryName instanceof Array && boundaryName.length>0){\r\n // t.addBaiduBoundary(boundaryName);\r\n // }\r\n\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //初始化地图拖拽开始事件\r\n t.dragMapStart();\r\n //初始化地图拖拽结束事件\r\n t.dragMapEnd();\r\n //初始化地图移动开始事件\r\n t.moveStart();\r\n //初始化地图移动结束事件\r\n t.moveEnd();\r\n //初始化地图zoom改变开始事件\r\n t.zoomStart();\r\n //初始化地图zoom改变结束事件\r\n t.zoomEnd();\r\n //初始化地图点击事件\r\n t.clickMap();\r\n\r\n t.setState({\r\n mapCreated:true\r\n });\r\n }\r\n createMap(){\r\n let t = this;\r\n const {mapStyle,mapCenter=[],mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\r\n if(!window.VtxMap){\r\n window.VtxMap = {};\r\n }\r\n // 控件位置常量\r\n t.AnchorConstant = {\r\n tr: T_ANCHOR_TOP_RIGHT,\r\n tl: T_ANCHOR_TOP_LEFT,\r\n bl: T_ANCHOR_BOTTOM_LEFT,\r\n br: T_ANCHOR_BOTTOM_RIGHT\r\n }\r\n window.VtxMap[mapId] = t.state.gis = new T.Map(mapId.toString(),{\r\n //zoom等级,和百度一样默认10\r\n zoom: mapZoomLevel || 10,\r\n //必须有中心点,不传默认在北京(不设置中心点,报错)\r\n center: mapCenter?new T.LngLat(mapCenter[0] || 116.40769, mapCenter[1] || 39.906705)\r\n :new T.LngLat(116.40769, 39.89945),\r\n minZoom: minZoom || 1,\r\n maxZoom: maxZoom || 18\r\n });\r\n if(mapStyle){\r\n t.state.gis.setStyle(mapStyle);\r\n }\r\n //海量点图元容器\r\n t.pointCollectionId = `${mapId}_${t.pointCollectionId}`;\r\n let pointCollectionDiv = document.createElement('div');\r\n pointCollectionDiv.id = t.pointCollectionId;\r\n pointCollectionDiv.class = 'vtx_gmap_html_pointCollection_t';\r\n pointCollectionDiv.className = 'vtx_gmap_html_pointCollection_t';\r\n $(t.state.gis.getPanes().mapPane.children[0]).before(pointCollectionDiv);\r\n }\r\n setMapType(type){\r\n switch (type) {\r\n case 'sl':\r\n this.state.gis.setMapType(TMAP_NORMAL_MAP);\r\n break;\r\n case 'wx':\r\n this.state.gis.setMapType(TMAP_HYBRID_MAP);\r\n break;\r\n }\r\n }\r\n //增加图片图层\r\n imageUrlOverlay(imageAry){\r\n let t = this;\r\n imageAry.map((item,index)=>{\r\n let {sw,ne,url,opacity,displayOnMinLevel,displayOnMaxLevel} = item;\r\n if(!url){\r\n console.warn(`图片图层url数据错误`);\r\n return false;\r\n }\r\n if(sw && ne && Array.isArray(sw) && Array.isArray(ne) && sw[0] && sw[1] && ne[0] && ne[1]){\r\n let swnep = new T.LngLatBounds(\r\n new T.LngLat(sw[0],sw[1]),\r\n new T.LngLat(ne[0],ne[1])\r\n ),\r\n imageUrlOverlay = new T.ImageOverlay(\r\n url,\r\n swnep,\r\n {\r\n minZoom: displayOnMinLevel || 3,\r\n maxZoom: displayOnMaxLevel || 18\r\n }\r\n );\r\n t.state.gis.addOverLay(imageUrlOverlay);\r\n }else{\r\n console.warn(`区域经纬度sw/ne数据错误`);\r\n return false;\r\n }\r\n })\r\n }\r\n //清空地图所有图元\r\n clearAll (){\r\n let t = this;\r\n //清空热力图\r\n if(t.heatmap){\r\n t.heatmap.clear();\r\n }\r\n t.heatmap = null;\r\n //先清除所有标记\r\n if(t.clusterMarkers){\r\n t.clusterObj.removeMarkers(t.clusterMarkers);\r\n }\r\n t.clearAllPointCollection();\r\n //清空点\r\n t.state.gis.getOverlays().map((item,index)=>{\r\n t.state.gis.removeOverLay(item);\r\n })\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //清空历史数据记录\r\n t.setState({\r\n pointIds: [],\r\n lineIds: [],\r\n polygonIds: [],\r\n circleIds: [],\r\n boundaryInfo: [],\r\n drawIds: {\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n });\r\n }\r\n /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n if(gt){\r\n t.state.gis.centerAndZoom(new T.LngLat(gt[0], gt[1]),t.state.gis.getZoom());\r\n }else{\r\n t.state.gis.centerAndZoom(new T.LngLat(116.400433, 39.906705),t.state.gis.getZoom());\r\n }\r\n }\r\n /*地图区域限制*/\r\n setAreaRestriction(sw_ne){\r\n let t =this;\r\n let bounds = new T.LngLatBounds(new T.LngLat(sw_ne[0][0],sw_ne[0][1]),new T.LngLat(sw_ne[1][0],sw_ne[1][1]))\r\n t.state.gis.setMaxBounds(bounds);\r\n }\r\n clearAreaRestriction(){\r\n this.state.gis.setMaxBounds(null);\r\n }\r\n //设置指定图元展示 高德只有zoom和center全适应,单适应暂时无法实现\r\n setVisiblePoints(obj){\r\n let t = this;\r\n let ls = [];\r\n let {pointIds,lineIds,polygonIds,circleIds} = t.state;\r\n let getLngLats = (ids)=>{\r\n let alnglat = [];\r\n t.GM.getMoreGraphic(ids).map((item,index)=>{\r\n //根据天地图 覆盖物类型获取lnglat\r\n switch(item.getType()){\r\n case 1:\r\n case 2:\r\n alnglat.push(item.getLngLat());\r\n break;\r\n case 4:\r\n alnglat.push(...item.getLngLats());\r\n break;\r\n case 5://多边形 返回的是 三维数组\r\n alnglat.push(...item.getLngLats()[0]);\r\n break;\r\n case 8:\r\n alnglat.push(item.getCenter());\r\n break;\r\n }\r\n });\r\n return alnglat;\r\n }\r\n //算出 要展示的图元点位\r\n switch(obj.fitView){\r\n case 'point':\r\n ls = getLngLats(pointIds);\r\n break;\r\n case 'line':\r\n ls = getLngLats(lineIds);\r\n break;\r\n case 'polygon':\r\n ls = getLngLats(polygonIds);\r\n break;\r\n case 'circle':\r\n ls = getLngLats(circleIds);\r\n break;\r\n case 'all':\r\n ls = getLngLats([...pointIds,...lineIds,...polygonIds,...circleIds]);\r\n break;\r\n default:\r\n let ids = [];\r\n if(obj.fitView instanceof Array){\r\n ids = obj.fitView;\r\n }else if(typeof(obj.fitView) === 'string'){\r\n ids = obj.fitView.split(',');\r\n }\r\n if(ids[0] instanceof Array){\r\n ls = ids.map((item)=>{\r\n return new T.LngLat(item[0],item[1]);\r\n })\r\n }else{\r\n ls = getLngLats(ids);\r\n }\r\n break;\r\n }\r\n if(ls.length >= 1){\r\n let {center, zoom} = (t.state.gis.getViewport(ls));\r\n if(obj.type == 'zoom'){\r\n t.setZoomLevel(zoom);\r\n }else if(obj.type == 'center'){\r\n t.setCenter([center.lng,center.lat]);\r\n } else {\r\n t.state.gis.centerAndZoom(center, zoom);\r\n }\r\n }\r\n }\r\n\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n t.state.gis.centerAndZoom(t.state.gis.getCenter(),zoom);\r\n }\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t =this;\r\n return {\r\n lat: t.state.gis.getCenter().lat,\r\n lng: t.state.gis.getCenter().lng\r\n };\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t = this;\r\n return t.state.gis.getZoom();\r\n }\r\n //获取当前地图边框左右边角经纬度,中心点位置,和比例尺,半径距离\r\n getMapExtent(){\r\n let t =this;\r\n let {gis} = t.state;\r\n let obj = {\r\n mapSize: {width:gis.getSize().x,height:gis.getSize().y},\r\n nowCenter: t.getCurrentCenter(),\r\n northEast: {\r\n lat: gis.getBounds().getNorthEast().lat,\r\n lng: gis.getBounds().getNorthEast().lng\r\n },\r\n southWest: {\r\n lat: gis.getBounds().getSouthWest().lat,\r\n lng: gis.getBounds().getSouthWest().lng\r\n },\r\n zoom: t.getZoomLevel()\r\n }\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],[\r\n gis.getBounds().getNorthEast().getLng(),gis.getBounds().getNorthEast().getLat()]);\r\n return obj;\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster (arg) {\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n // return !item && item != 0 ? false : true;\r\n return item && item.getType() === 2 && !item.label;\r\n });\r\n //聚合的对象,便于后期清除时调用\r\n this.clusterObj = new T.MarkerClusterer(t.state.gis, {markers: ms});\r\n //记录聚合的点,便于后期清除\r\n this.clusterMarkers = ms;\r\n }\r\n //设置比例尺\r\n showControl(props){\r\n let t = this,location = t.AnchorConstant['tr'],offset=null, scaleOffset=null;\r\n let config = props || t.props;\r\n if(t.scaleControl) {\r\n t.state.gis.removeControl(t.scaleControl);\r\n }\r\n if(t.navigationControl) {\r\n t.state.gis.removeControl(t.navigationControl);\r\n }\r\n if(config.showControl.location){\r\n location = t.AnchorConstant[config.showControl.location];\r\n }\r\n // 添加比例尺\r\n let control = new T.Control.Scale({position: location, offset: scaleOffset});\r\n t.state.gis.addControl(control);\r\n t.scaleControl = control;\r\n // 缩放地图\r\n let navigation = new T.Control.Zoom({position: location, offset}); \r\n t.state.gis.addControl(navigation);\r\n t.navigationControl = navigation\r\n\r\n // TODO不支持偏移,手动偏移\r\n if (config.showControl.offset && config.showControl.offset.length > 0) {\r\n if (location == \"topright\") {\r\n $('div.tdt-top.tdt-right').css({ right: config.showControl.offset[0], top: config.showControl.offset[1] })\r\n } else if (location == \"topleft\") {\r\n $('div.tdt-top.tdt-left').css({ left: config.showControl.offset[0], top: config.showControl.offset[1] })\r\n } else if (location == \"bottomleft\") {\r\n $('div.tdt-bottom.tdt-left').css({ left: config.showControl.offset[0], bottom: config.showControl.offset[1] })\r\n } else if (location == \"bottomright\") {\r\n $('div.tdt-bottom.tdt-right').css({ right: config.showControl.offset[0], bottom: config.showControl.offset[1] })\r\n }\r\n }\r\n }\r\n\r\n // 移除比例尺\r\n removeControl() {\r\n const t = this;\r\n if(t.scaleControl) {\r\n t.state.gis.removeControl(t.scaleControl);\r\n t.scaleControl = null;\r\n }\r\n if(t.navigationControl) {\r\n t.state.gis.removeControl(t.navigationControl);\r\n t.navigationControl = null;\r\n }\r\n }\r\n\r\n //展示地图切换控件\r\n showMapTypeControl (props){\r\n let t = this,location = t.AnchorConstant['br'],offset=null;\r\n let config = props || t.props;\r\n if(t.mapTypeControl) {\r\n t.state.gis.removeControl(t.mapTypeControl);\r\n }\r\n if(config.satelliteSwitch.location){\r\n location = t.AnchorConstant[config.satelliteSwitch.location];\r\n }\r\n // 地图切换控件\r\n let control = new T.Control.MapType({position: location, offset: offset});\r\n t.state.gis.addControl(control);\r\n t.mapTypeControl = control;\r\n\r\n // TODO不支持偏移,手动偏移\r\n if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {\r\n if (location == \"topright\") {\r\n $('div.tdt-top.tdt-right').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"topleft\") {\r\n $('div.tdt-top.tdt-left').css({ left: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"bottomleft\") {\r\n $('div.tdt-bottom.tdt-left').css({ left: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\r\n } else if (location == \"bottomright\") {\r\n $('div.tdt-bottom.tdt-right').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] })\r\n }\r\n }\r\n }\r\n //测距\r\n vtxRangingTool () {\r\n let t = this;\r\n //将map对象放到全局中.是因为天地图api中使用了全局map.(坑B)\r\n window.map = t.state.gis;\r\n //创建标注工具对象\r\n let lineTool = new T.PolylineTool(t.state.gis,{showLabel: true});\r\n lineTool.open();\r\n this.isNotClickMap = true;\r\n //监听每次点击事件,阻止地图点击事件冒泡\r\n lineTool.addEventListener('addpoint',()=>{\r\n this.isNotClickMap = true;\r\n })\r\n lineTool.addEventListener('draw',(obj)=>{\r\n if('mapRangingTool' in t.props){\r\n t.props.mapRangingTool({\r\n distance: obj.currentDistance,\r\n lnglats: obj.currentLnglats.map((item,index)=>{\r\n return [item.lng,item.lat];\r\n })\r\n });\r\n }\r\n })\r\n }\r\n //获取图元数据\r\n getGraphic (id) {\r\n let t = this;\r\n if(!id){\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if(!gg){\r\n return false;\r\n }\r\n let p = {},pts = [],lng = 0,lat = 0;\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.getLngLat().getLng();\r\n lat = gg.getLngLat().getLat();\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n pts = gg.getLngLats().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n pts = gg.getLngLats()[0].map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'circle':\r\n lng = gg.getCenter().getLng();\r\n lat = gg.getCenter().getLat();\r\n let radius = gg.getRadius();\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n return p;\r\n }\r\n //添加点\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item,index)=>{\r\n let cg = {\r\n width: 33,\r\n height: 33,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 33,\r\n markerContentX: -16.5,\r\n markerContentY: -33,\r\n zIndex: 100,\r\n deg: 0\r\n }\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //覆盖物参数\r\n let markerOption = {\r\n zIndexOffset: cg.zIndex,\r\n opacity: 1\r\n }\r\n let marker = null;\r\n //判断html还是图片\r\n if(!!item.markerContent){\r\n markerOption.icon = new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/touming.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n });\r\n if(cg.zIndex !== undefined || cg.zIndex !== null){\r\n markerOption.zIndexOffset = cg.zIndex;\r\n }\r\n //获得覆盖物对象\r\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\r\n t.state.gis.addOverLay(marker);\r\n //-12,+15测试的阈值\r\n marker.label = new T.Label({\r\n text: item.markerContent,\r\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\r\n });\r\n marker.showLabel();\r\n //统一加点\r\n }else{\r\n markerOption.icon = new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n });\r\n if(cg.zIndex !== undefined || cg.zIndex !== null){\r\n markerOption.zIndexOffset = cg.zIndex;\r\n }\r\n //获得覆盖物对象\r\n marker = new T.Marker(new T.LngLat(item.longitude,item.latitude),markerOption);\r\n //添加点击事件\r\n //统一加点\r\n t.state.gis.addOverLay(marker);\r\n //是否展示label\r\n if(item.canShowLabel){\r\n let labelClass = item.labelClass || 'label-content';\r\n marker.label = new T.Label({\r\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new T.Point((cg.labelPixelX - (cg.width/2)),cg.labelPixelY + (cg.markerContentY + cg.height/2))\r\n })\r\n marker.showLabel();\r\n }\r\n }\r\n //点跳动动画\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,marker);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n if(cg.deg){\r\n marker.getElement().style.transform = marker.getElement().style.transform + ` rotate(${cg.deg}deg)`;\r\n marker.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\r\n }\r\n marker.addEventListener( 'click', (e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n marker.addEventListener( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n marker.addEventListener( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n psids.push(item.id);\r\n //缓存图元的数据,偏于后期操作\r\n this.GM.setGraphic(\r\n item.id,marker\r\n ).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n },\r\n deg: cg.deg\r\n }\r\n );\r\n });\r\n if(type !== 'defined'){\r\n t.state.pointIds = psids;\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n }\r\n }\r\n //更新点\r\n updatePoint(mapPoints){\r\n let t = this;\r\n mapPoints.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let cg = null;\r\n if(!!item.markerContent){\r\n cg = {\r\n markerContentX: (item.config || {}).markerContentX || gc.getIcon().options.iconSize.x,\r\n markerContentY: (item.config || {}).markerContentY || gc.getIcon().options.iconSize.y,\r\n //暂时不设置旋转角度,后期维护设置吧\r\n // deg: item.config.deg,\r\n zIndex: (item.config || {}).zIndex || gc.options.zIndexOffset\r\n };\r\n //设置点的标记添加顺序\r\n // gc.setZindex(cg.zIndex);\r\n gc.setZIndexOffset(cg.zIndex);\r\n if(!(item.config || {}).isAnimation){\r\n //修改经纬度\r\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\r\n }\r\n if(gc.label){\r\n this.state.gis.removeOverLay(gc.label);\r\n }\r\n gc.label = new T.Label({\r\n text: item.markerContent,\r\n offset: new T.Point(cg.markerContentX-12,cg.markerContentY+15)\r\n });\r\n gc.showLabel();\r\n }else{\r\n cg = {\r\n width: (item.config || {}).width || 33,\r\n height: (item.config || {}).height || 33,\r\n markerContentX: (item.config || {}).markerContentX || -16.5,\r\n markerContentY: (item.config || {}).markerContentY || -33,\r\n //暂时不设置旋转角度,后期维护设置吧\r\n deg: (item.config || {}).deg,\r\n zIndex: (item.config || {}).zIndex || 100,\r\n labelClass: (item.config || {}).labelContent || 'label-content',\r\n labelContent: '',\r\n BAnimationType: (item.config || {}).BAnimationType,\r\n labelPixelX: 0,\r\n labelPixelY: 33,\r\n };\r\n gc.setIcon(new T.Icon({\r\n iconUrl: item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(cg.width,cg.height),\r\n iconAnchor: new T.Point(-cg.markerContentX,-cg.markerContentY)\r\n }));\r\n if(!(item.config || {}).isAnimation){\r\n //修改经纬度\r\n gc.setLngLat(new T.LngLat(item.longitude,item.latitude));\r\n }\r\n //是否展示label\r\n if(item.canShowLabel){\r\n if(gc.label){\r\n this.state.gis.removeOverLay(gc.label);\r\n }\r\n // cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):gc.getLabel().options.offset.x;\r\n // cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):gc.getLabel().options.offset.y;\r\n // cg.labelContent= (item.config || {}).labelContent || gc.getLabel().options.text;\r\n cg.labelPixelX= (item.config || {}).labelPixelX?(item.config || {}).labelPixelX - (cg.width/2):cg.labelPixelX - cg.width/2;\r\n cg.labelPixelY= (item.config || {}).labelPixelY?(item.config || {}).labelPixelY + (cg.markerContentY + cg.height/2):cg.labelPixelY + (cg.markerContentY + cg.height/2);\r\n cg.labelContent= (item.config || {}).labelContent || '';\r\n let labelClass = item.labelClass || 'label-content';\r\n //更新label\r\n gc.label = new T.Label({\r\n text: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new T.Point(cg.labelPixelX,cg.labelPixelY)\r\n })\r\n gc.showLabel();\r\n }\r\n //设置点的标记添加顺序\r\n gc.setZIndexOffset(cg.zIndex);\r\n }\r\n //点跳动动画\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n t.pointAnimation(item.id,gc);\r\n }else{\r\n t.pointAnimation(item.id,null);\r\n }\r\n if(cg.deg){\r\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${cg.deg}deg)`;\r\n gc.getElement().style['-ms-transform'] = ` rotate(${cg.deg}deg)`;\r\n }\r\n //动画效果会延迟执行经纬度的切换\r\n if((item.config || {}).isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],(item.config || {}).animationDelay,(item.config || {}).autoRotation,item.url,item.urlleft);\r\n }\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n },\r\n deg: cg.deg || 0\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.moveAnimation();\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let lineOption = {\r\n color: cg.color,\r\n opacity: cg.pellucidity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n path: item.paths || [],\r\n }\r\n //天地图没有hidden方法,所以用weight为0来实现\r\n if(cg.isHidden){\r\n lineOption.weight = 0;\r\n }\r\n let p = lineOption.path.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n let polyline = new T.Polyline(p,lineOption);\r\n t.state.gis.addOverLay(polyline);\r\n // 添加点击事件\r\n polyline.addEventListener( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n polyline.addEventListener( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polyline.addEventListener( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphic(item.id,polyline).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n paths: [pts],\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: [pts]\r\n }\r\n }\r\n );\r\n lsids.push(item.id);\r\n //state中缓存 line的id...用于数据判断\r\n t.state.lineIds.push(item.id);\r\n });\r\n if(type !== 'defined'){\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\r\n // });\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines){\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n //获取原有的线属性,转换key值\r\n let cg = {\r\n color: gc.getColor(),\r\n pellucidity: gc.getOpacity(),\r\n lineWidth: gc.getWeight(),\r\n lineType: gc.getLineStyle()\r\n };\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //更新线\r\n gc.setColor(cg.color);\r\n gc.setOpacity(cg.pellucidity);\r\n gc.setLineStyle(cg.lineType);\r\n //根据参数判断是否显示多折线\r\n gc.setWeight(cg.lineWidth || 5);\r\n if(item.config && item.config.isHidden){\r\n gc.setWeight(0);\r\n }\r\n //更新经纬度\r\n let p = item.paths.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n gc.setLngLats(p);\r\n //处理数据 用于其他事件返回\r\n let pts = item.paths.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n paths: [pts],\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: [pts]\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期跟百度一起加\r\n }\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let polygonOption = {\r\n color: cg.lineColor,\r\n opacity: cg.lineOpacity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n path: item.rings || []\r\n }\r\n let r = polygonOption.path.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n });\r\n let polygon = new T.Polygon(r,polygonOption);\r\n this.state.gis.addOverLay(polygon);\r\n //添加点击事件\r\n polygon.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n polygon.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polygon.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphic(item.id,polygon).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: [pts],\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: [pts]\r\n },\r\n }\r\n );\r\n pgsids.push(item.id);\r\n\r\n });\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\r\n // })\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons){\r\n let t = this;\r\n mapPolygons.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: gc.getLineStyle(),\r\n lineWidth: gc.getWeight(),\r\n lineColor: gc.getColor(),\r\n lineOpacity: gc.getOpacity(),\r\n color: gc.getFillColor(),\r\n pellucidity: gc.getFillOpacity()\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n gc.setLineStyle(cg.lineType);\r\n gc.setWeight(cg.lineWidth);\r\n gc.setColor(cg.lineColor);\r\n gc.setOpacity(cg.lineOpacity);\r\n gc.setFillColor(cg.color);\r\n gc.setFillOpacity(cg.pellucidity);\r\n let r = item.rings.map((itm,ind)=>{\r\n return new T.LngLat(itm[0],itm[1]);\r\n })\r\n gc.setLngLats(r);\r\n let pts = item.rings.map((itm,ind)=>{\r\n return [...itm];\r\n });\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: [pts],\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: [pts]\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n mapCircles.map((item,index)=>{\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期跟百度一起加\r\n }\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n color: cg.lineColor,\r\n opacity: cg.lineOpacity,\r\n weight: cg.lineWidth,\r\n lineStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n }\r\n //创建圆对象\r\n let circle = new T.Circle(new T.LngLat(item.longitude,item.latitude),item.radius,circleOption);\r\n this.state.gis.addOverLay(circle);\r\n //添加点击事件\r\n circle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(item.id,e);\r\n });\r\n circle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n circle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n this.GM.setGraphic(item.id,circle).setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }\r\n );\r\n ccsids.push(item.id);\r\n });\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\r\n // })\r\n }\r\n //更新圆\r\n updateCircle(mapCircles){\r\n let t = this;\r\n mapCircles.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: gc.getLineStyle(),\r\n lineWidth: gc.getWeight(),\r\n lineColor: gc.getColor(),\r\n lineOpacity: gc.getOpacity(),\r\n color: gc.getFillColor(),\r\n pellucidity: gc.getFillOpacity()\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n gc.setLineStyle(cg.lineType);\r\n gc.setWeight(cg.lineWidth);\r\n gc.setColor(cg.lineColor);\r\n gc.setOpacity(cg.lineOpacity);\r\n gc.setFillColor(cg.color);\r\n gc.setFillOpacity(cg.pellucidity);\r\n gc.setRadius(item.radius || 0);\r\n gc.setCenter(new T.LngLat(item.longitude,item.latitude));\r\n\r\n //缓存图元的数据,便于后期操作\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加海量点\r\n addPointCollection(data = []) {\r\n let t = this;\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = (d.points || []).map((d,i)=>{\r\n let p = new T.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainerPoint(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: t.state.gis.getSize().x,\r\n height: t.state.gis.getSize().y,\r\n mapId: t.props.mapId\r\n };\r\n //和arcgis使用同一个海量点\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n });\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []) {\r\n let t = this;\r\n data.map((ds,ind)=>{\r\n t.morepoints.map((item,index)=>{\r\n if(item.id == ds.id){\r\n let points = (ds.points || []).map((d,i)=>{\r\n let p = new T.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainerPoint(p);\r\n return [p.x,p.y];\r\n });\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: t.state.gis.getSize().x,\r\n height: t.state.gis.getSize().y\r\n };\r\n item.value.reDraw(points,options);\r\n }\r\n })\r\n })\r\n }\r\n //清空单个海量点\r\n clearPointCollection(ids) {\r\n let t = this;\r\n ids.map((id,ind)=>{\r\n t.morepoints.map(function (item,index) {\r\n if(id == item.id){\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n //清空海量点\r\n clearAllPointCollection() {\r\n let t = this;\r\n t.morepoints.map(function (item,index) {\r\n item.value.clear();\r\n });\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}){\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7\r\n };\r\n if(d.config){\r\n cg = {...cg,...d.config};\r\n }\r\n if(!t.heatmap){\r\n t.heatmap = new TMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.heatmap.initialize(t.state.gis,t.pointCollectionId);\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: eval(cg.opacity) * 100,\r\n visible: cg.visible\r\n }\r\n if(cg.gradient){\r\n option.gradient = cg.gradient;\r\n }\r\n t.heatmap.setOptions(option);\r\n t.heatmap.setDataSet({\r\n max: cg.max,\r\n data: d.data || []\r\n });\r\n if(cg.visible){\r\n t.isHideHeatMap = false;\r\n t.heatmap.show();\r\n }else{\r\n t.isHideHeatMap = true;\r\n t.heatmap.hide();\r\n }\r\n }\r\n //信息窗体\r\n infoWindow (d = {}){\r\n let t = this;\r\n var cg = {\r\n width: 300,\r\n height: 172,\r\n };\r\n if (d.config) {\r\n cg = {...cg,...d.config};\r\n }\r\n var sContent = document.createElement('div');\r\n var infowindow = new T.InfoWindow();\r\n infowindow.setMinWidth(cg.width);\r\n infowindow.setMaxHeight(cg.height);\r\n \r\n if(d.lat && d.lng && d.content){\r\n render(d.content, sContent);\r\n infowindow.setContent(sContent);\r\n t.state.gis.openInfoWindow(infowindow, new T.LngLat(d.lng,d.lat));\r\n\r\n } else {\r\n infowindow && t.state.gis.closeInfoWindow();\r\n }\r\n }\r\n /*\r\n 参数\r\n geometryType:point/polyline/polygon/circle/rectangle 默认point\r\n parameter 样式 默认null 对象{}写入方式跟add方法一样(对应点线圆面)\r\n data //初始化数据 默认{id:'add'}\r\n */\r\n draw (obj) {\r\n var t = this,drawParam = {};\r\n //初始化参数\r\n drawParam.geometryType = obj.geometryType || 'point';\r\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\r\n drawParam.data = obj.data?{...obj.data}:{};\r\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\r\n //判断id是否存在\r\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\r\n if(len > -1){\r\n //如果id存在 删除存在的图元,清除drawId中的id数据\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n this.markerTool.clear();\r\n break;\r\n case 'polyline':\r\n this.polylineTool.clear();\r\n break;\r\n case 'polygon':\r\n this.polygonTool.clear();\r\n break;\r\n case 'circle':\r\n this.circleTool.clear();\r\n break;\r\n case 'rectangle':\r\n this.rectangleTool.clear();\r\n break;\r\n }\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let param = {};\r\n let paramgcr = {};\r\n window.map = this.state.gis;\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.color = drawParam.parameter.lineColor;\r\n paramgcr.opacity = drawParam.parameter.lineOpacity;\r\n paramgcr.weight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: drawParam.parameter.color,\r\n lineColor: drawParam.parameter.lineColor,\r\n lineOpacity: drawParam.parameter.lineOpacity,\r\n pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: drawParam.geometryType\r\n };\r\n }\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n param.icon = new T.Icon({\r\n iconUrl: drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n iconSize: new T.Point(drawParam.parameter.width || 33,drawParam.parameter.height || 33),\r\n iconAnchor: new T.Point(drawParam.parameter.width?drawParam.parameter.width/2:16.5,\r\n drawParam.parameter.height?drawParam.parameter.height:33)\r\n });\r\n param.follow = false;\r\n if(this.markerTool)this.markerTool.close();\r\n this.markerTool = new T.MarkTool(this.state.gis, param);\r\n this.markerTool.open();\r\n this.markerTool.addEventListener('mouseup',(ob)=>{\r\n let { type, target, currentLnglat,currentMarker, allMarkers } = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentMarker);\r\n let backobj = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n url: currentMarker.getIcon().options.iconUrl,\r\n config: {\r\n width: currentMarker.getIcon().options.iconSize.x,\r\n height: currentMarker.getIcon().options.iconSize.y\r\n }\r\n },\r\n geometry: {\r\n type: 'point',\r\n x: currentLnglat.lng,\r\n y: currentLnglat.lat\r\n },\r\n geometryType: 'point',\r\n mapLayer: currentMarker\r\n };\r\n //添加点击事件\r\n currentMarker.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentMarker.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentMarker.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'polyline':\r\n param.color = drawParam.parameter.color;\r\n param.opacity = drawParam.parameter.pellucidity;\r\n param.weight = drawParam.parameter.lineWidth;\r\n if(this.polylineTool)this.polylineTool.close();\r\n this.polylineTool = new T.PolylineTool(this.state.gis, param);\r\n this.polylineTool.open();\r\n this.polylineTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentLnglats,currentDistance,currentPolyline,allPolylines} = ob;\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n t.GM.setGraphic(drawParam.data.id,currentPolyline);\r\n let backobj ={\r\n geometryType: 'polyline',\r\n distance: currentDistance,\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentPolyline.getColor(),\r\n pellucidity: currentPolyline.getOpacity(),\r\n lineWidth: currentPolyline.getWeight()\r\n }\r\n },\r\n mapLayer: currentPolyline,\r\n geometry: {\r\n type: 'polyline',\r\n lnglatAry: lnglatAry,\r\n paths: getMaxMin(currentLnglats).path\r\n },\r\n lnglatAry: lnglatAry\r\n };\r\n //添加点击事件\r\n currentPolyline.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentPolyline.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentPolyline.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'polygon':\r\n if(this.polygonTool)this.polygonTool.close();\r\n this.polygonTool = new T.PolygonTool(this.state.gis, paramgcr);\r\n this.polygonTool.open();\r\n this.polygonTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentLnglats,currentArea,currentPolygon,allPolygons} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentPolygon);\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let backobj = {\r\n geometryType: 'polygon',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentPolygon.getFillColor(),\r\n lineColor: currentPolygon.getColor(),\r\n lineOpacity: currentPolygon.getOpacity(),\r\n pellucidity: currentPolygon.getFillOpacity(),\r\n lineWidth: currentPolygon.getWeight()\r\n }\r\n },\r\n mapLayer: currentPolygon,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(currentLnglats).path,\r\n _extent: getMaxMin(currentLnglats)._extent,\r\n area: currentArea\r\n },\r\n lnglatAry: lnglatAry,\r\n area: currentArea\r\n };\r\n //添加点击事件\r\n currentPolygon.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentPolygon.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentPolygon.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'circle':\r\n if(this.circleTool)this.circleTool.close();\r\n this.circleTool = new T.CircleTool(this.state.gis, paramgcr);\r\n this.circleTool.open();\r\n this.circleTool.addEventListener('drawend',(ob)=>{\r\n let {type,target,currentCenter,currentRadius,currentCircle,allCircles} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentCircle);\r\n let area = Math.PI * Math.pow(currentRadius,2);\r\n let backobj = {\r\n geometryType: 'circle',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: { \r\n color: currentCircle.getFillColor(),\r\n lineColor: currentCircle.getColor(),\r\n lineOpacity: currentCircle.getOpacity(),\r\n pellucidity: currentCircle.getFillOpacity(),\r\n lineWidth: currentCircle.getWeight()\r\n }\r\n },\r\n mapLayer: currentCircle,\r\n geometry: {\r\n type: 'circle',\r\n x: currentCenter.lng,\r\n y: currentCenter.lat,\r\n radius: currentRadius,\r\n area: area\r\n },\r\n area: area\r\n };\r\n //添加点击事件\r\n currentCircle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentCircle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentCircle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n case 'rectangle':\r\n if(this.rectangleTool)this.rectangleTool.close();\r\n this.rectangleTool = new T.RectangleTool(this.state.gis, paramgcr);\r\n this.rectangleTool.open();\r\n this.rectangleTool.addEventListener('draw',(ob)=>{\r\n let {type,target,currentBounds,currentRectangle,allRectangles} = ob;\r\n t.GM.setGraphic(drawParam.data.id,currentRectangle);\r\n let currentLnglats = [\r\n currentBounds.getNorthEast(),\r\n currentBounds.getSouthWest(),\r\n {lng: currentBounds.getSouthWest().lng,lat: currentBounds.getNorthEast().lat},\r\n {lng: currentBounds.getNorthEast().lng,lat: currentBounds.getSouthWest().lat}\r\n ];\r\n let lnglatAry = (currentLnglats || []).map((item,index)=>{\r\n return {lngX: item.lng,latX: item.lat};\r\n });\r\n let area = currentBounds.getNorthEast().distanceTo(\r\n new T.LngLat(currentBounds.getNorthEast().lng,\r\n currentBounds.getSouthWest().lat)\r\n )* currentBounds.getNorthEast().distanceTo(\r\n new T.LngLat(currentBounds.getSouthWest().lng,\r\n currentBounds.getNorthEast().lat)\r\n );\r\n let backobj = {\r\n geometryType: 'polygon',\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: currentRectangle.getFillColor(),\r\n lineColor: currentRectangle.getColor(),\r\n lineOpacity: currentRectangle.getOpacity(),\r\n pellucidity: currentRectangle.getFillOpacity(),\r\n lineWidth: currentRectangle.getWeight()\r\n }\r\n },\r\n mapLayer: currentRectangle,\r\n geometry: {\r\n type: 'polygon',\r\n lnglatAry: lnglatAry,\r\n rings: getMaxMin(currentLnglats).path,\r\n _extent: getMaxMin(currentLnglats)._extent,\r\n area: area\r\n },\r\n lnglatAry: lnglatAry,\r\n area: area\r\n };\r\n //添加点击事件\r\n currentRectangle.on( 'click', (e)=>{\r\n t.isNotClickMap = true;\r\n t.clickGraphic(drawParam.data.id,e);\r\n });\r\n currentRectangle.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawParam.data.id,e);\r\n });\r\n currentRectangle.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawParam.data.id,e);\r\n });\r\n t.GM.setGraphicParam(drawParam.data.id,backobj);\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n break;\r\n }\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\r\n }\r\n //关闭绘制图元\r\n closeDraw(){\r\n if(this.markerTool){\r\n this.markerTool.close();\r\n }\r\n if(this.polylineTool){\r\n this.polylineTool.close();\r\n }\r\n if(this.polygonTool){\r\n this.polygonTool.close();\r\n }\r\n if(this.rectangleTool){\r\n this.rectangleTool.close();\r\n }\r\n if(this.circleTool){\r\n this.circleTool.close();\r\n }\r\n }\r\n\r\n /*根据图元id,使图元变成可编辑状态*/\r\n doEdit(id){\r\n let t = this;\r\n let ms = t.getGraphic(id);\r\n if(!ms){\r\n return false;\r\n }\r\n if(ms.getType === 1){\r\n return false;\r\n }\r\n if(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n this.isEditId = id;\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.enableDragging();\r\n // ms.mapLayer.addEventListener('dragend',t.editGraphicChange);\r\n if(ms.mapLayer.label){\r\n ms.mapLayer.addEventListener('drag',t.showLabel);\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n ms.mapLayer.enableEdit();\r\n break;\r\n }\r\n t.setState({\r\n editId: id\r\n })\r\n }\r\n //关闭编辑\r\n endEdit(){\r\n let t = this;\r\n let ms = t.getGraphic(t.state.editId);\r\n this.isEditId = null;\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.disableDragging();\r\n // ms.mapLayer.removeEventListener('dragend',t.editGraphicChange);\r\n if(ms.mapLayer.label){\r\n ms.mapLayer.removeEventListener('drag',t.showLabel);\r\n }\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n case 'circle':\r\n ms.mapLayer.disableEdit();\r\n break;\r\n }\r\n t.editGraphicChange(t.state.editId);\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n })\r\n }\r\n showLabel(){\r\n //这里的this指向调用的 点的对象\r\n this.showLabel();\r\n }\r\n //编辑变动后\r\n editGraphicChange(id){\r\n if(!id) return;\r\n let t = this;\r\n let ms = t.getGraphic(id);\r\n let obj = {\r\n id: id\r\n }\r\n switch(ms.geometryType){\r\n case 'point':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n break;\r\n case 'polyline':\r\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats())._extent;\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.distance = t.calculateDistance(ms.mapLayer.getLngLats());\r\n break;\r\n case 'polygon':\r\n case 'rectangle':\r\n ms.geometry._extent = getMaxMin(ms.mapLayer.getLngLats()[0])._extent;\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n // obj.area = getPolygonArea(ms.mapLayer.getLngLats()[0]);\r\n // obj.area = t.polygonTool.getArea(ms.mapLayer.getLngLats()[0]);\r\n // 关闭多边形多个听绘制后,回显报错\r\n break;\r\n case 'circle':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.area = Math.PI*Math.pow(ms.geometry.radius,2);\r\n break;\r\n }\r\n t.props.editGraphicChange(obj);\r\n }\r\n //删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n if(!!this.GM.getGraphic(id)){\r\n //清除聚合点 避免异常\r\n if(t.clusterObj){\r\n t.clusterObj.removeMarker(this.GM.getGraphic(id));\r\n }\r\n //清除地图中图元\r\n this.state.gis.removeOverLay(this.GM.getGraphic(id));\r\n //删除含 label点的label(天地图的坑)\r\n if(type === 'point' && this.GM.getGraphic(id).label){\r\n this.state.gis.removeOverLay(this.GM.getGraphic(id).getLabel());\r\n }\r\n //清除对应id的图元数据缓存\r\n this.GM.removeGraphic(id);\r\n this.GM.removeGraphicParam(id);\r\n }else{\r\n return false;\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n //清除 state中id的缓存\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n //点击图元事件\r\n clickGraphic (id,e) {\r\n let t = this;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n if(id === t.isEditId){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\r\n }\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n //图元鼠标移开事件\r\n mouseOutGraphic(id,e){\r\n let t = this;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n if(id === t.isEditId){\r\n return false;\r\n }\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.containerPoint.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.containerPoint.x + t.mapLeft,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n //拖拽地图开始\r\n dragMapStart(){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) ===\"function\"){\r\n t.state.gis.addEventListener('dragstart', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.dragMapStart(obj);\r\n });\r\n }\r\n }\r\n //拖拽地图结束事件\r\n dragMapEnd(){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) ===\"function\"){\r\n t.state.gis.addEventListener('dragend', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.dragMapEnd(obj);\r\n });\r\n }\r\n }\r\n //地图移动开始事件\r\n moveStart(){\r\n let t = this;\r\n if(typeof(t.props.moveStart) ===\"function\"){\r\n t.state.gis.addEventListener('movestart', function(e) {\r\n if(!t.isZoom){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveStart(obj);\r\n }\r\n });\r\n }\r\n }\r\n //地图移动结束事件\r\n moveEnd(){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) ===\"function\"){\r\n t.state.gis.addEventListener('moveend', function(e) {\r\n let xylist = [],mapPane = t.state.gis.getPanes().mapPane;\r\n if(mapPane.style.top){\r\n xylist = [mapPane.style.left,mapPane.style.top];\r\n }else{\r\n let matchList = mapPane.style.transform.match(/translate\\((-?\\d*)+px,\\s*(-?\\d*)+px\\)/) \r\n || mapPane.style.transform.match(/translate3d\\((-?\\d*)+px,\\s*(-?\\d*)+px,\\s*(-?\\d*)+px\\)/)\r\n || [];\r\n xylist = [matchList[1],matchList[2]];\r\n }\r\n //重画海量点\r\n $(`#${t.pointCollectionId}`).css({\r\n top: `${-xylist[1]}px`,\r\n left: `${-xylist[0]}px`\r\n })\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n if(t.isZoom){\r\n t.isZoom = false;\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveEnd(obj);\r\n }\r\n });\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(){\r\n let t =this;\r\n if(typeof(t.props.zoomStart) ===\"function\"){\r\n t.state.gis.addEventListener('zoomstart', function(e) {\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.hide();\r\n }\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n t.isZoom = true;\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n });\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(){\r\n let t =this;\r\n if(typeof(t.props.zoomEnd) ===\"function\"){\r\n t.state.gis.addEventListener('zoomend', function(e) {\r\n //重画热力图\r\n if(t.heatmap && !t.isHideHeatMap){\r\n t.heatmap.show();\r\n t.heatmap.draw();\r\n }\r\n //重画海量点\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\r\n if(t.morepoints.length > 0){\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n }\r\n //避免zoom切换后,chrome的旋转角度被替换\r\n for(let i in t.GM.allParam){\r\n if(t.GM.allParam[i].geometryType == 'point' && t.GM.allParam[i].deg){\r\n t.GM.getGraphic(i).getElement().style.transform = \r\n t.GM.getGraphic(i).getElement().style.transform + ` rotate(${t.GM.allParam[i].deg}deg)`;\r\n }\r\n }\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n });\r\n }\r\n }\r\n //地图点击事件\r\n clickMap(){\r\n let t =this;\r\n if(typeof(t.props.clickMap) ===\"function\"){\r\n t.state.gis.addEventListener('click', function(e) {\r\n if(t.isNotClickMap){\r\n t.isNotClickMap = false;\r\n }else{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = e.lnglat;\r\n obj.pixel = e.containerPoint;\r\n t.props.clickMap(obj);\r\n }\r\n });\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id,marker){\r\n let t = this;\r\n //null时关闭跳动\r\n if(!!marker){\r\n if(t.animTimer[id]){\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(()=>{\r\n //点被隐藏时,没有执行,定时不关\r\n if(marker.getIcon()){\r\n let shape = {...marker.getIcon().getIconAnchor()};\r\n //初始数据 点位有变动,重新刷新数据\r\n if(!t.animCount[id] || shape.y != t.animCount[id].now){\r\n t.animCount[id] = {\r\n start: shape.y,\r\n now: shape.y,\r\n notation: -1\r\n };\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 20){\r\n t.animCount[id].notation = -1;\r\n }\r\n if(t.animCount[id].now - t.animCount[id].start == 0){\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.y = t.animCount[id].now = (t.animCount[id].now + (t.animCount[id].notation)*2);\r\n marker.getIcon().setIconAnchor(shape);\r\n }\r\n },35);\r\n }else{\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += this.timer;\r\n t.movePoints[i].deleteTime -= this.timer;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,oleLng,oldLat,rx,ry,deleteTime,totalTime,ddeg} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc){\r\n clearInterval(t.moveToTimer[id]);\r\n }else{\r\n let tx = oleLng + rx * ((totalTime-deleteTime) / this.timer),\r\n ty = oldLat + ry* ((totalTime-deleteTime) / this.timer);\r\n let lglt = new T.LngLat(tx,ty);\r\n if(t.movePoints[i].url){\r\n gc.getIcon().setIconUrl(t.movePoints[i].url);\r\n }\r\n gc.setLngLat(lglt);\r\n t.GM.setGraphicParam(id,{...t.GM.getGraphicParam(id),deg: ddeg});\r\n //旋转角度\r\n gc.getElement().style.transform = gc.getElement().style.transform + ` rotate(${ddeg}deg)`;\r\n gc.getElement().style['-ms-transform'] = ` rotate(${ddeg}deg)`;\r\n if(gc.label){\r\n gc.showLabel();\r\n }\r\n // 移动过的 放后面再动\r\n t.movePoints[i].waitTime = 0;\r\n if(deleteTime <= 0){\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a,b)=>{return b-a});\r\n for(let i = 0 ; i < deleteIndex.length ; i++){\r\n t.movePoints.splice(deleteIndex[i],1);\r\n }\r\n if(nowMovePoints.length == 0){\r\n clearInterval(t.moveToTimer);\r\n }\r\n },10);\r\n }\r\n /*公共方法*/\r\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\r\n delay = delay || 3;\r\n let t = this;\r\n delay = eval(delay)*1000;\r\n let count = delay/this.timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.getLngLat(),e = new T.LngLat(lnglat[0],lnglat[1]);\r\n if(s.equals(e)){\r\n return false;\r\n }else{\r\n let ddeg = 0,url= null;\r\n //计算角度,旋转\r\n if(autoRotation){\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.getLngLat(),lnglat);\r\n if(urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n url = urlleft;\r\n }else{\r\n url = urlright;\r\n }\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.lng - s.lng)/count, ry = (e.lat - s.lat)/count;\r\n let isHave = false;\r\n for(let i = 0 ; i < t.movePoints.length ;i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1,{\r\n oleLng: s.lng,\r\n oldLat: s.lat,\r\n id,rx,ry,ddeg,url,\r\n waitTime: 0,\r\n totalTime: delay,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n oleLng: s.lng,\r\n oldLat: s.lat,\r\n id,rx,ry,ddeg,url,\r\n waitTime: 0,\r\n totalTime: delay,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp,ep){\r\n let t = this;\r\n let spLngLat = sp;\r\n if(Array.isArray(sp)){\r\n spLngLat = new AMap.LngLat(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.lngLatToLayerPoint(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.lngLatToLayerPoint(new T.LngLat(ep[0],ep[1])),\r\n deg = 0;\r\n if(e.x != s.x){\r\n var tan = (e.y - s.y)/(e.x - s.x),\r\n atan = Math.atan(tan);\r\n deg = atan*360/(2*Math.PI);\r\n //degree correction;\r\n if(e.x < s.x){\r\n deg = -deg + 90 + 90;\r\n\r\n } else {\r\n deg = -deg;\r\n }\r\n deg = -deg;\r\n }else {\r\n var disy = e.y- s.y ;\r\n var bias = 0;\r\n if(disy > 0)\r\n bias=-1;\r\n else\r\n bias = 1;\r\n if(disy == 0)\r\n bias = 0; \r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //计算2点间距离 单位m 精确到个位\r\n calculatePointsDistance(f,s){\r\n let lnglat1 = new T.LngLat(f[0],f[1]);\r\n let lnglat2 = new T.LngLat(s[0],s[1]);\r\n return Math.round(lnglat1.distanceTo(lnglat2));\r\n }\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return false;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n if('distanceTo' in ps[i]){\r\n totalDistance += ps[i].distanceTo(ps[i + 1]);\r\n }else{\r\n totalDistance += new T.LngLat(ps[i][0],ps[i][1]).distanceTo(new T.LngLat(ps[i + 1][0],ps[i + 1][1]));\r\n }\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n searchPoints(searchValue,pageSize=10,pageIndex=1){\r\n let t = this;\r\n return new Promise((resolve)=>{\r\n let searchConfig = {\r\n pageCapacity: pageSize*pageIndex, //每页显示的数量\r\n //接收数据的回调函数\r\n onSearchComplete: (result)=>{\r\n if(!result.pois){\r\n resolve([]);;\r\n }else{\r\n let list = result.pois.map((r)=>{\r\n return {\r\n id: r.hotPointID,\r\n longitude: r.lonlat.split(' ')[0],\r\n latitude: r.lonlat.split(' ')[1],\r\n canShowLabel: true,\r\n config: {\r\n labelContent: r.name,\r\n labelPixelY: 27\r\n },\r\n other: 'search'\r\n }\r\n })\r\n resolve(list);\r\n }\r\n } \r\n };\r\n //创建搜索对象\r\n let localsearch = new T.LocalSearch(t.state.gis, searchConfig);\r\n localsearch.search(searchValue);\r\n });\r\n\r\n }\r\n render(){\r\n let t = this;\r\n return (\r\n <div id={t.props.mapId} style={{width:'100%',height:'100%',zIndex: '1'}}></div>\r\n );\r\n }\r\n componentDidMount(){\r\n let t = this;\r\n this.loadMapComplete.then(()=>{\r\n t.mapLeft = document.getElementById(t.props.mapId).offsetLeft;\r\n t.mapTop = document.getElementById(t.props.mapId).offsetTop;\r\n t.init();\r\n //初始化完成后,再走更新\r\n t.isLoading = true;\r\n })\r\n }\r\n componentDidUpdate(prevProps, prevState) {//重新渲染结束\r\n let t = this;\r\n }\r\n componentWillReceiveProps(nextProps,prevProps) {//已加载组件,收到新的参数时调用\r\n let t = this;\r\n let receive = ()=>{\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,imageOverlays,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isClearAll,mapStyle,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n coverageType,\r\n infoWindowData\r\n } = nextProps;\r\n\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n // 设置地图样式\r\n if(!t.deepEqual(mapStyle,t.props.mapStyle)){\r\n if(mapStyle){\r\n t.state.gis.setStyle(mapStyle);\r\n }else{\r\n t.state.gis.removeStyle();\r\n }\r\n }\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType && !t.deepEqual(coverageType,t.props.coverageType)){\r\n t.setMapType(coverageType);\r\n }\r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && t.props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,t.props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints,t.props.mapPoints)){\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.state.editId){\r\n oldMapPoints = t.props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,t.props.mapPolygons)){\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.state.editId){\r\n oldMapPolygons = t.props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles,t.props.mapCircles)){\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.state.editId){\r\n oldMapCircles = t.props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines,t.props.mapLines)){\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.state.editId){\r\n oldMapLines = t.props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && t.props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,t.props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(t.props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.updateLine(updatedData);\r\n t.addLine(addedData); \r\n }\r\n // //绘制边界线\r\n // if(boundaryName instanceof Array && !t.deepEqual(boundaryName,t.props.boundaryName)){\r\n // let newBDName = Set(boundaryName);\r\n // let oldBDName = Set(t.props.boundaryName);\r\n // let removedBoundaryName = oldBDName.subtract(newBDName).toJS();\r\n // let addedBoundaryName = newBDName.subtract(oldBDName).toJS();\r\n // t.removeBaiduBoundary(removedBoundaryName);\r\n // t.addBaiduBoundary(addedBoundaryName);\r\n // }\r\n // 获取热力图\r\n if(heatMapData && !t.deepEqual(heatMapData,t.props.heatMapData)){\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n // 打开信息窗体\r\n if(infoWindowData && !t.deepEqual(infoWindowData,t.props.infoWindowData)){\r\n t.infoWindow(infoWindowData);\r\n }\r\n //添加图片图层\r\n if(imageOverlays instanceof Array && !t.deepEqual(imageOverlays,t.props.imageOverlays)){\r\n t.imageUrlOverlay(imageOverlays);\r\n }\r\n //图元编辑调用\r\n if((typeof(isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)){\r\n t.doEdit(editGraphicId);\r\n }\r\n //是否关闭图元编辑\r\n if((typeof(isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)){\r\n t.endEdit();\r\n }\r\n /*设置指定图元展示*/\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //绘制图元\r\n if((typeof(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n if(!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])){\r\n t.setCenter(mapCenter);\r\n }\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n if(!(t.getZoomLevel() == mapZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n }\r\n // //是否打开路况\r\n // if(isOpenTrafficInfo){\r\n // t.openTrafficInfo();\r\n // }else{\r\n // t.hideTrafficInfo();\r\n // }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool();\r\n }\r\n //单独删除操作\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n //设置区域限制\r\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\r\n t.clearAreaRestriction();\r\n }\r\n }\r\n if(t.waitReceive){\r\n clearInterval(t.waitReceive);\r\n }\r\n //等等天地图初始化\r\n if(t.isLoading){\r\n receive();\r\n }else{\r\n t.waitReceive = setInterval(()=>{\r\n if(t.isLoading){\r\n clearInterval(t.waitReceive);\r\n receive();\r\n }\r\n },100);\r\n }\r\n\r\n // 比例尺控件位置改变\r\n if(nextProps.showControl && JSON.stringify(nextProps.showControl)!=JSON.stringify(t.props.showControl)){\r\n t.showControl(nextProps);\r\n }\r\n // 比例尺移除\r\n if(!nextProps.showControl) {\r\n t.removeControl();\r\n }\r\n // 地图类型控件位置改变\r\n if(nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch)!=JSON.stringify(t.props.satelliteSwitch)){\r\n t.showMapTypeControl(nextProps);\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n if(t.waitReceive){\r\n clearInterval(t.waitReceive);\r\n }\r\n if(t.waitInit){\r\n clearInterval(t.waitInit);\r\n }\r\n //关闭animation定时\r\n for(let j in t.animTimer){\r\n if(t.animTimer[j]){\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n if(window.VtxMap && window.VtxMap[t.state.mapId])\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\nexport default TMap;\r\n"],"mappings":"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"}
|