@vtx/map 1.1.33 → 1.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"AMap.js","names":["Set","Immutable","VortexAMap","props","GM","graphicManage","getPolygonArea","pointCollectionId","morepoints","htmlXY","x","y","px","py","isCount","stopMove","mapLeft","mapTop","clusterObj","trafficLayer","scale","tool","ruler","mousetool","districeSearch","polyEdit","circleEdit","editTimeout","heatmap","satellite","roadNet","csr","test","navigator","userAgent","toLowerCase","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","mapZoomLevel","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","AnchorConstant","tr","tl","bl","br","frameSelectProps","loadMapJs","loadMapComplete","Promise","resolve","reject","window","AMap","$","getScript","configUrl","mapServerURL","PointCollection","all","then","setTime","allEvents","isLoading","i","length","setTimeout","t","mapPoints","mapLines","mapPolygons","mapCircles","imageOverlays","setVisiblePoints","mapVisiblePoints","mapCenter","mapCluster","mapPointCollection","showControl","boundaryName","heatMapData","areaRestriction","coverageType","infoWindowData","setMapType","createMap","setCenter","Array","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","setZoomLevel","cluster","satelliteSwitch","showMapTypeControl","addBaiduBoundary","showGraphicById","bind","hideGraphicById","setAreaRestriction","heatMapOverlay","infoWindow","addPointCollection","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","clickMap","setState","divId","viewMode","mapStyle","minZoom","maxZoom","VtxMap","Map","toString","resizeEnable","zoom","center","zooms","setMapStyle","MarkerClusterer","offsetS","Pixel","offsetT","zlt","zls","location","tp","direction","type","Scale","position","offset","ToolBar","locate","opts","subdistrict","extensions","level","DistrictSearch","RangingTool","on","points","distance","lnglats","map","item","index","lng","lat","setDefaultCursor","turnOff","mapRangingTool","MouseTool","obj","drawExtData","getExtData","backobj","id","attributes","geometryType","mapLayer","geometry","setGraphic","setGraphicParam","e","clickGraphic","mouseOverGraphic","mouseOutGraphic","dealData","lnglatAry","_extent","path","getPosition","getLng","getLat","paths","getLength","area","getArea","rings","getCenter","radius","getRadius","Math","PI","pow","close","drawEnd","callback","Function","Heatmap","nowXY","lnglatToPixel","css","top","left","display","initPropsForUser","frameSelect","clearFrameSelect","clearFrameSelectById","parameter","data","includes","message","warn","params","random","color","lineColor","lineOpacity","lineWidth","pellucidity","lineType","draw","key","removeGraphic","TileLayer","Satellite","RoadNet","hide","show","imageAry","sw","ne","url","opacity","displayOnMinLevel","displayOnMaxLevel","console","isArray","swnep","Bounds","ImageLayer","bounds","setLayers","clearMarkers","clearMap","clearAll","gt","sw_ne","LngLat","setLimitBounds","clearLimitBounds","Traffic","zIndex","add","ids","fitView","setFitView","getAllOverlays","pts","split","Marker","getMoreGraphic","setZoom","getZoom","northEast","getBounds","toBounds","getNorthEast","southWest","getSouthWest","mapSize","getSize","nowCenter","getCurrentCenter","getZoomLevel","calculatePointsDistance","arg","ary","Object","prototype","apply","filter","getGraphicParam","config","isAnimation","ms","setMarkers","scaleOffset","scaleControl","removeControl","navigationControl","control","addControl","navigation","mapTypeControl","MapType","reloaction","right","bottom","timer","setInterval","log","clearInterval","gp","gg","getGraphic","p","longitude","latitude","other","getPath","bdNames","forEach","name","search","status","result","Date","getTime","districtList","boundaries","push","removedBDNames","removedBDIds","indexOf","d","cg","max","visible","option","gradient","setOptions","setDataSet","width","height","sContent","document","createElement","infowindow","InfoWindow","content","setSize","Size","render","open","pointCollectTimer","clearTimeout","pointCollectionHtml","className","append","lngLatToContainer","options","size","shape","VotexpointCollection","GMapLib","value","ds","ind","reDraw","clear","ps","psids","isRepetition","labelContent","labelPixelX","labelPixelY","markerContentX","markerContentY","deg","markerOption","angle","clickable","cursor","bubble","extData","BAnimationType","animation","markerContent","icon","Icon","image","imageSize","canShowLabel","labelClass","label","marker","gc","isuserUrlLeft","getLabel","getOffset","getX","getY","getAngle","getzIndex","setLabel","setOffset","setAngle","setzIndex","setPosition","delay","animationDelay","speed","autoRotation","ddeg","rotateDeg","urlleft","moveTo","k","setAnimation","setContent","setIcon","ls","lsids","isHidden","lineOption","strokeColor","strokeOpacity","strokeWeight","strokeStyle","itt","indd","Polyline","op","getOptions","pgs","pgsids","polygonOption","fillColor","fillOpacity","Polygon","ccs","ccsids","circleOption","Circle","endEdit","setDraggable","editGraphicChange","PolyEditor","CircleEditor","off","param","target","lnglat","pixel","getMapExtent","updatePointCollection","clickLngLat","turnOn","drawParam","len","splice","paramgcr","xmax","xmin","ymax","ymin","lngX","latX","removeMarker","setMap","sp","ep","spLngLat","s","tan","atan","disy","bias","a","b","is","fromJS","f","lnglat1","lnglat2","round","totalDistance","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","searchValue","pageSize","pageIndex","psc","PlaceSearch","list","poiList","pois","r","_map","getElementById","offsetLeft","offsetTop","init","allParam","prevProps","prevState","nextProps","customizedBoundary","isOpenTrafficInfo","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isClearAll","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","deepEqual","dataMatch","clearPointCollection","clearAllPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","updatePoint","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","updateLine","newBDName","oldBDName","removedBoundaryName","addedBoundaryName","removeBaiduBoundary","doEdit","closeDraw","openTrafficInfo","hideTrafficInfo","vtxRangingTool","clearAreaRestriction","JSON","stringify","React","Component"],"sources":["VtxMap/AMap/AMap.js"],"sourcesContent":["import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport {graphicManage,getPolygonArea} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nconst {Set} = Immutable;\r\nclass VortexAMap 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.morepoints = [];//海量点集合\r\n this.htmlXY = {x:0,y:0,px:0,py:0,isCount: false};\r\n this.stopMove = true;//防止zoom事件触发时,联动的触发move事件\r\n this.mapLeft = 0;//地图offset的Left值\r\n this.mapTop = 0;//地图offset的Top值\r\n this.clusterObj = null;//聚合点类对象\r\n this.trafficLayer = null;//路况类对象\r\n this.scale = null;//比例尺控件对象\r\n this.tool = null;//比例尺工具对象\r\n this.ruler = null;//测距对象\r\n this.mousetool = null;//绘制图元对象\r\n this.districeSearch = null;//行政区划搜索对象\r\n this.polyEdit = null;//折线和多边形编辑对象\r\n this.circleEdit = null;//圆编辑对象\r\n this.editTimeout = null;//圆编辑时的延迟回调,避免重复调用\r\n this.heatmap = null;//热力图对象\r\n this.satellite = null;//底图图层对象-卫星图\r\n this.roadNet = null;//路网图层对象\r\n //为了样式相同,引用百度的鼠标样式\r\n this.csr = \r\n /webkit/.test(navigator.userAgent.toLowerCase()) ?\r\n 'url(\"http://api.map.baidu.com/images/ruler.cur\") 3 6, crosshair' :\r\n 'url(\"http://api.map.baidu.com/images/ruler.cur\"), crosshair';\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 }\r\n this.AnchorConstant = {\r\n tr: 'RT',\r\n tl: 'LT',\r\n bl: 'LB',\r\n br: 'RB'\r\n }\r\n this.frameSelectProps = {}\r\n this.loadMapJs();\r\n }\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.AMap){\r\n resolve(window.AMap);\r\n }\r\n else{\r\n $.getScript(`${configUrl.mapServerURL}/A_content.js`,()=>{\r\n $.getScript('//webapi.amap.com/maps?v=1.4.14&key=e59ef9272e3788ac59d9a22f0f8cf9fe&plugin=AMap.Geolocation,AMap.MarkerClusterer,AMap.MapType,AMap.Scale,AMap.ToolBar,AMap.DistrictSearch,AMap.RangingTool,AMap.MouseTool,AMap.PolyEditor,AMap.CircleEditor,AMap.PlaceSearch,AMap.Heatmap',()=>{\r\n let PointCollection = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection]).then(()=>{\r\n (function setTime() {\r\n let allEvents = [\r\n window.AMap,\r\n 'MarkerClusterer',\r\n 'MapType',\r\n 'Scale',\r\n 'ToolBar',\r\n 'DistrictSearch',\r\n 'RangingTool',\r\n 'MouseTool',\r\n 'PolyEditor',\r\n 'CircleEditor',\r\n 'PlaceSearch',\r\n 'Heatmap'\r\n ];\r\n let isLoading = true;\r\n for(let i = 0; i <= allEvents.length - 1; i++){\r\n if(i === 0){\r\n if(!allEvents[i]){\r\n isLoading = false;\r\n break;\r\n }\r\n }else{\r\n if(!allEvents[0][allEvents[i]]){\r\n isLoading = false;\r\n break;\r\n }\r\n }\r\n }\r\n if(isLoading){\r\n resolve(window.AMap);\r\n }else{\r\n setTimeout(()=>{\r\n setTime();\r\n },50)\r\n }\r\n })();\r\n })\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 imageOverlays,\r\n setVisiblePoints,mapVisiblePoints,\r\n mapCenter,mapZoomLevel,\r\n mapCluster,mapPointCollection,\r\n showControl,boundaryName,heatMapData,\r\n areaRestriction,coverageType,\r\n infoWindowData\r\n } = t.props;\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType){\r\n t.setMapType(coverageType);\r\n }\r\n //创建地图\r\n t.createMap();\r\n //初始化中心点\r\n t.setCenter(mapCenter);\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(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(t.props.showGraphicById){\r\n t.props.showGraphicById(t.showGraphicById.bind(t));\r\n }\r\n //回调隐藏方法\r\n if(t.props.hideGraphicById){\r\n t.props.hideGraphicById(t.hideGraphicById.bind(t));\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\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 t.addPointCollection(mapPointCollection);\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 //地图方法\r\n createMap(divId){\r\n let t = this;\r\n const {viewMode,mapStyle,mapCenter,mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\r\n //缓存Map的对象,方便后期的功能操作\r\n //后期不会操作gis数据,直接通过state缓存.\r\n if(window.VtxMap){\r\n window.VtxMap[mapId] = null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n window.VtxMap[mapId] = t.state.gis = new AMap.Map(mapId.toString(),{\r\n viewMode: viewMode?viewMode:'2D',\r\n resizeEnable: true,\r\n //zoom等级,和百度一样默认10\r\n zoom: mapZoomLevel || 10,\r\n //不传中心点,高德地图默认使用用户所在地的城市为中心点\r\n center: (mapCenter && mapCenter instanceof Array && mapCenter.length == 2)?mapCenter:[116.400433,39.906705],\r\n zooms: [minZoom || 3, maxZoom || 18]\r\n });\r\n if(mapStyle){\r\n t.state.gis.setMapStyle(mapStyle)\r\n }\r\n //聚合点类对象\r\n t.clusterObj = new AMap.MarkerClusterer(t.state.gis,[]);\r\n //比例尺控件对象\r\n /*算出比例尺位置偏移量*/\r\n let offsetS = new AMap.Pixel(60,17);\r\n let offsetT = new AMap.Pixel(25,10);\r\n let zlt = 'RB';\r\n let zls = 'RB';\r\n if(t.props.showControl){\r\n switch(t.props.showControl.location){\r\n case 'tl':\r\n zlt = 'LT';\r\n zls = 'LB';\r\n offsetS = new AMap.Pixel(10,17);\r\n offsetT = new AMap.Pixel(5,10);\r\n break;\r\n case 'bl':\r\n zlt = 'LB';\r\n zls = 'LB';\r\n offsetS = new AMap.Pixel(60,19);\r\n offsetT = new AMap.Pixel(5,12);\r\n break;\r\n case 'tr':\r\n zlt = 'RT';\r\n zls = 'RB';\r\n offsetS = new AMap.Pixel(25,17);\r\n offsetT = new AMap.Pixel(25,10);\r\n break;\r\n case 'br':\r\n zlt = 'RB';\r\n zls = 'RB';\r\n offsetS = new AMap.Pixel(70,17);\r\n offsetT = new AMap.Pixel(25,10);\r\n break;\r\n }\r\n //默认是all\r\n let tp = {\r\n ruler: true,\r\n direction: true\r\n }\r\n switch(t.props.showControl.type){\r\n case 'small':\r\n tp = {\r\n ruler: false,\r\n direction: true\r\n }\r\n break;\r\n case 'pan':\r\n tp = {\r\n ruler: false,\r\n direction: true\r\n }\r\n break;\r\n case 'zoom':\r\n tp = {\r\n ruler: false,\r\n direction: false\r\n }\r\n break;\r\n }\r\n t.scale = new AMap.Scale({\r\n position: zls,\r\n offset: offsetS\r\n });\r\n //比例尺工具对象\r\n t.tool = new AMap.ToolBar({\r\n position: zlt,\r\n offset: offsetT,\r\n locate: false,\r\n ...tp\r\n });\r\n }\r\n //搜索服务\r\n let opts = {\r\n subdistrict: 1, //返回下一级行政区\r\n extensions: 'all', //返回行政区边界坐标组等具体信息\r\n level: 'district' //查询行政级别为 市\r\n };\r\n //实例化DistrictSearch\r\n t.districeSearch = new AMap.DistrictSearch(opts);\r\n //实例化RangingTool\r\n t.ruler = new AMap.RangingTool(t.state.gis);\r\n t.ruler.on('end',({type,polyline,points,distance})=>{\r\n let lnglats = points.map((item,index)=>{\r\n return [item.lng,item.lat];\r\n })\r\n //恢复鼠标默认样式\r\n t.state.gis.setDefaultCursor();\r\n t.ruler.turnOff();\r\n if(typeof(t.props.mapRangingTool) ===\"function\"){\r\n t.props.mapRangingTool({\r\n distance,lnglats\r\n });\r\n }\r\n });\r\n //绘制图元类\r\n t.mousetool = new AMap.MouseTool(t.state.gis);\r\n //绘制完后的回调\r\n t.mousetool.on('draw',({type,obj})=>{\r\n let drawExtData = obj.getExtData();\r\n let backobj = {\r\n id: drawExtData.id,\r\n attributes: drawExtData.attributes,\r\n geometryType: drawExtData.type == 'rectangle'?'polygon':drawExtData.type,\r\n mapLayer: obj,\r\n geometry: {\r\n type: drawExtData.type == 'rectangle'?'polygon':drawExtData.type\r\n }\r\n };\r\n //缓存绘制的图元信息\r\n t.GM.setGraphic(drawExtData.id,obj);\r\n t.GM.setGraphicParam(drawExtData.id,backobj);\r\n //添加点击事件\r\n obj.on( 'click', (e)=>{\r\n t.clickGraphic(drawExtData.id,e);\r\n });\r\n obj.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawExtData.id,e);\r\n });\r\n obj.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawExtData.id,e);\r\n });\r\n\r\n //区别点和圆的经纬度数据处理\r\n let {lnglatAry,_extent,path} = t.dealData(obj);\r\n //处理返回数据\r\n switch(drawExtData.type){\r\n case 'point':\r\n backobj.geometry.x = obj.getPosition().getLng();\r\n backobj.geometry.y = obj.getPosition().getLat();\r\n break;\r\n case 'polyline':\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.paths = path;\r\n backobj.geometry._extent = _extent;\r\n backobj.distance = obj.getLength();\r\n break;\r\n case 'polygon':\r\n backobj.area = obj.getArea();\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.rings = path;\r\n backobj.geometry._extent = _extent;\r\n break;\r\n case 'rectangle':\r\n backobj.area = obj.getArea();\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.rings = path;\r\n backobj.geometry._extent = _extent;\r\n break;\r\n case 'circle':\r\n backobj.geometry.x = obj.getCenter().getLng();\r\n backobj.geometry.y = obj.getCenter().getLat();\r\n backobj.geometry.radius = obj.getRadius();\r\n backobj.area = Math.PI*Math.pow(backobj.geometry.radius,2);\r\n break;\r\n }\r\n //恢复鼠标默认样式\r\n t.state.gis.setDefaultCursor();\r\n t.mousetool.close();\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n t.heatmap = new AMap.Heatmap(t.state.gis);\r\n t.state.gis.on('mapmove',(e)=>{\r\n if(t.htmlXY.isCount){\r\n let nowXY = t.state.gis.lnglatToPixel(t.state.gis.getCenter());\r\n $(`#${t.pointCollectionId}`).css({\r\n top: t.htmlXY.y - nowXY.y,\r\n left: t.htmlXY.x - nowXY.x,\r\n display: 'none'\r\n });\r\n }\r\n })\r\n t.initPropsForUser();\r\n }\r\n // 初始化对外方法\r\n initPropsForUser(){\r\n const t = this;\r\n t.state.gis[\"frameSelect\"] = (obj={},callback) => {\r\n return t.frameSelect(obj,callback);\r\n }\r\n t.state.gis[\"clearFrameSelect\"] = () => {\r\n return t.clearFrameSelect();\r\n }\r\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\r\n return t.clearFrameSelectById(id);\r\n }\r\n }\r\n // 框选\r\n frameSelect({geometryType,parameter={},data={}},callback){\r\n if(!['polygon','circle','rectangle'].includes(geometryType)){\r\n message.warn(\"传入的类型不支持框选!\")\r\n return false;\r\n }\r\n const t = this;\r\n let params = {},\r\n type = geometryType||'polygon',\r\n id = data.id || `frameSelectFeature_${Math.random()}`;\r\n\r\n params.color = parameter.color||'red';\r\n params.lineColor = parameter.lineColor||'red';\r\n params.lineOpacity = parameter.lineOpacity||1;\r\n params.lineWidth = parameter.lineWidth||2;\r\n params.pellucidity = parameter.pellucidity||0.6;\r\n params.lineType = parameter.lineType||'solid';\r\n\r\n t.draw({\r\n geometryType: type,\r\n parameter: {\r\n ...parameter,\r\n ...params\r\n },\r\n data:{\r\n id: id\r\n }\r\n });\r\n\r\n t.frameSelectProps[id] = {\r\n callback,\r\n id,\r\n type: geometryType\r\n } \r\n }\r\n // 清除框选\r\n clearFrameSelect(){\r\n for(let key in this.frameSelectProps){\r\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\r\n }\r\n this.frameSelectProps = {};\r\n }\r\n // 清除框选ById\r\n clearFrameSelectById(id){\r\n let obj = this.frameSelectProps[id];\r\n this.removeGraphic(obj.id, obj.type);\r\n delete this.frameSelectProps[id];\r\n }\r\n /* \r\n 切换地图矢量图和卫星图背景\r\n */\r\n setMapType(type){\r\n if(!this.satellite){\r\n this.satellite = new AMap.TileLayer.Satellite({map: this.state.gis});\r\n this.roadNet = new AMap.TileLayer.RoadNet({map: this.state.gis})\r\n }\r\n switch (type) {\r\n case 'sl':\r\n this.satellite.hide();\r\n this.roadNet.hide();\r\n break;\r\n case 'wx':\r\n this.satellite.show();\r\n this.roadNet.show();\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 AMap.Bounds(sw, ne),\r\n imageUrlOverlay = new AMap.ImageLayer({\r\n url,\r\n zooms: [displayOnMinLevel || 3,displayOnMaxLevel || 18],\r\n bounds: swnep\r\n });\r\n t.state.gis.setLayers([new AMap.TileLayer(),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 t.clusterObj.clearMarkers();\r\n t.state.gis.clearMap();\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 && gt instanceof Array && gt.length == 2){\r\n t.state.gis.setCenter(gt);\r\n // t.setState({center:gt});\r\n }else{\r\n t.state.gis.setCenter([116.400433,39.906705]);\r\n // t.setState({center:[117.468021,39.890092]});\r\n }\r\n }\r\n /*地图区域限制*/\r\n setAreaRestriction(sw_ne){\r\n let bounds = new AMap.Bounds(new AMap.LngLat(sw_ne[0][0],sw_ne[0][1]),new AMap.LngLat(sw_ne[1][0],sw_ne[1][1]));\r\n this.state.gis.setLimitBounds(bounds);\r\n }\r\n clearAreaRestriction(){\r\n this.state.gis.clearLimitBounds();\r\n }\r\n //展示路况信息\r\n openTrafficInfo(){\r\n let t = this;\r\n //判断是否已经创建路况对象\r\n if(this.trafficLayer){\r\n this.trafficLayer.show();\r\n }else{\r\n //路况类对象\r\n let trafficLayer = new AMap.TileLayer.Traffic({\r\n zIndex: 10\r\n });\r\n t.state.gis.add(trafficLayer);\r\n this.trafficLayer = trafficLayer;\r\n }\r\n }\r\n //隐藏路况信息\r\n hideTrafficInfo(){\r\n if(this.trafficLayer){\r\n this.trafficLayer.hide();\r\n }\r\n }\r\n //设置指定图元展示 高德只有zoom和center全适应,单适应暂时无法实现\r\n setVisiblePoints(obj){\r\n let t = this;\r\n let ids = [];\r\n switch(obj.fitView){\r\n case 'point':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('marker'));\r\n break;\r\n case 'line':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('polyline'));\r\n break;\r\n case 'polygon':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('polygon'));\r\n break;\r\n case 'circle':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('circle'));\r\n break;\r\n case 'all':\r\n let pts = [...t.state.gis.getAllOverlays('marker'),...t.state.gis.getAllOverlays('polyline'),\r\n ...t.state.gis.getAllOverlays('polygon'),...t.state.gis.getAllOverlays('circle')];\r\n t.state.gis.setFitView(pts);\r\n break;\r\n default:\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 // let l = new AMap.LngLat(ids[0][0],ids[0][1]),\r\n // r = new AMap.LngLat(ids[1][0],ids[1][1]); \r\n // let b = new AMap.Bounds(l,r); \r\n // t.state.gis.setBounds(b);\r\n // fix: 高德地图在[[lng,lat],[lng,lat]]方式下的最佳视野\r\n t.state.gis.setFitView(ids.map((item) => {\r\n return new AMap.Marker({\r\n position: new AMap.LngLat(item[0], item[1]),\r\n });\r\n }));\r\n }else{\r\n t.state.gis.setFitView(this.GM.getMoreGraphic(ids));\r\n }\r\n break;\r\n }\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n t.state.gis.setZoom(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 northEast = (this.props.viewMode == '3D'?gis.getBounds().toBounds() : gis.getBounds()).getNorthEast(),\r\n southWest = (this.props.viewMode == '3D'?gis.getBounds().toBounds() : gis.getBounds()).getSouthWest();\r\n let obj = {\r\n mapSize: gis.getSize(),\r\n nowCenter: t.getCurrentCenter(),\r\n northEast: {\r\n lat: northEast.lat,\r\n lng: northEast.lng\r\n },\r\n southWest: {\r\n lat: southWest.lat,\r\n lng: southWest.lng\r\n },\r\n zoom: t.getZoomLevel()\r\n }\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],[\r\n northEast.getLng(),northEast.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 ary = ary.filter((item,index)=>{\r\n return !(t.GM.getGraphicParam(item).attributes.config || {}).isAnimation;\r\n });\r\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n return !item && item != 0 ? false : true;\r\n });\r\n t.clusterObj.setMarkers(ms);\r\n }\r\n //展示比例尺\r\n showControl (props){\r\n let t = this, location='RT',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 if(config.showControl.offset && config.showControl.offset.length>0){\r\n offset = new AMap.Pixel(config.showControl.offset[0],config.showControl.offset[1])\r\n scaleOffset = new AMap.Pixel(config.showControl.offset[0] + 70,config.showControl.offset[1])\r\n }\r\n // 添加比例尺\r\n let control = new AMap.Scale({position: location, offset: scaleOffset});\r\n t.state.gis.addControl(control);\r\n t.scaleControl = control;\r\n // 包含平移和缩放按钮\r\n let navigation = new AMap.ToolBar({position: location, offset}); \r\n t.state.gis.addControl(navigation);\r\n t.navigationControl = navigation;\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 showMapTypeControl (props){\r\n let t = this,location = 'RT',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 // 地图切换控件\r\n let control = new AMap.MapType({position: location, offset: offset});\r\n t.state.gis.addControl(control);\r\n t.mapTypeControl = control;\r\n\r\n // TODO,MapType没有这些属性,所以下面定位和偏移不生效,手动修改\r\n function reloaction() {\r\n if (location == 'RT') {\r\n $('div.amap-maptypecontrol').css({ right: 0, top: 0, left: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LT') {\r\n $('div.amap-maptypecontrol').css({ left: 0 + 64, top: 0, right: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LB') {\r\n $('div.amap-maptypecontrol').css({ left: 0 + 64, bottom: 0 + 84, right: 'inherit', top: 'inherit' });\r\n } else if (location == 'RB') {\r\n $('div.amap-maptypecontrol').css({ right: 0, bottom: 0 + 84, left: 'inherit', top: 'inherit' });\r\n }\r\n if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {\r\n if (location == 'RT') {\r\n $('div.amap-maptypecontrol').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1], left: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LT') {\r\n $('div.amap-maptypecontrol').css({ left: config.satelliteSwitch.offset[0] + 64, top: config.satelliteSwitch.offset[1], right: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LB') {\r\n $('div.amap-maptypecontrol').css({ left: config.satelliteSwitch.offset[0] + 64, bottom: config.satelliteSwitch.offset[1] + 84, right: 'inherit', top: 'inherit' });\r\n } else if (location == 'RB') {\r\n $('div.amap-maptypecontrol').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] + 84, left: 'inherit', top: 'inherit' });\r\n }\r\n }\r\n }\r\n if ($('div.amap-maptypecontrol').length > 0) {\r\n reloaction();\r\n } else {\r\n let timer = setInterval(() => {\r\n console.log(123);\r\n if ($('div.amap-maptypecontrol').length > 0) {\r\n clearInterval(timer)\r\n reloaction();\r\n }\r\n }, 500)\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 let {lnglatAry,_extent,path} = t.dealData(gg);\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.getPosition().getLng();\r\n lat = gg.getPosition().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.getPath().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n lnglatAry,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts,\r\n _extent\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n pts = gg.getPath().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n lnglatAry,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts,\r\n _extent\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 showGraphicById (id){\r\n let t = this;\r\n t.GM.getGraphic(id).show();\r\n }\r\n //隐藏图元\r\n hideGraphicById(id){\r\n let t = this;\r\n t.GM.getGraphic(id).hide();\r\n }\r\n //画出对应边界线 name区域名\r\n addBaiduBoundary(bdNames){\r\n let t = this;\r\n bdNames.forEach(name=>{\r\n t.districeSearch.search(name,(status,result)=>{\r\n if(status == 'complete'){\r\n let id = 'boundary' + new Date().getTime();\r\n let paths = result.districtList[0].boundaries[0].map((item,index)=>{\r\n return [item.lng,item.lat];\r\n });\r\n t.addPolygon([{id,rings:paths}]);\r\n t.state.boundaryInfo.push({id,name:name});\r\n } \r\n });\r\n })\r\n }\r\n removeBaiduBoundary(removedBDNames){\r\n let removedBDIds = this.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)>-1).map(item=>item.id);\r\n this.setState({boundaryInfo:this.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)==-1)});\r\n removedBDIds.forEach(id=>{\r\n this.removeGraphic(id,'polygon');\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 let option = {\r\n radius: cg.radius,\r\n opacity: [0,cg.opacity]\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.heatmap.show();\r\n }else{\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 AMap.InfoWindow({\r\n // isCustom: true,\r\n content: sContent\r\n });\r\n infowindow.setSize(new AMap.Size(cg.width, cg.height + 20))\r\n\r\n if(d.lat && d.lng && d.content){\r\n render(d.content, sContent);\r\n infowindow.open(t.state.gis,[d.lng,d.lat]);\r\n\r\n } else {\r\n infoWindow.close();\r\n }\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n if(!$(`#${t.state.mapId} .amap-layers`).length){\r\n if(t.pointCollectTimer){\r\n clearTimeout(t.pointCollectTimer);\r\n }\r\n t.pointCollectTimer = setTimeout(() => {\r\n t.addPointCollection(data);\r\n }, 50);\r\n }else{\r\n if(!$(`#${t.pointCollectionId}`).length){\r\n //创建海量点图层\r\n //加上mapId 实现多地图\r\n t.pointCollectionId = `${t.state.mapId}_${t.pointCollectionId}`\r\n let pointCollectionHtml = document.createElement('div');\r\n pointCollectionHtml.id = t.pointCollectionId;\r\n pointCollectionHtml.class = 'vtx_gmap_html_pointCollection_a';\r\n pointCollectionHtml.className = 'vtx_gmap_html_pointCollection_a';\r\n $($(`#${t.state.mapId} .amap-layers`)[0]).append(pointCollectionHtml);\r\n }else{\r\n \r\n }\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = (d.points || []).map((d,i)=>{\r\n let p = new AMap.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainer(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().width,\r\n height: t.state.gis.getSize().height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\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 AMap.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainer(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().width,\r\n height: t.state.gis.getSize().height\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 addPoint(mapPoints,type){\r\n let t = this;\r\n let ps = [];\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n width: 30,\r\n height: 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n markerContentX: -13,\r\n markerContentY: -42,\r\n zIndex: 100,\r\n deg: 0,\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 position: new AMap.LngLat(item.longitude,item.latitude),\r\n offset: new AMap.Pixel(cg.markerContentX,cg.markerContentY),\r\n zIndex: cg.zIndex,\r\n angle: cg.deg,\r\n clickable: true,\r\n cursor: 'pointer',\r\n bubble: true,\r\n extData: {\r\n id: item.id\r\n }\r\n }\r\n if(cg.BAnimationType == 0){\r\n markerOption.animation ='AMAP_ANIMATION_BOUNCE';\r\n }else if(cg.BAnimationType == 1){\r\n markerOption.animation = 'AMAP_ANIMATION_DROP';\r\n }else{\r\n markerOption.animation = 'AMAP_ANIMATION_NONE';\r\n }\r\n //判断html还是图片\r\n if(!!item.markerContent){\r\n markerOption.content = item.markerContent;\r\n }else{\r\n if(item.url){\r\n // 解决自定义的图标设置图片大小无效\r\n // if(item.url.indexOf('http://') > -1 || item.url.indexOf('https://') > -1){\r\n markerOption.icon = new AMap.Icon({\r\n size: new AMap.Size(cg.width,cg.height),\r\n image: item.url,\r\n imageSize: new AMap.Size(cg.width,cg.height)\r\n })\r\n // }else{\r\n // markerOption.icon = item.url;\r\n // }\r\n }\r\n }\r\n //是否展示label\r\n if(item.canShowLabel){\r\n let labelClass = item.labelClass || 'label-content';\r\n markerOption.label = {\r\n content: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new AMap.Pixel(cg.labelPixelX,cg.labelPixelY)\r\n }\r\n }\r\n //获得覆盖物对象\r\n let marker = new AMap.Marker(markerOption);\r\n //添加点击事件\r\n marker.on( 'click', (e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n marker.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n marker.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n ps.push(marker);\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 }\r\n );\r\n });\r\n //统一加点\r\n t.state.gis.add(ps);\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),isuserUrlLeft = false;\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: gc.getLabel(),\r\n markerContentX: gc.getOffset().getX(),\r\n markerContentY: gc.getOffset().getY(),\r\n deg: gc.getAngle(),\r\n zIndex: gc.getzIndex(),\r\n labelClass: 'label-content'\r\n };\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //是否展示label\r\n if(item.canShowLabel){\r\n cg.labelPixelX= cg.labelPixelX || gc.getLabel() ? gc.getLabel().offset.getX() : 0;\r\n cg.labelPixelY= cg.labelPixelY || gc.getLabel() ? gc.getLabel().offset.getY(): 34;\r\n cg.labelContent= cg.labelContent || gc.getLabel().offset.content;\r\n let labelClass = item.labelClass || 'label-content';\r\n //更新label\r\n gc.setLabel({\r\n content: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new AMap.Pixel(cg.labelPixelX,cg.labelPixelY)\r\n })\r\n }\r\n //更新偏移量\r\n gc.setOffset(new AMap.Pixel(cg.markerContentX,cg.markerContentY));\r\n //设置偏转角度\r\n gc.setAngle(cg.deg);\r\n //设置点的标记添加顺序\r\n gc.setzIndex(cg.zIndex);\r\n //更新经纬度\r\n if(!item.config.isAnimation){\r\n gc.setPosition(new AMap.LngLat(item.longitude,item.latitude));\r\n }else{\r\n let distance = t.calculatePointsDistance([item.longitude,item.latitude],[\r\n gc.getPosition().getLng(),gc.getPosition().getLat()]);\r\n if(distance > 0){\r\n let delay = item.config.animationDelay || 3;\r\n let speed = distance/delay*3600/1000;\r\n if(cg.autoRotation){\r\n let ddeg = t.rotateDeg(gc.getPosition(),[item.longitude,item.latitude]);\r\n if(item.urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n isuserUrlLeft = true;\r\n }\r\n gc.setAngle(ddeg);\r\n }\r\n gc.moveTo(new AMap.LngLat(item.longitude,item.latitude),speed,function(k){\r\n return k;\r\n })\r\n }\r\n }\r\n if(item.config.BAnimationType == 0){\r\n gc.setAnimation('AMAP_ANIMATION_BOUNCE');\r\n }else if(item.config.BAnimationType == 1){\r\n gc.setAnimation('AMAP_ANIMATION_DROP');\r\n }else{\r\n gc.setAnimation('AMAP_ANIMATION_NONE');\r\n }\r\n //判断html还是图片\r\n if(!!item.markerContent){\r\n gc.setContent(item.markerContent);\r\n }else{\r\n if(isuserUrlLeft){\r\n gc.setIcon(item.urlleft);\r\n }else{\r\n if(item.url){\r\n // if(item.url.indexOf('http://') > -1 || item.url.indexOf('https://') > -1){\r\n gc.setIcon(new AMap.Icon({\r\n size: new AMap.Size(cg.width,cg.height),\r\n image: item.url,\r\n imageSize: new AMap.Size(cg.width,cg.height)\r\n }));\r\n // }else{\r\n // gc.setIcon(item.url);\r\n // }\r\n }\r\n }\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 }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n })\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let ls = [];\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let lineOption = {\r\n strokeColor: cg.color,\r\n strokeOpacity: cg.pellucidity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n path: (item.paths || []).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer',\r\n bubble: true\r\n }\r\n let polyline = new AMap.Polyline(lineOption);\r\n //添加点击事件\r\n polyline.on( 'click', (e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n polyline.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polyline.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itt,ind)=>{\r\n return [...itt]\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 ls.push(polyline);\r\n lsids.push(item.id);\r\n //添加线\r\n // polyline.setMap(t.state.gis);\r\n //根据参数判断是否显示多折线\r\n if(cg.isHidden){\r\n polyline.hide();\r\n }else{\r\n polyline.show();\r\n }\r\n //state中缓存 line的id...用于数据判断\r\n t.state.lineIds.push(item.id);\r\n // polyline.on('click', function(e) {\r\n // let obj = {\r\n // type: 'polyline',\r\n // attributes: {...item.other,...{config:item.config}},\r\n // top: e.pixel.y,\r\n // left: e.pixel.x,\r\n // e: e\r\n // }\r\n // //接入点击事件\r\n // });\r\n });\r\n t.state.gis.add(ls);\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 let op = gc.getOptions();\r\n //根据参数判断是否显示多折线\r\n if(item.config && item.config.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n //获取原有的线属性,转换key值\r\n let cg = {\r\n color: op.strokeColor,\r\n pellucidity: op.strokeOpacity,\r\n lineWidth: op.strokeWeight,\r\n lineType: op.strokeStyle\r\n };\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //重新赋值\r\n let lineOption = {\r\n strokeColor: cg.color,\r\n strokeOpacity: cg.pellucidity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n path: (item.paths || op.path).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer'\r\n }\r\n let pts = item.paths.map((itt,ind)=>{\r\n return [...itt]\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 //更新线\r\n gc.setOptions(lineOption);\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 pgs = [];\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期跟百度一起加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n path: (item.rings || []).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer',\r\n bubble: true\r\n }\r\n let polygon = new AMap.Polygon(polygonOption);\r\n //添加点击事件\r\n polygon.on( 'click', (e)=>{\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((itt,ind)=>{\r\n return [...itt]\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 pgs.push(polygon);\r\n pgsids.push(item.id);\r\n\r\n });\r\n t.state.gis.add(pgs);\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 let op = gc.getOptions();\r\n //根据参数判断是否显示面\r\n // if(item.config && item.config.isHidden){\r\n // gc.hide();\r\n // }else{\r\n // gc.show();\r\n // }\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: op.strokeStyle,\r\n lineWidth: op.strokeWeight,\r\n lineColor: op.strokeColor,\r\n lineOpacity: op.strokeOpacity,\r\n color: op.fillColor,\r\n pellucidity: op.fillOpacity\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //重新赋值\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n path: (item.rings || op.path).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer'\r\n }\r\n let pts = item.rings.map((itt,ind)=>{\r\n return [...itt]\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 //更新线\r\n gc.setOptions(polygonOption);\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 ccs = [];\r\n let ccsids = [...t.state.circleIds];\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期跟百度一起加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n center: new AMap.LngLat(item.longitude,item.latitude),\r\n radius: item.radius,\r\n cursor: 'pointer',\r\n bubble: true\r\n }\r\n //创建圆对象\r\n let circle = new AMap.Circle(circleOption);\r\n //添加点击事件\r\n circle.on( 'click', (e)=>{\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 ccs.push(circle);\r\n ccsids.push(item.id);\r\n });\r\n t.state.gis.add(ccs);\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 let op = gc.getOptions();\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: op.strokeStyle,\r\n lineWidth: op.strokeWeight,\r\n lineColor: op.strokeColor,\r\n lineOpacity: op.strokeOpacity,\r\n color: op.fillColor,\r\n pellucidity: op.fillOpacity\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //重新赋值\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n center: new AMap.LngLat(item.longitude,item.latitude) || op.center,\r\n radius: !item.radius && item != 0?op.radius:item.radius,\r\n cursor: 'pointer'\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 //更新线\r\n gc.setOptions(circleOption);\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\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(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.setDraggable(true);\r\n ms.mapLayer.on('dragend',t.editGraphicChange,t);\r\n break;\r\n case 'polyline':\r\n // break;\r\n case 'polygon':\r\n case 'rectangle':\r\n t.polyEdit = new AMap.PolyEditor(t.state.gis,ms.mapLayer);\r\n t.polyEdit.open();\r\n t.polyEdit.on('adjust',t.editGraphicChange,t);\r\n break;\r\n case 'circle':\r\n t.circleEdit = new AMap.CircleEditor(t.state.gis,ms.mapLayer);\r\n t.circleEdit.open();\r\n t.circleEdit.on('move',t.editGraphicChange,t);\r\n t.circleEdit.on('adjust',t.editGraphicChange,t);\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 switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.setDraggable(false);\r\n ms.mapLayer.off('dragend',t.editGraphicChange,t);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n t.polyEdit.close();\r\n t.polyEdit.off('adjust',t.editGraphicChange,t);\r\n break;\r\n case 'circle':\r\n t.circleEdit.close();\r\n t.circleEdit.off('move',t.editGraphicChange,t);\r\n t.circleEdit.off('adjust',t.editGraphicChange,t);\r\n break;\r\n }\r\n let editGraphic = t.state.editGraphic;\r\n if(editGraphic){\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n },()=>{\r\n t.props.editGraphicChange(editGraphic);\r\n })\r\n }\r\n }\r\n //编辑变动后\r\n editGraphicChange(e){\r\n let t = this;\r\n let ms = t.getGraphic(t.state.editId);\r\n let obj = {\r\n id: t.state.editId,\r\n e: e\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 obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.distance = ms.mapLayer.getLength();\r\n break;\r\n case 'polygon':\r\n case 'rectangle':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.area = e.target.getArea();\r\n break;\r\n case 'circle':\r\n if(!('lnglat' in e)){\r\n obj.e.lnglat = new AMap.LngLat(ms.geometry.x,ms.geometry.y);\r\n }\r\n if(!('radius' in e)){\r\n obj.e.radius = ms.geometry.radius;\r\n }\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.area = Math.pow(ms.geometry.radius,2)*Math.PI;\r\n break;\r\n }\r\n if(ms.geometryType == 'circle'){\r\n if(t.editTimeout){\r\n clearTimeout(t.editTimeout);\r\n }\r\n t.editTimeout = setTimeout(()=>{\r\n t.setState({\r\n editGraphic: obj\r\n },()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n },300);\r\n }else{\r\n t.setState({\r\n editGraphic: obj\r\n },()=>{\r\n t.props.editGraphicChange(obj);\r\n });\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.pixel.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.pixel.x + t.mapLeft,\r\n e: e\r\n }\r\n t.props.clickGraphic(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.on('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.on('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.on('movestart', function(e) {\r\n t.htmlXY = {\r\n px:0,py:0,isCount: true,\r\n ...t.state.gis.lnglatToPixel(t.state.gis.getCenter())\r\n };\r\n $(`#${t.pointCollectionId}`).css({top: '0px',left: '0px',display: 'none'});\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n if(t.stopMove){\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.on('moveend', function(e) {\r\n t.htmlXY.isCount = false;\r\n $(`#${t.pointCollectionId}`).css({top: '0px',left: '0px',display: 'block'});\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n if(t.stopMove){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveEnd(obj);\r\n }else{\r\n t.stopMove = true;\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.on('zoomstart', function(e) {\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n t.stopMove = false;\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.on('zoomend', function(e) {\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\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 mouseOverGraphic(id,e){\r\n let t = this;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.pixel.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.pixel.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 let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.pixel.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.pixel.x + t.mapLeft,\r\n }\r\n t.props.mouseOutGraphic(obj);\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.on('click', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: (e.lnglat || {}).lng,\r\n lat: (e.lnglat || {}).lat\r\n };\r\n obj.pixel = e.pixel;\r\n t.props.clickMap(obj);\r\n });\r\n }\r\n }\r\n //测距\r\n vtxRangingTool () {\r\n let t = this;\r\n t.ruler.turnOn();\r\n //引用百度测距样式\r\n t.state.gis.setDefaultCursor(this.csr);\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 t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n //引用百度测距样式\r\n t.state.gis.setDefaultCursor('crosshair');\r\n let param = {};\r\n let paramgcr = {};\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.strokeColor = drawParam.parameter.lineColor;\r\n paramgcr.strokeOpacity = drawParam.parameter.lineOpacity;\r\n paramgcr.strokeWeight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.strokeStyle = drawParam.parameter.lineType;\r\n paramgcr.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: drawParam.parameter.color,\r\n lineColor: drawParam.parameter.lineColor,\r\n lineOpacity: drawParam.parameter.lineOpacity,\r\n pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: drawParam.geometryType\r\n };\r\n }\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n param.icon = new AMap.Icon({\r\n image: drawParam.parameter.url || 'http://webapi.amap.com/theme/v1.3/markers/n/mark_bs.png',\r\n size: new AMap.Size(drawParam.parameter.width || 36,drawParam.parameter.height || 36),\r\n offset: new AMap.Pixel(drawParam.parameter.labelPixelX || -10,drawParam.parameter.labelPixelY || -34)\r\n });\r\n param.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n url: drawParam.parameter.url || 'http://webapi.amap.com/theme/v1.3/markers/n/mark_bs.png',\r\n config: {\r\n width: drawParam.parameter.width || 36,\r\n height: drawParam.parameter.height || 36\r\n }\r\n },\r\n type: 'point'\r\n };\r\n t.mousetool.marker(param);\r\n break;\r\n case 'polyline':\r\n param.strokeColor = drawParam.parameter.color;\r\n param.strokeOpacity = drawParam.parameter.pellucidity;\r\n param.strokeWeight = drawParam.parameter.lineWidth;\r\n param.strokeStyle = drawParam.parameter.lineType;\r\n param.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 pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: 'polyline'\r\n };\r\n t.mousetool.polyline(param);\r\n break;\r\n case 'polygon':\r\n t.mousetool.polygon(paramgcr);\r\n break;\r\n case 'circle':\r\n t.mousetool.circle(paramgcr);\r\n break;\r\n case 'rectangle':\r\n t.mousetool.rectangle(paramgcr);\r\n break;\r\n }\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\r\n }\r\n //关闭绘制图元\r\n closeDraw(){\r\n let t = this;\r\n //恢复鼠标默认样式\r\n t.state.gis.setDefaultCursor();\r\n t.mousetool.close();\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(ms){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n if('getPath' in ms){\r\n path = ms.getPath();\r\n path = path.map((item,index)=>{\r\n let lng = item.lng,lat = item.lat;\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n }\r\n return {lnglatAry,_extent,path};\r\n }\r\n //删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n if(!!this.GM.getGraphic(id)){\r\n if((t.GM.getGraphicParam(id).attributes.config || {}).isAnimation){\r\n this.GM.getGraphic(id).stopMove();\r\n }\r\n //清除聚合点 避免异常\r\n t.clusterObj.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n this.GM.getGraphic(id).setMap();\r\n //清除对应id的图元数据缓存\r\n this.GM.removeGraphic(id);\r\n }else{\r\n return false;\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 //点位角度旋转(以指向东(右)为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.lngLatToContainer(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.lngLatToContainer(new AMap.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 AMap.LngLat(f[0],f[1]);\r\n let lnglat2 = new AMap.LngLat(s[0],s[1]);\r\n return Math.round(lnglat1.distance(lnglat2));\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return false;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n 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 let psc = new AMap.PlaceSearch({\r\n pageSize,\r\n pageIndex\r\n });\r\n return new Promise((resolve)=>{\r\n psc.search(searchValue,(status,result)=>{\r\n let list = result.poiList.pois.map((r)=>({\r\n id: r.id,\r\n longitude: r.location.lng,\r\n latitude: r.location.lat,\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 resolve(list)\r\n })\r\n })\r\n }\r\n render(){\r\n let t = this; \r\n let _map = this.props;\r\n return(\r\n <div id={_map.mapId} style={{width:'100%',height:'100%'}}></div>\r\n );\r\n }\r\n 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 }\r\n componentWillUnmount(){\r\n let t = this;\r\n //关闭moveTo定时\r\n for(let i in t.GM.allParam){\r\n if(t.GM.allParam.type == 'point'){\r\n t.GM.getGraphic[i].stopMove();\r\n }\r\n }\r\n this.state.gis.destroy();\r\n this.state.gis = null;\r\n }\r\n componentDidUpdate(prevProps, prevState) {//重新渲染结束\r\n let t = this;\r\n let props = t.props;\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n\r\n //回调显示方法\r\n if(props.showGraphicById){\r\n props.showGraphicById(t.showGraphicById.bind(t));\r\n }\r\n //回调隐藏方法\r\n if(props.hideGraphicById){\r\n props.hideGraphicById(t.hideGraphicById.bind(t));\r\n } \r\n \r\n }\r\n componentWillReceiveProps(nextProps,prevProps) {//已加载组件,收到新的参数时调用\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,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 isClearAll,mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n mapStyle,coverageType,\r\n infoWindowData\r\n } = nextProps;\r\n let props = t.props;\r\n // 设置地图样式\r\n if(mapStyle && !t.deepEqual(mapStyle,t.props.mapStyle)){\r\n t.state.gis.setMapStyle(mapStyle);\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(!t.state.mapCreated)return;\r\n if(mapPointCollection instanceof Array && 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 pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && props.mapPoints instanceof Array && !t.deepEqual(mapPoints,props.mapPoints)){\r\n let oldMapPoints = props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.state.editId){\r\n oldMapPoints = props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,props.mapPolygons)){\r\n let oldMapPolygons = props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.state.editId){\r\n oldMapPolygons = props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && props.mapCircles instanceof Array && !t.deepEqual(mapCircles,props.mapCircles)){\r\n let oldMapCircles = props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.state.editId){\r\n oldMapCircles = props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && props.mapLines instanceof Array && !t.deepEqual(mapLines,props.mapLines)){\r\n let oldMapLines = props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.state.editId){\r\n oldMapLines = props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.updateLine(updatedData);\r\n t.addLine(addedData); \r\n }\r\n //绘制边界线\r\n if(boundaryName instanceof Array && props.boundaryName instanceof Array && !t.deepEqual(boundaryName,props.boundaryName)){\r\n let newBDName = Set(boundaryName);\r\n let oldBDName = Set(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,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 && props.imageOverlays instanceof Array && !t.deepEqual(imageOverlays,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 // 比例尺控件位置改变\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 for(let i in t.GM.allParam){\r\n if(t.GM.allParam[i].geometryType == 'point'){\r\n if(t.GM.getGraphic[i]){\r\n t.GM.getGraphic[i].stopMove();\r\n }\r\n }\r\n }\r\n if(t.pointCollectTimer){\r\n clearTimeout(t.pointCollectTimer);\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\n\r\nexport default VortexAMap;"],"mappings":"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"}
1
+ {"version":3,"file":"AMap.js","names":["Set","Immutable","VortexAMap","props","GM","graphicManage","getPolygonArea","pointCollectionId","morepoints","htmlXY","x","y","px","py","isCount","stopMove","mapLeft","mapTop","clusterObj","trafficLayer","scale","tool","ruler","mousetool","districeSearch","polyEdit","circleEdit","editTimeout","heatmap","satellite","roadNet","csr","test","navigator","userAgent","toLowerCase","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","mapZoomLevel","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","AnchorConstant","tr","tl","bl","br","frameSelectProps","loadMapJs","loadMapComplete","Promise","resolve","reject","window","AMap","$","getScript","configUrl","mapServerURL","PointCollection","all","then","setTime","allEvents","isLoading","i","length","setTimeout","t","mapPoints","mapLines","mapPolygons","mapCircles","imageOverlays","setVisiblePoints","mapVisiblePoints","mapCenter","mapCluster","mapPointCollection","showControl","boundaryName","heatMapData","areaRestriction","coverageType","infoWindowData","setMapType","createMap","setCenter","Array","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","setZoomLevel","cluster","satelliteSwitch","showMapTypeControl","addBaiduBoundary","showGraphicById","bind","hideGraphicById","setAreaRestriction","heatMapOverlay","infoWindow","addPointCollection","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","clickMap","setState","divId","viewMode","mapStyle","minZoom","maxZoom","VtxMap","Map","toString","resizeEnable","zoom","center","zooms","setMapStyle","MarkerClusterer","offsetS","Pixel","offsetT","zlt","zls","location","tp","direction","type","Scale","position","offset","ToolBar","locate","opts","subdistrict","extensions","level","DistrictSearch","RangingTool","on","points","distance","lnglats","map","item","index","lng","lat","setDefaultCursor","turnOff","mapRangingTool","MouseTool","obj","drawExtData","getExtData","backobj","id","attributes","geometryType","mapLayer","geometry","setGraphic","setGraphicParam","e","clickGraphic","mouseOverGraphic","mouseOutGraphic","dealData","lnglatAry","_extent","path","getPosition","getLng","getLat","paths","getLength","area","getArea","rings","getCenter","radius","getRadius","Math","PI","pow","close","drawEnd","callback","Function","Heatmap","nowXY","lnglatToPixel","css","top","left","display","initPropsForUser","frameSelect","clearFrameSelect","clearFrameSelectById","parameter","data","includes","message","warn","params","random","color","lineColor","lineOpacity","lineWidth","pellucidity","lineType","draw","key","removeGraphic","TileLayer","Satellite","RoadNet","hide","show","imageAry","sw","ne","url","opacity","displayOnMinLevel","displayOnMaxLevel","console","isArray","swnep","Bounds","ImageLayer","bounds","setLayers","clearMarkers","clearMap","clearAll","gt","sw_ne","LngLat","setLimitBounds","clearLimitBounds","Traffic","zIndex","add","ids","fitView","setFitView","getAllOverlays","pts","split","Marker","getMoreGraphic","setZoom","getZoom","northEast","getBounds","toBounds","getNorthEast","southWest","getSouthWest","mapSize","getSize","nowCenter","getCurrentCenter","getZoomLevel","calculatePointsDistance","arg","ary","Object","prototype","apply","filter","getGraphicParam","config","isAnimation","ms","setMarkers","scaleOffset","scaleControl","removeControl","navigationControl","control","addControl","navigation","mapTypeControl","MapType","reloaction","right","bottom","timer","setInterval","log","clearInterval","gp","gg","getGraphic","p","longitude","latitude","other","getPath","bdNames","forEach","name","search","status","result","Date","getTime","districtList","boundaries","push","removedBDNames","removedBDIds","indexOf","d","cg","max","visible","option","gradient","setOptions","setDataSet","width","height","sContent","document","createElement","infowindow","InfoWindow","content","setSize","Size","onClose","render","open","pointCollectTimer","clearTimeout","pointCollectionHtml","className","append","lngLatToContainer","options","size","shape","VotexpointCollection","GMapLib","value","ds","ind","reDraw","clear","ps","psids","isRepetition","labelContent","labelPixelX","labelPixelY","markerContentX","markerContentY","deg","markerOption","angle","clickable","cursor","bubble","extData","BAnimationType","animation","markerContent","icon","Icon","image","imageSize","canShowLabel","labelClass","label","marker","gc","isuserUrlLeft","getLabel","getOffset","getX","getY","getAngle","getzIndex","setLabel","setOffset","setAngle","setzIndex","setPosition","delay","animationDelay","speed","autoRotation","ddeg","rotateDeg","urlleft","moveTo","k","setAnimation","setContent","setIcon","ls","lsids","isHidden","lineOption","strokeColor","strokeOpacity","strokeWeight","strokeStyle","itt","indd","Polyline","op","getOptions","pgs","pgsids","polygonOption","fillColor","fillOpacity","Polygon","ccs","ccsids","circleOption","Circle","endEdit","setDraggable","editGraphicChange","PolyEditor","CircleEditor","off","param","target","lnglat","pixel","getMapExtent","updatePointCollection","clickLngLat","turnOn","drawParam","len","splice","paramgcr","xmax","xmin","ymax","ymin","lngX","latX","removeMarker","setMap","sp","ep","spLngLat","s","tan","atan","disy","bias","a","b","is","fromJS","f","lnglat1","lnglat2","round","totalDistance","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","searchValue","pageSize","pageIndex","psc","PlaceSearch","list","poiList","pois","r","_map","getElementById","offsetLeft","offsetTop","init","allParam","prevProps","prevState","nextProps","customizedBoundary","isOpenTrafficInfo","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isClearAll","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","deepEqual","dataMatch","clearPointCollection","clearAllPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","updatePoint","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","updateLine","newBDName","oldBDName","removedBoundaryName","addedBoundaryName","removeBaiduBoundary","doEdit","closeDraw","openTrafficInfo","hideTrafficInfo","vtxRangingTool","clearAreaRestriction","JSON","stringify","React","Component"],"sources":["VtxMap/AMap/AMap.js"],"sourcesContent":["import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport {graphicManage,getPolygonArea} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\nconst {Set} = Immutable;\r\nclass VortexAMap 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.morepoints = [];//海量点集合\r\n this.htmlXY = {x:0,y:0,px:0,py:0,isCount: false};\r\n this.stopMove = true;//防止zoom事件触发时,联动的触发move事件\r\n this.mapLeft = 0;//地图offset的Left值\r\n this.mapTop = 0;//地图offset的Top值\r\n this.clusterObj = null;//聚合点类对象\r\n this.trafficLayer = null;//路况类对象\r\n this.scale = null;//比例尺控件对象\r\n this.tool = null;//比例尺工具对象\r\n this.ruler = null;//测距对象\r\n this.mousetool = null;//绘制图元对象\r\n this.districeSearch = null;//行政区划搜索对象\r\n this.polyEdit = null;//折线和多边形编辑对象\r\n this.circleEdit = null;//圆编辑对象\r\n this.editTimeout = null;//圆编辑时的延迟回调,避免重复调用\r\n this.heatmap = null;//热力图对象\r\n this.satellite = null;//底图图层对象-卫星图\r\n this.roadNet = null;//路网图层对象\r\n //为了样式相同,引用百度的鼠标样式\r\n this.csr = \r\n /webkit/.test(navigator.userAgent.toLowerCase()) ?\r\n 'url(\"http://api.map.baidu.com/images/ruler.cur\") 3 6, crosshair' :\r\n 'url(\"http://api.map.baidu.com/images/ruler.cur\"), crosshair';\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 }\r\n this.AnchorConstant = {\r\n tr: 'RT',\r\n tl: 'LT',\r\n bl: 'LB',\r\n br: 'RB'\r\n }\r\n this.frameSelectProps = {}\r\n this.loadMapJs();\r\n }\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.AMap){\r\n resolve(window.AMap);\r\n }\r\n else{\r\n $.getScript(`${configUrl.mapServerURL}/A_content.js`,()=>{\r\n $.getScript('//webapi.amap.com/maps?v=1.4.14&key=e59ef9272e3788ac59d9a22f0f8cf9fe&plugin=AMap.Geolocation,AMap.MarkerClusterer,AMap.MapType,AMap.Scale,AMap.ToolBar,AMap.DistrictSearch,AMap.RangingTool,AMap.MouseTool,AMap.PolyEditor,AMap.CircleEditor,AMap.PlaceSearch,AMap.Heatmap',()=>{\r\n let PointCollection = new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`,()=>{\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection]).then(()=>{\r\n (function setTime() {\r\n let allEvents = [\r\n window.AMap,\r\n 'MarkerClusterer',\r\n 'MapType',\r\n 'Scale',\r\n 'ToolBar',\r\n 'DistrictSearch',\r\n 'RangingTool',\r\n 'MouseTool',\r\n 'PolyEditor',\r\n 'CircleEditor',\r\n 'PlaceSearch',\r\n 'Heatmap'\r\n ];\r\n let isLoading = true;\r\n for(let i = 0; i <= allEvents.length - 1; i++){\r\n if(i === 0){\r\n if(!allEvents[i]){\r\n isLoading = false;\r\n break;\r\n }\r\n }else{\r\n if(!allEvents[0][allEvents[i]]){\r\n isLoading = false;\r\n break;\r\n }\r\n }\r\n }\r\n if(isLoading){\r\n resolve(window.AMap);\r\n }else{\r\n setTimeout(()=>{\r\n setTime();\r\n },50)\r\n }\r\n })();\r\n })\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 imageOverlays,\r\n setVisiblePoints,mapVisiblePoints,\r\n mapCenter,mapZoomLevel,\r\n mapCluster,mapPointCollection,\r\n showControl,boundaryName,heatMapData,\r\n areaRestriction,coverageType,\r\n infoWindowData\r\n } = t.props;\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType){\r\n t.setMapType(coverageType);\r\n }\r\n //创建地图\r\n t.createMap();\r\n //初始化中心点\r\n t.setCenter(mapCenter);\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(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(t.props.showGraphicById){\r\n t.props.showGraphicById(t.showGraphicById.bind(t));\r\n }\r\n //回调隐藏方法\r\n if(t.props.hideGraphicById){\r\n t.props.hideGraphicById(t.hideGraphicById.bind(t));\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\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 t.addPointCollection(mapPointCollection);\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 //地图方法\r\n createMap(divId){\r\n let t = this;\r\n const {viewMode,mapStyle,mapCenter,mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\r\n //缓存Map的对象,方便后期的功能操作\r\n //后期不会操作gis数据,直接通过state缓存.\r\n if(window.VtxMap){\r\n window.VtxMap[mapId] = null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n window.VtxMap[mapId] = t.state.gis = new AMap.Map(mapId.toString(),{\r\n viewMode: viewMode?viewMode:'2D',\r\n resizeEnable: true,\r\n //zoom等级,和百度一样默认10\r\n zoom: mapZoomLevel || 10,\r\n //不传中心点,高德地图默认使用用户所在地的城市为中心点\r\n center: (mapCenter && mapCenter instanceof Array && mapCenter.length == 2)?mapCenter:[116.400433,39.906705],\r\n zooms: [minZoom || 3, maxZoom || 18]\r\n });\r\n if(mapStyle){\r\n t.state.gis.setMapStyle(mapStyle)\r\n }\r\n //聚合点类对象\r\n t.clusterObj = new AMap.MarkerClusterer(t.state.gis,[]);\r\n //比例尺控件对象\r\n /*算出比例尺位置偏移量*/\r\n let offsetS = new AMap.Pixel(60,17);\r\n let offsetT = new AMap.Pixel(25,10);\r\n let zlt = 'RB';\r\n let zls = 'RB';\r\n if(t.props.showControl){\r\n switch(t.props.showControl.location){\r\n case 'tl':\r\n zlt = 'LT';\r\n zls = 'LB';\r\n offsetS = new AMap.Pixel(10,17);\r\n offsetT = new AMap.Pixel(5,10);\r\n break;\r\n case 'bl':\r\n zlt = 'LB';\r\n zls = 'LB';\r\n offsetS = new AMap.Pixel(60,19);\r\n offsetT = new AMap.Pixel(5,12);\r\n break;\r\n case 'tr':\r\n zlt = 'RT';\r\n zls = 'RB';\r\n offsetS = new AMap.Pixel(25,17);\r\n offsetT = new AMap.Pixel(25,10);\r\n break;\r\n case 'br':\r\n zlt = 'RB';\r\n zls = 'RB';\r\n offsetS = new AMap.Pixel(70,17);\r\n offsetT = new AMap.Pixel(25,10);\r\n break;\r\n }\r\n //默认是all\r\n let tp = {\r\n ruler: true,\r\n direction: true\r\n }\r\n switch(t.props.showControl.type){\r\n case 'small':\r\n tp = {\r\n ruler: false,\r\n direction: true\r\n }\r\n break;\r\n case 'pan':\r\n tp = {\r\n ruler: false,\r\n direction: true\r\n }\r\n break;\r\n case 'zoom':\r\n tp = {\r\n ruler: false,\r\n direction: false\r\n }\r\n break;\r\n }\r\n t.scale = new AMap.Scale({\r\n position: zls,\r\n offset: offsetS\r\n });\r\n //比例尺工具对象\r\n t.tool = new AMap.ToolBar({\r\n position: zlt,\r\n offset: offsetT,\r\n locate: false,\r\n ...tp\r\n });\r\n }\r\n //搜索服务\r\n let opts = {\r\n subdistrict: 1, //返回下一级行政区\r\n extensions: 'all', //返回行政区边界坐标组等具体信息\r\n level: 'district' //查询行政级别为 市\r\n };\r\n //实例化DistrictSearch\r\n t.districeSearch = new AMap.DistrictSearch(opts);\r\n //实例化RangingTool\r\n t.ruler = new AMap.RangingTool(t.state.gis);\r\n t.ruler.on('end',({type,polyline,points,distance})=>{\r\n let lnglats = points.map((item,index)=>{\r\n return [item.lng,item.lat];\r\n })\r\n //恢复鼠标默认样式\r\n t.state.gis.setDefaultCursor();\r\n t.ruler.turnOff();\r\n if(typeof(t.props.mapRangingTool) ===\"function\"){\r\n t.props.mapRangingTool({\r\n distance,lnglats\r\n });\r\n }\r\n });\r\n //绘制图元类\r\n t.mousetool = new AMap.MouseTool(t.state.gis);\r\n //绘制完后的回调\r\n t.mousetool.on('draw',({type,obj})=>{\r\n let drawExtData = obj.getExtData();\r\n let backobj = {\r\n id: drawExtData.id,\r\n attributes: drawExtData.attributes,\r\n geometryType: drawExtData.type == 'rectangle'?'polygon':drawExtData.type,\r\n mapLayer: obj,\r\n geometry: {\r\n type: drawExtData.type == 'rectangle'?'polygon':drawExtData.type\r\n }\r\n };\r\n //缓存绘制的图元信息\r\n t.GM.setGraphic(drawExtData.id,obj);\r\n t.GM.setGraphicParam(drawExtData.id,backobj);\r\n //添加点击事件\r\n obj.on( 'click', (e)=>{\r\n t.clickGraphic(drawExtData.id,e);\r\n });\r\n obj.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(drawExtData.id,e);\r\n });\r\n obj.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(drawExtData.id,e);\r\n });\r\n\r\n //区别点和圆的经纬度数据处理\r\n let {lnglatAry,_extent,path} = t.dealData(obj);\r\n //处理返回数据\r\n switch(drawExtData.type){\r\n case 'point':\r\n backobj.geometry.x = obj.getPosition().getLng();\r\n backobj.geometry.y = obj.getPosition().getLat();\r\n break;\r\n case 'polyline':\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.paths = path;\r\n backobj.geometry._extent = _extent;\r\n backobj.distance = obj.getLength();\r\n break;\r\n case 'polygon':\r\n backobj.area = obj.getArea();\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.rings = path;\r\n backobj.geometry._extent = _extent;\r\n break;\r\n case 'rectangle':\r\n backobj.area = obj.getArea();\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.rings = path;\r\n backobj.geometry._extent = _extent;\r\n break;\r\n case 'circle':\r\n backobj.geometry.x = obj.getCenter().getLng();\r\n backobj.geometry.y = obj.getCenter().getLat();\r\n backobj.geometry.radius = obj.getRadius();\r\n backobj.area = Math.PI*Math.pow(backobj.geometry.radius,2);\r\n break;\r\n }\r\n //恢复鼠标默认样式\r\n t.state.gis.setDefaultCursor();\r\n t.mousetool.close();\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n if(t.frameSelectProps[backobj.id]?.callback instanceof Function){\r\n t.frameSelectProps[backobj.id].callback(backobj);\r\n }\r\n });\r\n t.heatmap = new AMap.Heatmap(t.state.gis);\r\n t.state.gis.on('mapmove',(e)=>{\r\n if(t.htmlXY.isCount){\r\n let nowXY = t.state.gis.lnglatToPixel(t.state.gis.getCenter());\r\n $(`#${t.pointCollectionId}`).css({\r\n top: t.htmlXY.y - nowXY.y,\r\n left: t.htmlXY.x - nowXY.x,\r\n display: 'none'\r\n });\r\n }\r\n })\r\n t.initPropsForUser();\r\n }\r\n // 初始化对外方法\r\n initPropsForUser(){\r\n const t = this;\r\n t.state.gis[\"frameSelect\"] = (obj={},callback) => {\r\n return t.frameSelect(obj,callback);\r\n }\r\n t.state.gis[\"clearFrameSelect\"] = () => {\r\n return t.clearFrameSelect();\r\n }\r\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\r\n return t.clearFrameSelectById(id);\r\n }\r\n }\r\n // 框选\r\n frameSelect({geometryType,parameter={},data={}},callback){\r\n if(!['polygon','circle','rectangle'].includes(geometryType)){\r\n message.warn(\"传入的类型不支持框选!\")\r\n return false;\r\n }\r\n const t = this;\r\n let params = {},\r\n type = geometryType||'polygon',\r\n id = data.id || `frameSelectFeature_${Math.random()}`;\r\n\r\n params.color = parameter.color||'red';\r\n params.lineColor = parameter.lineColor||'red';\r\n params.lineOpacity = parameter.lineOpacity||1;\r\n params.lineWidth = parameter.lineWidth||2;\r\n params.pellucidity = parameter.pellucidity||0.6;\r\n params.lineType = parameter.lineType||'solid';\r\n\r\n t.draw({\r\n geometryType: type,\r\n parameter: {\r\n ...parameter,\r\n ...params\r\n },\r\n data:{\r\n id: id\r\n }\r\n });\r\n\r\n t.frameSelectProps[id] = {\r\n callback,\r\n id,\r\n type: geometryType\r\n } \r\n }\r\n // 清除框选\r\n clearFrameSelect(){\r\n for(let key in this.frameSelectProps){\r\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\r\n }\r\n this.frameSelectProps = {};\r\n }\r\n // 清除框选ById\r\n clearFrameSelectById(id){\r\n let obj = this.frameSelectProps[id];\r\n this.removeGraphic(obj.id, obj.type);\r\n delete this.frameSelectProps[id];\r\n }\r\n /* \r\n 切换地图矢量图和卫星图背景\r\n */\r\n setMapType(type){\r\n if(!this.satellite){\r\n this.satellite = new AMap.TileLayer.Satellite({map: this.state.gis});\r\n this.roadNet = new AMap.TileLayer.RoadNet({map: this.state.gis})\r\n }\r\n switch (type) {\r\n case 'sl':\r\n this.satellite.hide();\r\n this.roadNet.hide();\r\n break;\r\n case 'wx':\r\n this.satellite.show();\r\n this.roadNet.show();\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 AMap.Bounds(sw, ne),\r\n imageUrlOverlay = new AMap.ImageLayer({\r\n url,\r\n zooms: [displayOnMinLevel || 3,displayOnMaxLevel || 18],\r\n bounds: swnep\r\n });\r\n t.state.gis.setLayers([new AMap.TileLayer(),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 t.clusterObj.clearMarkers();\r\n t.state.gis.clearMap();\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 && gt instanceof Array && gt.length == 2){\r\n t.state.gis.setCenter(gt);\r\n // t.setState({center:gt});\r\n }else{\r\n t.state.gis.setCenter([116.400433,39.906705]);\r\n // t.setState({center:[117.468021,39.890092]});\r\n }\r\n }\r\n /*地图区域限制*/\r\n setAreaRestriction(sw_ne){\r\n let bounds = new AMap.Bounds(new AMap.LngLat(sw_ne[0][0],sw_ne[0][1]),new AMap.LngLat(sw_ne[1][0],sw_ne[1][1]));\r\n this.state.gis.setLimitBounds(bounds);\r\n }\r\n clearAreaRestriction(){\r\n this.state.gis.clearLimitBounds();\r\n }\r\n //展示路况信息\r\n openTrafficInfo(){\r\n let t = this;\r\n //判断是否已经创建路况对象\r\n if(this.trafficLayer){\r\n this.trafficLayer.show();\r\n }else{\r\n //路况类对象\r\n let trafficLayer = new AMap.TileLayer.Traffic({\r\n zIndex: 10\r\n });\r\n t.state.gis.add(trafficLayer);\r\n this.trafficLayer = trafficLayer;\r\n }\r\n }\r\n //隐藏路况信息\r\n hideTrafficInfo(){\r\n if(this.trafficLayer){\r\n this.trafficLayer.hide();\r\n }\r\n }\r\n //设置指定图元展示 高德只有zoom和center全适应,单适应暂时无法实现\r\n setVisiblePoints(obj){\r\n let t = this;\r\n let ids = [];\r\n switch(obj.fitView){\r\n case 'point':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('marker'));\r\n break;\r\n case 'line':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('polyline'));\r\n break;\r\n case 'polygon':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('polygon'));\r\n break;\r\n case 'circle':\r\n t.state.gis.setFitView(t.state.gis.getAllOverlays('circle'));\r\n break;\r\n case 'all':\r\n let pts = [...t.state.gis.getAllOverlays('marker'),...t.state.gis.getAllOverlays('polyline'),\r\n ...t.state.gis.getAllOverlays('polygon'),...t.state.gis.getAllOverlays('circle')];\r\n t.state.gis.setFitView(pts);\r\n break;\r\n default:\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 // let l = new AMap.LngLat(ids[0][0],ids[0][1]),\r\n // r = new AMap.LngLat(ids[1][0],ids[1][1]); \r\n // let b = new AMap.Bounds(l,r); \r\n // t.state.gis.setBounds(b);\r\n // fix: 高德地图在[[lng,lat],[lng,lat]]方式下的最佳视野\r\n t.state.gis.setFitView(ids.map((item) => {\r\n return new AMap.Marker({\r\n position: new AMap.LngLat(item[0], item[1]),\r\n });\r\n }));\r\n }else{\r\n t.state.gis.setFitView(this.GM.getMoreGraphic(ids));\r\n }\r\n break;\r\n }\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n t.state.gis.setZoom(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 northEast = (this.props.viewMode == '3D'?gis.getBounds().toBounds() : gis.getBounds()).getNorthEast(),\r\n southWest = (this.props.viewMode == '3D'?gis.getBounds().toBounds() : gis.getBounds()).getSouthWest();\r\n let obj = {\r\n mapSize: gis.getSize(),\r\n nowCenter: t.getCurrentCenter(),\r\n northEast: {\r\n lat: northEast.lat,\r\n lng: northEast.lng\r\n },\r\n southWest: {\r\n lat: southWest.lat,\r\n lng: southWest.lng\r\n },\r\n zoom: t.getZoomLevel()\r\n }\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],[\r\n northEast.getLng(),northEast.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 ary = ary.filter((item,index)=>{\r\n return !(t.GM.getGraphicParam(item).attributes.config || {}).isAnimation;\r\n });\r\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n return !item && item != 0 ? false : true;\r\n });\r\n t.clusterObj.setMarkers(ms);\r\n }\r\n //展示比例尺\r\n showControl (props){\r\n let t = this, location='RT',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 if(config.showControl.offset && config.showControl.offset.length>0){\r\n offset = new AMap.Pixel(config.showControl.offset[0],config.showControl.offset[1])\r\n scaleOffset = new AMap.Pixel(config.showControl.offset[0] + 70,config.showControl.offset[1])\r\n }\r\n // 添加比例尺\r\n let control = new AMap.Scale({position: location, offset: scaleOffset});\r\n t.state.gis.addControl(control);\r\n t.scaleControl = control;\r\n // 包含平移和缩放按钮\r\n let navigation = new AMap.ToolBar({position: location, offset}); \r\n t.state.gis.addControl(navigation);\r\n t.navigationControl = navigation;\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 showMapTypeControl (props){\r\n let t = this,location = 'RT',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 // 地图切换控件\r\n let control = new AMap.MapType({position: location, offset: offset});\r\n t.state.gis.addControl(control);\r\n t.mapTypeControl = control;\r\n\r\n // TODO,MapType没有这些属性,所以下面定位和偏移不生效,手动修改\r\n function reloaction() {\r\n if (location == 'RT') {\r\n $('div.amap-maptypecontrol').css({ right: 0, top: 0, left: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LT') {\r\n $('div.amap-maptypecontrol').css({ left: 0 + 64, top: 0, right: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LB') {\r\n $('div.amap-maptypecontrol').css({ left: 0 + 64, bottom: 0 + 84, right: 'inherit', top: 'inherit' });\r\n } else if (location == 'RB') {\r\n $('div.amap-maptypecontrol').css({ right: 0, bottom: 0 + 84, left: 'inherit', top: 'inherit' });\r\n }\r\n if (config.satelliteSwitch.offset && config.satelliteSwitch.offset.length > 0) {\r\n if (location == 'RT') {\r\n $('div.amap-maptypecontrol').css({ right: config.satelliteSwitch.offset[0], top: config.satelliteSwitch.offset[1], left: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LT') {\r\n $('div.amap-maptypecontrol').css({ left: config.satelliteSwitch.offset[0] + 64, top: config.satelliteSwitch.offset[1], right: 'inherit', bottom: 'inherit' });\r\n } else if (location == 'LB') {\r\n $('div.amap-maptypecontrol').css({ left: config.satelliteSwitch.offset[0] + 64, bottom: config.satelliteSwitch.offset[1] + 84, right: 'inherit', top: 'inherit' });\r\n } else if (location == 'RB') {\r\n $('div.amap-maptypecontrol').css({ right: config.satelliteSwitch.offset[0], bottom: config.satelliteSwitch.offset[1] + 84, left: 'inherit', top: 'inherit' });\r\n }\r\n }\r\n }\r\n if ($('div.amap-maptypecontrol').length > 0) {\r\n reloaction();\r\n } else {\r\n let timer = setInterval(() => {\r\n console.log(123);\r\n if ($('div.amap-maptypecontrol').length > 0) {\r\n clearInterval(timer)\r\n reloaction();\r\n }\r\n }, 500)\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 let {lnglatAry,_extent,path} = t.dealData(gg);\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.getPosition().getLng();\r\n lat = gg.getPosition().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.getPath().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n lnglatAry,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts,\r\n _extent\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n pts = gg.getPath().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n lnglatAry,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts,\r\n _extent\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 showGraphicById (id){\r\n let t = this;\r\n t.GM.getGraphic(id).show();\r\n }\r\n //隐藏图元\r\n hideGraphicById(id){\r\n let t = this;\r\n t.GM.getGraphic(id).hide();\r\n }\r\n //画出对应边界线 name区域名\r\n addBaiduBoundary(bdNames){\r\n let t = this;\r\n bdNames.forEach(name=>{\r\n t.districeSearch.search(name,(status,result)=>{\r\n if(status == 'complete'){\r\n let id = 'boundary' + new Date().getTime();\r\n let paths = result.districtList[0].boundaries[0].map((item,index)=>{\r\n return [item.lng,item.lat];\r\n });\r\n t.addPolygon([{id,rings:paths}]);\r\n t.state.boundaryInfo.push({id,name:name});\r\n } \r\n });\r\n })\r\n }\r\n removeBaiduBoundary(removedBDNames){\r\n let removedBDIds = this.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)>-1).map(item=>item.id);\r\n this.setState({boundaryInfo:this.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)==-1)});\r\n removedBDIds.forEach(id=>{\r\n this.removeGraphic(id,'polygon');\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 let option = {\r\n radius: cg.radius,\r\n opacity: [0,cg.opacity]\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.heatmap.show();\r\n }else{\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 AMap.InfoWindow({\r\n // isCustom: true,\r\n content: sContent\r\n });\r\n infowindow.setSize(new AMap.Size(cg.width, cg.height + 20))\r\n\r\n if(d.onClose instanceof Function){\r\n infowindow.on(\"close\", e => {\r\n d.onClose(e);\r\n })\r\n }\r\n\r\n if(d.lat && d.lng && d.content){\r\n render(d.content, sContent);\r\n infowindow.open(t.state.gis,[d.lng,d.lat]);\r\n\r\n } else {\r\n infowindow.close();\r\n }\r\n }\r\n //添加海量点\r\n addPointCollection(data = []){\r\n let t = this;\r\n if(!$(`#${t.state.mapId} .amap-layers`).length){\r\n if(t.pointCollectTimer){\r\n clearTimeout(t.pointCollectTimer);\r\n }\r\n t.pointCollectTimer = setTimeout(() => {\r\n t.addPointCollection(data);\r\n }, 50);\r\n }else{\r\n if(!$(`#${t.pointCollectionId}`).length){\r\n //创建海量点图层\r\n //加上mapId 实现多地图\r\n t.pointCollectionId = `${t.state.mapId}_${t.pointCollectionId}`\r\n let pointCollectionHtml = document.createElement('div');\r\n pointCollectionHtml.id = t.pointCollectionId;\r\n pointCollectionHtml.class = 'vtx_gmap_html_pointCollection_a';\r\n pointCollectionHtml.className = 'vtx_gmap_html_pointCollection_a';\r\n $($(`#${t.state.mapId} .amap-layers`)[0]).append(pointCollectionHtml);\r\n }else{\r\n \r\n }\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = (d.points || []).map((d,i)=>{\r\n let p = new AMap.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainer(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().width,\r\n height: t.state.gis.getSize().height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points,options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\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 AMap.LngLat(d.lng,d.lat);\r\n p = t.state.gis.lngLatToContainer(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().width,\r\n height: t.state.gis.getSize().height\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 addPoint(mapPoints,type){\r\n let t = this;\r\n let ps = [];\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n width: 30,\r\n height: 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n markerContentX: -13,\r\n markerContentY: -42,\r\n zIndex: 100,\r\n deg: 0,\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 position: new AMap.LngLat(item.longitude,item.latitude),\r\n offset: new AMap.Pixel(cg.markerContentX,cg.markerContentY),\r\n zIndex: cg.zIndex,\r\n angle: cg.deg,\r\n clickable: true,\r\n cursor: 'pointer',\r\n bubble: true,\r\n extData: {\r\n id: item.id\r\n }\r\n }\r\n if(cg.BAnimationType == 0){\r\n markerOption.animation ='AMAP_ANIMATION_BOUNCE';\r\n }else if(cg.BAnimationType == 1){\r\n markerOption.animation = 'AMAP_ANIMATION_DROP';\r\n }else{\r\n markerOption.animation = 'AMAP_ANIMATION_NONE';\r\n }\r\n //判断html还是图片\r\n if(!!item.markerContent){\r\n markerOption.content = item.markerContent;\r\n }else{\r\n if(item.url){\r\n // 解决自定义的图标设置图片大小无效\r\n // if(item.url.indexOf('http://') > -1 || item.url.indexOf('https://') > -1){\r\n markerOption.icon = new AMap.Icon({\r\n size: new AMap.Size(cg.width,cg.height),\r\n image: item.url,\r\n imageSize: new AMap.Size(cg.width,cg.height)\r\n })\r\n // }else{\r\n // markerOption.icon = item.url;\r\n // }\r\n }\r\n }\r\n //是否展示label\r\n if(item.canShowLabel){\r\n let labelClass = item.labelClass || 'label-content';\r\n markerOption.label = {\r\n content: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new AMap.Pixel(cg.labelPixelX,cg.labelPixelY)\r\n }\r\n }\r\n //获得覆盖物对象\r\n let marker = new AMap.Marker(markerOption);\r\n //添加点击事件\r\n marker.on( 'click', (e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n marker.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n marker.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n ps.push(marker);\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 }\r\n );\r\n });\r\n //统一加点\r\n t.state.gis.add(ps);\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),isuserUrlLeft = false;\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: gc.getLabel(),\r\n markerContentX: gc.getOffset().getX(),\r\n markerContentY: gc.getOffset().getY(),\r\n deg: gc.getAngle(),\r\n zIndex: gc.getzIndex(),\r\n labelClass: 'label-content'\r\n };\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //是否展示label\r\n if(item.canShowLabel){\r\n cg.labelPixelX= cg.labelPixelX || gc.getLabel() ? gc.getLabel().offset.getX() : 0;\r\n cg.labelPixelY= cg.labelPixelY || gc.getLabel() ? gc.getLabel().offset.getY(): 34;\r\n cg.labelContent= cg.labelContent || gc.getLabel().offset.content;\r\n let labelClass = item.labelClass || 'label-content';\r\n //更新label\r\n gc.setLabel({\r\n content: `<div class='${labelClass}'>${cg.labelContent}</div>`,\r\n offset: new AMap.Pixel(cg.labelPixelX,cg.labelPixelY)\r\n })\r\n }\r\n //更新偏移量\r\n gc.setOffset(new AMap.Pixel(cg.markerContentX,cg.markerContentY));\r\n //设置偏转角度\r\n gc.setAngle(cg.deg);\r\n //设置点的标记添加顺序\r\n gc.setzIndex(cg.zIndex);\r\n //更新经纬度\r\n if(!item.config.isAnimation){\r\n gc.setPosition(new AMap.LngLat(item.longitude,item.latitude));\r\n }else{\r\n let distance = t.calculatePointsDistance([item.longitude,item.latitude],[\r\n gc.getPosition().getLng(),gc.getPosition().getLat()]);\r\n if(distance > 0){\r\n let delay = item.config.animationDelay || 3;\r\n let speed = distance/delay*3600/1000;\r\n if(cg.autoRotation){\r\n let ddeg = t.rotateDeg(gc.getPosition(),[item.longitude,item.latitude]);\r\n if(item.urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n isuserUrlLeft = true;\r\n }\r\n gc.setAngle(ddeg);\r\n }\r\n gc.moveTo(new AMap.LngLat(item.longitude,item.latitude),speed,function(k){\r\n return k;\r\n })\r\n }\r\n }\r\n if(item.config.BAnimationType == 0){\r\n gc.setAnimation('AMAP_ANIMATION_BOUNCE');\r\n }else if(item.config.BAnimationType == 1){\r\n gc.setAnimation('AMAP_ANIMATION_DROP');\r\n }else{\r\n gc.setAnimation('AMAP_ANIMATION_NONE');\r\n }\r\n //判断html还是图片\r\n if(!!item.markerContent){\r\n gc.setContent(item.markerContent);\r\n }else{\r\n if(isuserUrlLeft){\r\n gc.setIcon(item.urlleft);\r\n }else{\r\n if(item.url){\r\n // if(item.url.indexOf('http://') > -1 || item.url.indexOf('https://') > -1){\r\n gc.setIcon(new AMap.Icon({\r\n size: new AMap.Size(cg.width,cg.height),\r\n image: item.url,\r\n imageSize: new AMap.Size(cg.width,cg.height)\r\n }));\r\n // }else{\r\n // gc.setIcon(item.url);\r\n // }\r\n }\r\n }\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 }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n })\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let ls = [];\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let lineOption = {\r\n strokeColor: cg.color,\r\n strokeOpacity: cg.pellucidity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n path: (item.paths || []).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer',\r\n bubble: true\r\n }\r\n let polyline = new AMap.Polyline(lineOption);\r\n //添加点击事件\r\n polyline.on( 'click', (e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n polyline.on( 'mouseover', (e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n polyline.on( 'mouseout', (e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itt,ind)=>{\r\n return [...itt]\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 ls.push(polyline);\r\n lsids.push(item.id);\r\n //添加线\r\n // polyline.setMap(t.state.gis);\r\n //根据参数判断是否显示多折线\r\n if(cg.isHidden){\r\n polyline.hide();\r\n }else{\r\n polyline.show();\r\n }\r\n //state中缓存 line的id...用于数据判断\r\n t.state.lineIds.push(item.id);\r\n // polyline.on('click', function(e) {\r\n // let obj = {\r\n // type: 'polyline',\r\n // attributes: {...item.other,...{config:item.config}},\r\n // top: e.pixel.y,\r\n // left: e.pixel.x,\r\n // e: e\r\n // }\r\n // //接入点击事件\r\n // });\r\n });\r\n t.state.gis.add(ls);\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 let op = gc.getOptions();\r\n //根据参数判断是否显示多折线\r\n if(item.config && item.config.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n //获取原有的线属性,转换key值\r\n let cg = {\r\n color: op.strokeColor,\r\n pellucidity: op.strokeOpacity,\r\n lineWidth: op.strokeWeight,\r\n lineType: op.strokeStyle\r\n };\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //重新赋值\r\n let lineOption = {\r\n strokeColor: cg.color,\r\n strokeOpacity: cg.pellucidity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n path: (item.paths || op.path).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer'\r\n }\r\n let pts = item.paths.map((itt,ind)=>{\r\n return [...itt]\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 //更新线\r\n gc.setOptions(lineOption);\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 pgs = [];\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期跟百度一起加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n path: (item.rings || []).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer',\r\n bubble: true\r\n }\r\n let polygon = new AMap.Polygon(polygonOption);\r\n //添加点击事件\r\n polygon.on( 'click', (e)=>{\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((itt,ind)=>{\r\n return [...itt]\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 pgs.push(polygon);\r\n pgsids.push(item.id);\r\n\r\n });\r\n t.state.gis.add(pgs);\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 let op = gc.getOptions();\r\n //根据参数判断是否显示面\r\n // if(item.config && item.config.isHidden){\r\n // gc.hide();\r\n // }else{\r\n // gc.show();\r\n // }\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: op.strokeStyle,\r\n lineWidth: op.strokeWeight,\r\n lineColor: op.strokeColor,\r\n lineOpacity: op.strokeOpacity,\r\n color: op.fillColor,\r\n pellucidity: op.fillOpacity\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //重新赋值\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n path: (item.rings || op.path).map((itt,indd)=>{\r\n return [...itt];\r\n }),\r\n cursor: 'pointer'\r\n }\r\n let pts = item.rings.map((itt,ind)=>{\r\n return [...itt]\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 //更新线\r\n gc.setOptions(polygonOption);\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 ccs = [];\r\n let ccsids = [...t.state.circleIds];\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期跟百度一起加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n center: new AMap.LngLat(item.longitude,item.latitude),\r\n radius: item.radius,\r\n cursor: 'pointer',\r\n bubble: true\r\n }\r\n //创建圆对象\r\n let circle = new AMap.Circle(circleOption);\r\n //添加点击事件\r\n circle.on( 'click', (e)=>{\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 ccs.push(circle);\r\n ccsids.push(item.id);\r\n });\r\n t.state.gis.add(ccs);\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 let op = gc.getOptions();\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: op.strokeStyle,\r\n lineWidth: op.strokeWeight,\r\n lineColor: op.strokeColor,\r\n lineOpacity: op.strokeOpacity,\r\n color: op.fillColor,\r\n pellucidity: op.fillOpacity\r\n }\r\n //重新初始化值\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //重新赋值\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity,\r\n center: new AMap.LngLat(item.longitude,item.latitude) || op.center,\r\n radius: !item.radius && item != 0?op.radius:item.radius,\r\n cursor: 'pointer'\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 //更新线\r\n gc.setOptions(circleOption);\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\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(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.setDraggable(true);\r\n ms.mapLayer.on('dragend',t.editGraphicChange,t);\r\n break;\r\n case 'polyline':\r\n // break;\r\n case 'polygon':\r\n case 'rectangle':\r\n t.polyEdit = new AMap.PolyEditor(t.state.gis,ms.mapLayer);\r\n t.polyEdit.open();\r\n t.polyEdit.on('adjust',t.editGraphicChange,t);\r\n break;\r\n case 'circle':\r\n t.circleEdit = new AMap.CircleEditor(t.state.gis,ms.mapLayer);\r\n t.circleEdit.open();\r\n t.circleEdit.on('move',t.editGraphicChange,t);\r\n t.circleEdit.on('adjust',t.editGraphicChange,t);\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 switch(ms.geometryType){\r\n case 'point':\r\n ms.mapLayer.setDraggable(false);\r\n ms.mapLayer.off('dragend',t.editGraphicChange,t);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n t.polyEdit.close();\r\n t.polyEdit.off('adjust',t.editGraphicChange,t);\r\n break;\r\n case 'circle':\r\n t.circleEdit.close();\r\n t.circleEdit.off('move',t.editGraphicChange,t);\r\n t.circleEdit.off('adjust',t.editGraphicChange,t);\r\n break;\r\n }\r\n let editGraphic = t.state.editGraphic;\r\n if(editGraphic){\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n },()=>{\r\n t.props.editGraphicChange(editGraphic);\r\n })\r\n }\r\n }\r\n //编辑变动后\r\n editGraphicChange(e){\r\n let t = this;\r\n let ms = t.getGraphic(t.state.editId);\r\n let obj = {\r\n id: t.state.editId,\r\n e: e\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 obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.distance = ms.mapLayer.getLength();\r\n break;\r\n case 'polygon':\r\n case 'rectangle':\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.area = e.target.getArea();\r\n break;\r\n case 'circle':\r\n if(!('lnglat' in e)){\r\n obj.e.lnglat = new AMap.LngLat(ms.geometry.x,ms.geometry.y);\r\n }\r\n if(!('radius' in e)){\r\n obj.e.radius = ms.geometry.radius;\r\n }\r\n obj.geometry = ms.geometry;\r\n obj.param = ms;\r\n obj.area = Math.pow(ms.geometry.radius,2)*Math.PI;\r\n break;\r\n }\r\n if(ms.geometryType == 'circle'){\r\n if(t.editTimeout){\r\n clearTimeout(t.editTimeout);\r\n }\r\n t.editTimeout = setTimeout(()=>{\r\n t.setState({\r\n editGraphic: obj\r\n },()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n },300);\r\n }else{\r\n t.setState({\r\n editGraphic: obj\r\n },()=>{\r\n t.props.editGraphicChange(obj);\r\n });\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.pixel.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.pixel.x + t.mapLeft,\r\n e: e\r\n }\r\n t.props.clickGraphic(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.on('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.on('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.on('movestart', function(e) {\r\n t.htmlXY = {\r\n px:0,py:0,isCount: true,\r\n ...t.state.gis.lnglatToPixel(t.state.gis.getCenter())\r\n };\r\n $(`#${t.pointCollectionId}`).css({top: '0px',left: '0px',display: 'none'});\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n if(t.stopMove){\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.on('moveend', function(e) {\r\n t.htmlXY.isCount = false;\r\n $(`#${t.pointCollectionId}`).css({top: '0px',left: '0px',display: 'block'});\r\n t.updatePointCollection(t.props.mapPointCollection);\r\n if(t.stopMove){\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n //处理下数据,符合拖拽事件\r\n t.props.moveEnd(obj);\r\n }else{\r\n t.stopMove = true;\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.on('zoomstart', function(e) {\r\n $(`#${t.pointCollectionId}`).css({display: 'none'});\r\n t.stopMove = false;\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.on('zoomend', function(e) {\r\n $(`#${t.pointCollectionId}`).css({display: 'inline-block'});\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 mouseOverGraphic(id,e){\r\n let t = this;\r\n if(typeof(t.props.mouseOverGraphic) === 'function'){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.pixel.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.pixel.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 let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.pixel.y + t.mapTop,//当前点所在的位置(屏幕)\r\n left: e.pixel.x + t.mapLeft,\r\n }\r\n t.props.mouseOutGraphic(obj);\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.on('click', function(e) {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: (e.lnglat || {}).lng,\r\n lat: (e.lnglat || {}).lat\r\n };\r\n obj.pixel = e.pixel;\r\n t.props.clickMap(obj);\r\n });\r\n }\r\n }\r\n //测距\r\n vtxRangingTool () {\r\n let t = this;\r\n t.ruler.turnOn();\r\n //引用百度测距样式\r\n t.state.gis.setDefaultCursor(this.csr);\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 t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n //引用百度测距样式\r\n t.state.gis.setDefaultCursor('crosshair');\r\n let param = {};\r\n let paramgcr = {};\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.strokeColor = drawParam.parameter.lineColor;\r\n paramgcr.strokeOpacity = drawParam.parameter.lineOpacity;\r\n paramgcr.strokeWeight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.strokeStyle = drawParam.parameter.lineType;\r\n paramgcr.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: drawParam.parameter.color,\r\n lineColor: drawParam.parameter.lineColor,\r\n lineOpacity: drawParam.parameter.lineOpacity,\r\n pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: drawParam.geometryType\r\n };\r\n }\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n param.icon = new AMap.Icon({\r\n image: drawParam.parameter.url || 'http://webapi.amap.com/theme/v1.3/markers/n/mark_bs.png',\r\n size: new AMap.Size(drawParam.parameter.width || 36,drawParam.parameter.height || 36),\r\n offset: new AMap.Pixel(drawParam.parameter.labelPixelX || -10,drawParam.parameter.labelPixelY || -34)\r\n });\r\n param.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n url: drawParam.parameter.url || 'http://webapi.amap.com/theme/v1.3/markers/n/mark_bs.png',\r\n config: {\r\n width: drawParam.parameter.width || 36,\r\n height: drawParam.parameter.height || 36\r\n }\r\n },\r\n type: 'point'\r\n };\r\n t.mousetool.marker(param);\r\n break;\r\n case 'polyline':\r\n param.strokeColor = drawParam.parameter.color;\r\n param.strokeOpacity = drawParam.parameter.pellucidity;\r\n param.strokeWeight = drawParam.parameter.lineWidth;\r\n param.strokeStyle = drawParam.parameter.lineType;\r\n param.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 pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: 'polyline'\r\n };\r\n t.mousetool.polyline(param);\r\n break;\r\n case 'polygon':\r\n t.mousetool.polygon(paramgcr);\r\n break;\r\n case 'circle':\r\n t.mousetool.circle(paramgcr);\r\n break;\r\n case 'rectangle':\r\n t.mousetool.rectangle(paramgcr);\r\n break;\r\n }\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\r\n }\r\n //关闭绘制图元\r\n closeDraw(){\r\n let t = this;\r\n //恢复鼠标默认样式\r\n t.state.gis.setDefaultCursor();\r\n t.mousetool.close();\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(ms){\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],_extent = {xmax: 0,xmin: 0,ymax: 0,ymin: 0},path=[];\r\n if('getPath' in ms){\r\n path = ms.getPath();\r\n path = path.map((item,index)=>{\r\n let lng = item.lng,lat = item.lat;\r\n if(lng > _extent.xmax){\r\n _extent.xmax = lng;\r\n }\r\n if(lng < _extent.xmin || _extent.xmin == 0){\r\n _extent.xmin = lng;\r\n }\r\n if(lat > _extent.ymax){\r\n _extent.ymax = lat;\r\n }\r\n if(lat < _extent.ymin || _extent.ymin == 0){\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat\r\n });\r\n return [lng,lat];\r\n })\r\n }\r\n return {lnglatAry,_extent,path};\r\n }\r\n //删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n if(!!this.GM.getGraphic(id)){\r\n if((t.GM.getGraphicParam(id).attributes.config || {}).isAnimation){\r\n this.GM.getGraphic(id).stopMove();\r\n }\r\n //清除聚合点 避免异常\r\n t.clusterObj.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n this.GM.getGraphic(id).setMap();\r\n //清除对应id的图元数据缓存\r\n this.GM.removeGraphic(id);\r\n }else{\r\n return false;\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 //点位角度旋转(以指向东(右)为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.lngLatToContainer(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.lngLatToContainer(new AMap.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 AMap.LngLat(f[0],f[1]);\r\n let lnglat2 = new AMap.LngLat(s[0],s[1]);\r\n return Math.round(lnglat1.distance(lnglat2));\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return false;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n 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 let psc = new AMap.PlaceSearch({\r\n pageSize,\r\n pageIndex\r\n });\r\n return new Promise((resolve)=>{\r\n psc.search(searchValue,(status,result)=>{\r\n let list = result.poiList.pois.map((r)=>({\r\n id: r.id,\r\n longitude: r.location.lng,\r\n latitude: r.location.lat,\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 resolve(list)\r\n })\r\n })\r\n }\r\n render(){\r\n let t = this; \r\n let _map = this.props;\r\n return(\r\n <div id={_map.mapId} style={{width:'100%',height:'100%'}}></div>\r\n );\r\n }\r\n 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 }\r\n componentWillUnmount(){\r\n let t = this;\r\n //关闭moveTo定时\r\n for(let i in t.GM.allParam){\r\n if(t.GM.allParam.type == 'point'){\r\n t.GM.getGraphic[i].stopMove();\r\n }\r\n }\r\n this.state.gis.destroy();\r\n this.state.gis = null;\r\n }\r\n componentDidUpdate(prevProps, prevState) {//重新渲染结束\r\n let t = this;\r\n let props = t.props;\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n\r\n //回调显示方法\r\n if(props.showGraphicById){\r\n props.showGraphicById(t.showGraphicById.bind(t));\r\n }\r\n //回调隐藏方法\r\n if(props.hideGraphicById){\r\n props.hideGraphicById(t.hideGraphicById.bind(t));\r\n } \r\n \r\n }\r\n componentWillReceiveProps(nextProps,prevProps) {//已加载组件,收到新的参数时调用\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,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 isClearAll,mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n mapStyle,coverageType,\r\n infoWindowData\r\n } = nextProps;\r\n let props = t.props;\r\n // 设置地图样式\r\n if(mapStyle && !t.deepEqual(mapStyle,t.props.mapStyle)){\r\n t.state.gis.setMapStyle(mapStyle);\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(!t.state.mapCreated)return;\r\n if(mapPointCollection instanceof Array && 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 pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && props.mapPoints instanceof Array && !t.deepEqual(mapPoints,props.mapPoints)){\r\n let oldMapPoints = props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.state.editId){\r\n oldMapPoints = props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,props.mapPolygons)){\r\n let oldMapPolygons = props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.state.editId){\r\n oldMapPolygons = props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && props.mapCircles instanceof Array && !t.deepEqual(mapCircles,props.mapCircles)){\r\n let oldMapCircles = props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.state.editId){\r\n oldMapCircles = props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && props.mapLines instanceof Array && !t.deepEqual(mapLines,props.mapLines)){\r\n let oldMapLines = props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.state.editId){\r\n oldMapLines = props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.updateLine(updatedData);\r\n t.addLine(addedData); \r\n }\r\n //绘制边界线\r\n if(boundaryName instanceof Array && props.boundaryName instanceof Array && !t.deepEqual(boundaryName,props.boundaryName)){\r\n let newBDName = Set(boundaryName);\r\n let oldBDName = Set(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,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 && props.imageOverlays instanceof Array && !t.deepEqual(imageOverlays,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 // 比例尺控件位置改变\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 for(let i in t.GM.allParam){\r\n if(t.GM.allParam[i].geometryType == 'point'){\r\n if(t.GM.getGraphic[i]){\r\n t.GM.getGraphic[i].stopMove();\r\n }\r\n }\r\n }\r\n if(t.pointCollectTimer){\r\n clearTimeout(t.pointCollectTimer);\r\n }\r\n window.VtxMap[t.state.mapId]= null;\r\n }\r\n}\r\n\r\nexport default VortexAMap;"],"mappings":"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"}