@vtx/map 1.1.20 → 1.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","names":["Set","Immutable","window","location","protocol","BMAP_PROTOCOL","BMap_loadScriptTime","Date","getTime","gisMapConstant","circle","star","square","rhombus","waterdrop","tiny","smaller","small","normal","big","bigger","huge","BaiduMap","props","GM","graphicManage","getPolygonArea","initPointIndex","_cluster","_rangingTool","_bmar","_drawmanager","editGraphicChange","editTimeout","_boundary","moveToTimer","heatmap","morepoints","movePoints","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","rectangle","loadMapJs","loadList","BMapLib","DistanceTool","push","Promise","resolve","reject","$","getScript","configUrl","mapServerURL","TrafficControl","MarkerClusterer","AreaRestriction","DrawingManager","HeatmapOverlay","GeoUtils","TextIconOverlay","all","then","BMap","loadMapComplete","loadPlugin","attr","rel","type","href","appendTo","t","createMap","mapPoints","mapLines","mapPolygons","mapCircles","imageOverlays","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","areaRestriction","coverageType","boundaryName","heatMapData","infoWindowData","customizedBoundary","setMapType","Array","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","length","addBaiduBoundary","heatMapOverlay","infoWindow","addPointCollection","setVisiblePoints","cluster","openTrafficInfo","hideTrafficInfo","setAreaRestriction","showControl","clickMap","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","setState","mapCenter","mapStyle","minZoom","maxZoom","options","zoom","center","VtxMap","AnchorConstant","tr","BMAP_ANCHOR_TOP_RIGHT","tl","BMAP_ANCHOR_TOP_LEFT","bl","BMAP_ANCHOR_BOTTOM_LEFT","br","BMAP_ANCHOR_BOTTOM_RIGHT","NavigationConstant","large","BMAP_NAVIGATION_CONTROL_LARGE","BMAP_NAVIGATION_CONTROL_SMALL","pan","BMAP_NAVIGATION_CONTROL_PAN","BMAP_NAVIGATION_CONTROL_ZOOM","map","Map","toString","enableMapClick","setMapStyle","style","styleJson","setTimeout","parent","children","css","centerAndZoom","Point","parseFloat","satelliteSwitch","showMapTypeControl","_trafficCtrl","showPanel","addControl","document","getElementById","remove","removeNode","enableScrollWheelZoom","Boundary","addEventListener","e","label","removeOverlay","drawExtData","extData","id","backobj","attributes","geometryType","mapLayer","overlay","geometry","clickGraphic","mouseOverGraphic","mouseOutGraphic","setGraphic","dealData","lnglatAry","_extent","path","x","getPosition","lng","y","lat","distance","calculate","paths","area","rings","getCenter","radius","getRadius","setGraphicParam","close","drawEnd","BMAP_NORMAL_MAP","BMAP_HYBRID_MAP","imageAry","item","index","sw","ne","url","opacity","console","warn","isArray","swp","nep","option","displayOnMinLevel","displayOnMaxLevel","imageURL","swnep","Bounds","GroundOverlay","addOverlay","psids","isRepetition","longitude","latitude","cg","width","height","labelContent","labelPixelX","labelPixelY","BAnimationType","markerContentX","markerContentY","deg","markerContent","config","position","marker","markerOption","offset","Size","icon","Icon","setImageSize","Marker","markerLOption","markerL","Label","setStyle","backgroundColor","border","setLabel","setRotation","canShowLabel","labelClass","split","join","markerLabel","zIndex","setZIndex","setAnimation","BMAP_ANIMATION_BOUNCE","BMAP_ANIMATION_DROP","other","gc","getGraphic","setOffset","setIcon","getLabel","setContent","getIcon","size","labelOffset","isAnimation","moveTo","animationDelay","autoRotation","urlleft","setPosition","moveAnimation","lsids","color","pellucidity","lineWidth","lineType","isHidden","linePath","lineOption","strokeColor","strokeWeight","strokeOpacity","strokeStyle","line","Polyline","hide","show","setPath","setStrokeColor","setStrokeOpacity","setStrokeWeight","setStrokeStyle","pgsids","lineColor","lineOpacity","polygonOption","fillColor","fillOpacity","polygonPath","Polygon","setFillColor","setFillOpacity","ccsids","circleOption","centerPoint","Circle","setCenter","setRadius","bdNames","forEach","name","get","ary","arr","boundaries","Math","random","removedBDNames","removedBDIds","filter","indexOf","removeGraphic","d","max","visible","eval","gradient","setDataSet","data","setOptions","sContent","createElement","infowindow","InfoWindow","setWidth","setHeight","content","render","openInfoWindow","closeInfoWindow","points","i","p","shape","VotexpointCollection","PointCollection","value","clickPointCollection","obj","ds","setPoints","setStyles","ids","ind","clear","param","top","clientY","left","clientX","getMapExtent","clickLngLat","pixel","gt","mgt","c","z","getZoomLevel","setZoom","arg","fitView","concat","getFitView","a","getViewport","setZoomLevel","getZoom","allLayers","getGraphicParam","getPath","gp","gg","pts","uniqBy","res","graphic","removeMarker","splice","gtp","endEdit","calculateDistance","pow","PI","clearTimeout","enableDragging","enableEditing","disableDragging","removeEventListener","disableEditing","drawParam","parameter","len","paramgcr","setDrawingMode","open","markerOptions","polylineOptions","enableCalculate","polygonOptions","circleOptions","rectangleOptions","clearMarkers","clearOverlays","clearAll","clusterToolFunction","addMarkers","removeMarkers","Object","prototype","apply","allps","callback","cb","objLngLats","lnglats","showTraffic","hideTraffic","scaleOffset","scaleControl","removeControl","navigationControl","control","ScaleControl","anchor","navigation","NavigationControl","mapTypeControl","mapTypes","BMAP_SATELLITE_MAP","MapTypeControl","BMAP_MAPTYPE_CONTROL_HORIZONTAL","sw_ne","bounds","setBounds","clearBounds","_map","clearInterval","setInterval","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","tx","ty","b","lnglat","delay","urlright","timer","count","s","equals","ddeg","rotateDeg","gcicon","setImageUrl","isHave","sp","ep","spLngLat","pointToPixel","tan","atan","disy","bias","ms","xmax","xmin","ymax","ymin","lngX","latX","nowBounds","getBounds","southWest","getSouthWest","northEast","getNorthEast","nowCenter","mapSize","getSize","calculatePointsDistance","fp","round","getDistance","ps","totalDistance","calculateArea","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","searchValue","pageSize","pageIndex","psc","LocalSearch","onSearchComplete","result","getPageIndex","gotoPage","res_arr","getCurrentNumPois","getPoi","r","uid","title","pageCapacity","search","init","prevProps","prevState","nextProps","setCluster","isRangingTool","mapRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","dataMatch","clearPointCollection","updatePointCollection","clearAllPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","updatePoint","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","updateLine","newBDName","oldBDName","removedBoundaryName","addedBoundaryName","removeBaiduBoundary","doEdit","draw","closeDraw","vtxRangingTool","clearAreaRestriction","JSON","stringify","React","Component"],"sources":["VtxMap/BMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport {graphicManage,getPolygonArea} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport uniqBy from 'lodash/unionBy'\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\n// 百度地图js文件内做了一些额外的http or https判断\r\n// 如果协议为Https,我们需要改动全局变量BMAP_PROTOCOL和BMap_loadScriptTime\r\nif (window.location.protocol === 'https:') {\r\n window.BMAP_PROTOCOL = \"https\";\r\n window.BMap_loadScriptTime = (new Date).getTime();\r\n}\r\n\r\nconst gisMapConstant = {\r\n circle: 'BMAP_POINT_SHAPE_CIRCLE',//圆形\r\n star: 1,//星形\r\n square: 4,//方形\r\n rhombus: 5,//菱形\r\n waterdrop: 2,//水滴状,该类型无size和color属性\r\n tiny: 1, //定义点的尺寸为超小,宽高为2px*2px\r\n smaller: 2,//定义点的尺寸为很小,宽高为4px*4px\r\n small: 3,//定义点的尺寸为小,宽高为8px*8px\r\n normal: 4,//定义点的尺寸为正常,宽高为10px*10px,为海量点默认尺寸\r\n big: 5,//定义点的尺寸为大,宽高为16px*16px\r\n bigger: 6,//定义点的尺寸为很大,宽高为20px*20px\r\n huge: 7,//定义点的尺寸为超大,宽高为30px*30px\r\n}\r\n\r\nclass BaiduMap extends React.Component{\r\n constructor(props){\r\n super(props);\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.initPointIndex = 0;//初始化地图时记录点当前位置\r\n this._cluster = null;//点聚合对象\r\n this._rangingTool = null;//测距对象\r\n this._bmar = null;//区域限制对象\r\n this._drawmanager = null;//图元绘制对象\r\n this.editGraphicChange = null;//编辑方法回调\r\n this.editTimeout = null;//圆编辑回调延迟时间对象\r\n this._boundary = null;//获取行政区域数据的对象\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.heatmap = null;//热力图对象\r\n this.morepoints = [];//海量点数组\r\n this.movePoints = [];//移动点的动画集合\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n };\r\n this.loadMapJs();\r\n }\r\n loadPlugin(){\r\n let loadList = [];\r\n if(!window.BMapLib || !window.BMapLib.DistanceTool){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/DistanceTool_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.TrafficControl){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TrafficControl_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.MarkerClusterer){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/MarkerClusterer_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.AreaRestriction){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/AreaRestriction_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.DrawingManager){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/DrawingManager_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.HeatmapOverlay){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/Heatmap_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.GeoUtils){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GeoUtils_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.TextIconOverlay){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TextIconOverlay_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TextIconOverlay_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n return Promise.all(loadList).then(()=>{\r\n return window.BMap;\r\n });\r\n }\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.BMap){\r\n resolve(this.loadPlugin());\r\n }\r\n else{\r\n // EVlFc6DZzAzU5avIjoxNcFgQ\r\n $.getScript('//api.map.baidu.com/getscript?v=3.0&ak=42IughV5lDxAt0wI8AhDVuGR',()=>{\r\n resolve(this.loadPlugin());\r\n });\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: '//api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.css'}).appendTo(\"head\");\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,imageOverlays,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction,\r\n coverageType\r\n } = this.props;\r\n let {boundaryName,heatMapData,infoWindowData,customizedBoundary} = this.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = this.state;\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType){\r\n t.setMapType(coverageType);\r\n }\r\n //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n //添加图片图层\r\n if(imageOverlays instanceof Array){\r\n t.imageUrlOverlay(imageOverlays);\r\n }\r\n //画边界线\r\n if(boundaryName instanceof Array && boundaryName.length>0){\r\n t.addBaiduBoundary(boundaryName);\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 if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //初始展示的视野范围\r\n if(mapVisiblePoints){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\r\n }\r\n //开关路况\r\n if(isOpenTrafficInfo){\r\n t.openTrafficInfo();\r\n }else{\r\n t.hideTrafficInfo();\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //是否设置比例尺\r\n if(t.props.showControl){\r\n t.showControl();\r\n }\r\n /*地图事件*/\r\n //初始化地图点击事件\r\n t.clickMap();\r\n //地图拖动之前事件\r\n t.dragMapStart();\r\n //地图拖动结束后事件\r\n t.dragMapEnd();\r\n //地图移动之前事件\r\n t.moveStart();\r\n //地图移动结束后事件\r\n t.moveEnd();\r\n //地图缩放开始前事件\r\n t.zoomStart();\r\n //地图缩放结束后事件\r\n t.zoomEnd();\r\n t.setState({\r\n mapCreated:true\r\n })\r\n }\r\n //创建地图\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapStyle,mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [116.404,39.915],\r\n minZoom,maxZoom\r\n };\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n // 控件位置常量\r\n t.AnchorConstant = {\r\n tr: BMAP_ANCHOR_TOP_RIGHT,\r\n tl: BMAP_ANCHOR_TOP_LEFT,\r\n bl: BMAP_ANCHOR_BOTTOM_LEFT,\r\n br: BMAP_ANCHOR_BOTTOM_RIGHT\r\n }\r\n // 平移缩放控件大小\r\n t.NavigationConstant = {\r\n large: BMAP_NAVIGATION_CONTROL_LARGE,\r\n small: BMAP_NAVIGATION_CONTROL_SMALL,\r\n pan: BMAP_NAVIGATION_CONTROL_PAN,\r\n zoom: BMAP_NAVIGATION_CONTROL_ZOOM\r\n }\r\n let map = window.VtxMap[mapId] = t.state.gis = new BMap.Map(mapId.toString(),{\r\n enableMapClick : false,\r\n minZoom: options.minZoom,\r\n maxZoom: options.maxZoom\r\n });\r\n if(mapStyle){\r\n if(typeof(mapStyle) === 'string'){\r\n t.state.gis.setMapStyle({style:mapStyle});\r\n }\r\n if(mapStyle instanceof Array){\r\n t.state.gis.setMapStyle({styleJson:mapStyle});\r\n }\r\n }\r\n setTimeout(()=>{\r\n $('#myCanvasElement').parent().children('svg').css({'z-index':1});\r\n },500);\r\n // 初始化地图,设置中心点坐标和地图级别\r\n map.centerAndZoom(new BMap.Point(parseFloat(options.center[0]),parseFloat(options.center[1])), options.zoom);\r\n //添加地图类型控件\r\n if(t.props.satelliteSwitch){\r\n t.showMapTypeControl();\r\n }\r\n //初始化路况控件\r\n if(!t._trafficCtrl){\r\n t._trafficCtrl = new BMapLib.TrafficControl({\r\n // 是否显示路况提示面板\r\n showPanel : false\r\n });\r\n map.addControl(t._trafficCtrl);\r\n if(document.getElementById('tcBtn').remove){\r\n document.getElementById('tcBtn').remove();\r\n }else{\r\n document.getElementById('tcBtn').removeNode();\r\n }\r\n }\r\n //开启鼠标滚轮缩放\r\n map.enableScrollWheelZoom(true);\r\n //初始化获取行政区域数据的对象\r\n if(!t._boundary){\r\n t._boundary = new BMap.Boundary();\r\n }\r\n //初始化点聚合对象\r\n if(!t._cluster){\r\n t._cluster = new BMapLib.MarkerClusterer(map,{maxZoom: 17}); \r\n }\r\n //初始化测距对象\r\n if(!t._rangingTool){\r\n t._rangingTool = new BMapLib.DistanceTool(map);\r\n }\r\n //初始化区域限制对象\r\n if(!t._bmar){\r\n t._bmar = new BMapLib.AreaRestriction();\r\n }\r\n //初始化图元绘制对象\r\n if(!t._drawmanager){\r\n t._drawmanager = new BMapLib.DrawingManager(map);\r\n //监听绘制结束事件\r\n t._drawmanager.addEventListener('overlaycomplete', (e)=>{\r\n if(e.label){\r\n t.state.gis.removeOverlay(e.label);\r\n }\r\n let drawExtData = e.extData;\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawExtData.type].push(drawExtData.id);\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: e.overlay,\r\n geometry: {\r\n type: drawExtData.type == 'rectangle'?'polygon':drawExtData.type\r\n }\r\n };\r\n //点击事件\r\n e.overlay.addEventListener('click',(e)=>{\r\n t.clickGraphic(drawExtData.id,e);\r\n });\r\n //鼠标移入事件\r\n e.overlay.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawExtData.id,e);\r\n });\r\n //鼠标移出事件\r\n e.overlay.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawExtData.id,e);\r\n });\r\n //缓存绘制的图元信息\r\n t.GM.setGraphic(drawExtData.id,e.overlay);\r\n\r\n //区别点和圆的经纬度数据处理\r\n let {lnglatAry,_extent,path} = t.dealData(e.overlay);\r\n //处理返回数据\r\n switch(drawExtData.type){\r\n case 'point':\r\n backobj.geometry.x = e.overlay.getPosition().lng;\r\n backobj.geometry.y = e.overlay.getPosition().lat;\r\n break;\r\n case 'polyline':\r\n backobj.distance = e.calculate;\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.paths = path;\r\n backobj.geometry._extent = _extent;\r\n break;\r\n case 'polygon':\r\n backobj.area = e.calculate;\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 = e.calculate;\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 = e.overlay.getCenter().lng;\r\n backobj.geometry.y = e.overlay.getCenter().lat;\r\n backobj.geometry.radius = e.overlay.getRadius();\r\n backobj.area = e.calculate;\r\n break;\r\n }\r\n t.GM.setGraphicParam(drawExtData.id,backobj);\r\n t._drawmanager.close();\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n }\r\n }\r\n /* \r\n 切换地图矢量图和卫星图背景\r\n type: \r\n BMAP_NORMAL_MAP 矢量图\r\n BMAP_SATELLITE_MAP 单卫星图 (暂定不用)\r\n BMAP_HYBRID_MAP 卫星路况图\r\n */\r\n setMapType(type){\r\n switch (type) {\r\n case 'sl':\r\n this.state.gis.setMapType(BMAP_NORMAL_MAP);\r\n break;\r\n case 'wx':\r\n this.state.gis.setMapType(BMAP_HYBRID_MAP);\r\n break;\r\n }\r\n }\r\n //增加图片图层\r\n imageUrlOverlay(imageAry){\r\n let t = this;\r\n imageAry.map((item,index)=>{\r\n let {sw,ne,url,opacity} = 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 swp = new BMap.Point(sw[0],sw[1]),\r\n nep = new BMap.Point(ne[0],ne[1]),\r\n option = {\r\n opacity: opacity || 1,\r\n displayOnMinLevel: item.displayOnMinLevel || 3,\r\n displayOnMaxLevel: item.displayOnMaxLevel || 19,\r\n imageURL: url\r\n },\r\n swnep = new BMap.Bounds(swp, nep),\r\n imageUrlOverlay = new BMap.GroundOverlay(swnep, option);\r\n t.state.gis.addOverlay(imageUrlOverlay);\r\n\r\n }else{\r\n console.warn(`区域经纬度sw/ne数据错误`);\r\n return false;\r\n }\r\n })\r\n }\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n 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 BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let position = new BMap.Point(item.longitude,item.latitude);\r\n let marker = null;\r\n if(item.markerContent){\r\n /*自定义html加点\r\n 用Label来实现,无法再添加label(高德有判断,实现不同)*/\r\n //覆盖物参数\r\n let markerOption = {\r\n offset: new BMap.Size(cg.markerContentX + cg.width/2,\r\n cg.markerContentY + cg.height/2),\r\n icon: null\r\n }\r\n let icon = new BMap.Icon(\r\n `${configUrl.mapServerURL}/images/touming.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n markerOption = {...markerOption,icon};\r\n marker = new BMap.Marker(position,markerOption);\r\n\r\n //覆盖物参数\r\n let markerLOption = {\r\n offset: new BMap.Size(0,0)\r\n };\r\n let markerL = new BMap.Label(item.markerContent,markerLOption);\r\n markerL.setStyle({\r\n backgroundColor : '',\r\n border : '0'\r\n });\r\n marker.setLabel(markerL);\r\n }else{\r\n /*添加非html点位*/\r\n //覆盖物参数\r\n let markerOption = {\r\n offset: new BMap.Size(cg.markerContentX + cg.width/2,\r\n cg.markerContentY + cg.height/2),\r\n icon: null\r\n }\r\n let icon = new BMap.Icon(\r\n item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n markerOption = {...markerOption,icon};\r\n marker = new BMap.Marker(position,markerOption);\r\n //设置选择角度\r\n marker.setRotation(cg.deg);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n let markerLabel = new BMap.Label(\r\n \"<div class='\"+labelClass+\"' style=\\\"margin-left: 0;\\\">\"\r\n + cg.labelContent + \"</div>\", {\r\n offset : new BMap.Size(cg.labelPixelX,cg.labelPixelY)\r\n });\r\n markerLabel.setStyle({\r\n border : '0',\r\n backgroundColor : ''\r\n });\r\n marker.setLabel(markerLabel);\r\n }\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n marker.setZIndex(cg.zIndex);\r\n }\r\n //添加点到地图\r\n t.state.gis.addOverlay(marker);\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n marker.setAnimation(BMAP_ANIMATION_BOUNCE);\r\n }else if(!item.markerContent && cg.BAnimationType == 1){\r\n marker.setAnimation(BMAP_ANIMATION_DROP);\r\n }\r\n //点击事件\r\n marker.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n marker.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n marker.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //所有点缓存在state中\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n t.state.pointIds = psids;\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints){\r\n let t = this;\r\n // let dpoints = [],apoints = [];\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 = t.GM.getGraphic(item.id);\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n if(item.markerContent){\r\n gc.setOffset(new BMap.Size(cg.markerContentX + cg.width/2,\r\n cg.markerContentY + cg.height/2));\r\n let icon = new BMap.Icon(\r\n `${configUrl.mapServerURL}/images/touming.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n gc.setIcon(icon);\r\n if(!!gc.getLabel()){\r\n gc.getLabel().setContent(item.markerContent);\r\n gc.getLabel().setOffset(new BMap.Size(0,0));\r\n }else{\r\n //覆盖物参数\r\n let markerLOption = {\r\n offset: new BMap.Size(0,0)\r\n };\r\n let markerL = new BMap.Label(item.markerContent,markerLOption);\r\n markerL.setStyle({\r\n backgroundColor : '',\r\n border : '0'\r\n });\r\n gc.setLabel(markerL);\r\n }\r\n }else{\r\n cg.width = cg.width || gc.getIcon().size.width;\r\n cg.height = cg.height || gc.getIcon().size.height;\r\n //未改变方式的点 直接修改数据\r\n let icon = new BMap.Icon(\r\n item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n gc.setIcon(icon);\r\n gc.setOffset(new BMap.Size((cg.markerContentX || -15) + cg.width/2,\r\n (cg.markerContentY || -30) + cg.height/2));\r\n //修改角度\r\n gc.setRotation(cg.deg || 0);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n let markerLabel = gc.getLabel(),\r\n //label默认样式\r\n labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n let labelContent = \"<div class='\"+labelClass+\"' style=\\\"margin-left: 0;\\\">\"\r\n + cg.labelContent + \"</div>\",\r\n labelOffset = new BMap.Size(cg.labelPixelX,cg.labelPixelY);\r\n if(markerLabel){\r\n markerLabel.setContent(labelContent);\r\n markerLabel.setOffset(labelOffset);\r\n }else{\r\n markerLabel = new BMap.Label(\r\n labelContent, {\r\n offset : labelOffset\r\n });\r\n markerLabel.setStyle({\r\n border : '0',\r\n backgroundColor : ''\r\n });\r\n gc.setLabel(markerLabel);\r\n }\r\n }else{\r\n if(!!gc.getLabel()){\r\n gc.getLabel().setContent('');\r\n }\r\n }\r\n if(cg.BAnimationType == 0){\r\n gc.setAnimation(BMAP_ANIMATION_BOUNCE);\r\n }else if(cg.BAnimationType == 1){\r\n gc.setAnimation(BMAP_ANIMATION_DROP);\r\n }else{\r\n gc.setAnimation(null);\r\n }\r\n /*moveTo*/\r\n }\r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n //修改经纬度\r\n gc.setPosition(new BMap.Point(item.longitude,item.latitude));\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n gc.setZIndex(cg.zIndex);\r\n }\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.moveAnimation();\r\n // //删除改变了加载方式的点\r\n // dpoints.map((item,index)=>{\r\n // t.removeGraphic(item,'point');\r\n // });\r\n // if(apoints.length > 0){\r\n // //重新加载改变了方式的点\r\n // setTimeout(()=>{\r\n // t.addPoint(apoints);\r\n // },100);\r\n // }\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n }),\r\n //处理线的参数\r\n lineOption = {\r\n strokeColor : cg.color, // 线颜色\r\n strokeWeight : cg.lineWidth, // 线宽\r\n strokeOpacity : cg.pellucidity, // 线透明度\r\n strokeStyle : cg.lineType// 线样式\r\n };\r\n //创建线对象\r\n let line = new BMap.Polyline(linePath,lineOption);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.hide();\r\n }else{\r\n line.show();\r\n }\r\n lsids.push(item.id);\r\n //添加线至地图\r\n t.state.gis.addOverlay(line);\r\n //点击事件\r\n line.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n line.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n line.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\r\n // });\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines){\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n });\r\n //修改线点位数据\r\n gc.setPath(linePath);\r\n //修改线颜色\r\n gc.setStrokeColor(cg.color);\r\n //修改透明度\r\n gc.setStrokeOpacity(cg.pellucidity);\r\n //修改线宽度\r\n gc.setStrokeWeight(cg.lineWidth);\r\n //修改线的类型\r\n gc.setStrokeStyle(cg.lineType);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //面的参数\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n polygonPath = item.rings.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n });\r\n //创建面对象\r\n let polygon = new BMap.Polygon(polygonPath,polygonOption);\r\n //添加面至地图\r\n t.state.gis.addOverlay(polygon);\r\n //点击事件\r\n polygon.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n polygon.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n polygon.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\r\n // });\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons){\r\n let t = this;\r\n mapPolygons.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let polygonPath = item.rings.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n });\r\n //更新经纬度\r\n gc.setPath(polygonPath);\r\n //更新边框线颜色\r\n gc.setStrokeColor(cg.lineColor);\r\n //更新填充色\r\n gc.setFillColor(cg.color);\r\n //更新变线透明度\r\n gc.setStrokeOpacity(cg.lineOpacity);\r\n //更新填充色透明度\r\n gc.setFillOpacity(cg.pellucidity);\r\n //更新边线宽度\r\n gc.setStrokeWeight(cg.lineWidth);\r\n //更新边线类型\r\n gc.setStrokeStyle(cg.lineType);\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n centerPoint = new BMap.Point(item.longitude,item.latitude);\r\n //创建圆图元实例\r\n let circle = new BMap.Circle(centerPoint,item.radius,circleOption);\r\n //添加圆至地图\r\n t.state.gis.addOverlay(circle);\r\n //点击事件\r\n circle.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n circle.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n circle.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n ccsids.push(item.id);\r\n //缓存数据\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n });\r\n });\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\r\n // });\r\n }\r\n //更新圆\r\n updateCircle(mapCircles){\r\n let t = this;\r\n mapCircles.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let centerPoint = new BMap.Point(item.longitude,item.latitude);\r\n //修改中心点\r\n gc.setCenter(centerPoint);\r\n //修改半径\r\n gc.setRadius(item.radius);\r\n //修改边线颜色\r\n gc.setStrokeColor(cg.lineColor);\r\n //修改填充颜色\r\n gc.setFillColor(cg.color);\r\n //修改边线透明度\r\n gc.setStrokeOpacity(cg.lineOpacity);\r\n //修改填充透明度\r\n gc.setFillOpacity(cg.pellucidity);\r\n //修改边线宽度\r\n gc.setStrokeWeight(cg.lineWidth);\r\n //修改边线样式\r\n gc.setStrokeStyle(cg.lineType);\r\n //缓存图元的数据,便于后期操作\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n });\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //画出对应边界线 name区域名\r\n addBaiduBoundary(bdNames){\r\n let t = this;\r\n bdNames.forEach(name=>{\r\n t._boundary.get(name,(ary)=>{\r\n // fix 飞地有多个区域的问题\r\n let arr = [];\r\n ary.boundaries.forEach((item) => {\r\n let id = 'boundary' + new Date().getTime() + Math.random();\r\n let paths = item.split(';').map(function (item, index) {\r\n return item.split(',');\r\n });\r\n arr.push({ id: id, rings: paths , name: name})\r\n t.state.boundaryInfo.push({ id: id, name: name });\r\n })\r\n t.addPolygon(arr);\r\n });\r\n })\r\n }\r\n //删除对应应边界线 name区域名\r\n removeBaiduBoundary(removedBDNames){\r\n let t = this;\r\n let removedBDIds = t.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)>-1).map(item=>item.id);\r\n t.setState({boundaryInfo:t.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)==-1)});\r\n removedBDIds.forEach(id=>{\r\n t.removeGraphic(id,'polygon');\r\n });\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}){\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7\r\n };\r\n if(d.config){\r\n cg = {...cg,...d.config};\r\n }\r\n if(!t.heatmap){\r\n t.heatmap = new BMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.state.gis.addOverlay(t.heatmap);\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: eval(cg.opacity) * 100,\r\n visible: cg.visible\r\n }\r\n if(cg.gradient){\r\n option.gradient = cg.gradient;\r\n }\r\n t.heatmap.setDataSet({\r\n max: cg.max,\r\n data: d.data || []\r\n });\r\n t.heatmap.setOptions(option);\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 BMap.InfoWindow(sContent);\r\n \r\n infowindow.setWidth(cg.width);\r\n infowindow.setHeight(cg.height);\r\n\r\n if(d.lat && d.lng && d.content){\r\n render(d.content, sContent);\r\n t.state.gis.openInfoWindow(infowindow, new BMap.Point(d.lng,d.lat));\r\n\r\n } else {\r\n infowindow && t.state.gis.closeInfoWindow();\r\n }\r\n }\r\n //添加海量点 \r\n addPointCollection(data = []) {\r\n let t = this;\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = [];\r\n (d.points || []).map(function(d,i){\r\n let p = new BMap.Point(d.lng,d.lat);\r\n p.attributes = d;\r\n points.push(p);\r\n })\r\n let options = {\r\n size: gisMapConstant[d.size] || gisMapConstant['normal'],\r\n shape: gisMapConstant[d.shape] || gisMapConstant['circle'],\r\n color: d.color || '#d340c3'\r\n }\r\n // 初始化PointCollection\r\n let VotexpointCollection = new BMap.PointCollection(points, options); \r\n t.state.gis.addOverlay(VotexpointCollection); // 添加Overlay\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.addEventListener('click', function (e) {\r\n if('clickPointCollection' in t.props && typeof(t.props.clickPointCollection) == 'function'){\r\n let obj = {\r\n id: d.id,\r\n ...e.point,\r\n mapLayer: VotexpointCollection\r\n }\r\n t.props.clickPointCollection(obj);\r\n }\r\n });\r\n });\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []) {\r\n let t = this;\r\n data.map((ds,i)=>{\r\n t.morepoints.map(function (item,index) {\r\n if(item.id == ds.id){\r\n let points = [];\r\n ds.points.map(function(d,i){\r\n let p = new BMap.Point(d.lng,d.lat);\r\n p.attributes = d;\r\n points.push(p);\r\n })\r\n item.value.setPoints(points);\r\n item.value.setStyles({\r\n size: gisMapConstant[ds.size] || gisMapConstant['normal'],\r\n shape: gisMapConstant[ds.shape] || gisMapConstant['circle'],\r\n color: ds.color || '#d340c3'\r\n })\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 //点击图元事件\r\n clickGraphic (id,e) {\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\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.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n //图元鼠标移开事件\r\n mouseOutGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*地图事件处理*/\r\n //地图点击事件\r\n clickMap(){\r\n let t =this;\r\n if(typeof(t.props.clickMap) ===\"function\"){\r\n t.state.gis.addEventListener('click',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = e.point;\r\n obj.pixel = e.pixel;\r\n t.props.clickMap(obj);\r\n });\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) === 'function'){\r\n t.state.gis.addEventListener('dragstart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n })\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n t.state.gis.addEventListener('dragend',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n })\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n t.state.gis.addEventListener('movestart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n })\r\n }\r\n }\r\n //地图移动结束后事件\r\n moveEnd(){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n t.state.gis.addEventListener('moveend',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveEnd(obj);\r\n })\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(){\r\n let t = this;\r\n if(typeof(t.props.zoomStart) === 'function'){\r\n t.state.gis.addEventListener('zoomstart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n });\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(){\r\n let t = this;\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n t.state.gis.addEventListener('zoomend',(e)=>{\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 /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n let mgt = [116.404,39.915];\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.state.gis.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n mgt = gt;\r\n }\r\n t.state.gis.setCenter(new BMap.Point(mgt[0],mgt[1]));\r\n t.setState({center: mgt});\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.getZoomLevel();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(zoom);\r\n }\r\n //将制定图元展示在视野内 (强制改变地图中心位置)\r\n /*\r\n 参数arg格式如下1,2\r\n 1.string 格式如:'1,a,2,3,4'\r\n 2.数组 ['1','2']\r\n */\r\n setVisiblePoints (mapVisiblePoints) {\r\n let t = this;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];\r\n let obj = null;\r\n\r\n switch(mapVisiblePoints.fitView){\r\n case 'point':\r\n arg = this.state.pointIds;\r\n break;\r\n case 'line':\r\n arg = this.state.lineIds;\r\n break;\r\n case 'polygon':\r\n arg = this.state.polygonIds;\r\n break;\r\n case 'circle':\r\n arg = this.state.circleIds;\r\n break;\r\n case 'all':\r\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\r\n break;\r\n default:\r\n arg = mapVisiblePoints.fitView;\r\n break;\r\n }\r\n\r\n /**\r\n * 用法\r\n * map.setVisiblePoints('lng,lat;lng,lat')\r\n */\r\n if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n obj = t.getFitView(ary);\r\n \r\n } else if(arg instanceof Array){\r\n /**\r\n * 用法\r\n * map.setVisiblePoints([[lng,lat],[lng,lat]])\r\n */\r\n if(arg[0] instanceof Array){\r\n let a = [];\r\n for(let i = 0 ; i < arg.length ; i++){\r\n a.push(new BMap.Point(arg[i][0],arg[i][1]));\r\n }\r\n obj = t.state.gis.getViewport(a);\r\n /**\r\n * 用法\r\n * map.setVisiblePoints(['lng,lat','lng,lat'])\r\n */\r\n } else {\r\n obj = t.getFitView(arg);\r\n }\r\n }\r\n if(!obj){return false} \r\n if(!type || type == 'all'){\r\n t.state.gis.centerAndZoom(obj.center, obj.zoom);\r\n }else if(type == 'zoom'){\r\n t.setZoomLevel(obj.zoom);\r\n }else if(type == 'center'){\r\n t.setCenter([obj.center.lng,obj.center.lat]);\r\n }\r\n }\r\n /*get方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t =this;\r\n return t.state.gis.getCenter();\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getZoom();\r\n }\r\n //获取对应经纬的最优 zoomLevel和center\r\n getFitView(ids){\r\n let t = this;\r\n if(ids.length > 0){\r\n let allLayers = [];\r\n for(let i = 0 ; i < ids.length ; i++){\r\n switch((t.GM.getGraphicParam(ids[i]) || {}).geometryType){\r\n case 'point':\r\n allLayers.push(t.GM.getGraphic(ids[i]).getPosition());\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n allLayers = [...allLayers,...t.GM.getGraphic(ids[i]).getPath()];\r\n break;\r\n case 'circle':\r\n allLayers.push(t.GM.getGraphic(ids[i]).getCenter());\r\n break;\r\n }\r\n }\r\n if(allLayers.length > 0){\r\n return t.state.gis.getViewport(allLayers);\r\n }\r\n }\r\n }\r\n //获取图元数据\r\n getGraphic (id) {\r\n let t = this;\r\n if(!id){\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if(!gg){\r\n return false;\r\n }\r\n let p = {},pts = [],lng = 0,lat = 0;\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.getPosition().lng;\r\n lat = gg.getPosition().lat;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n pts = gg.getPath().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n // fix: 编辑图元时面积计算不正确,需要过滤一下重复的经纬度\r\n pts = uniqBy(gg.getPath(), function(res){\r\n return res.lng && res.lat\r\n }).map((item)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'circle':\r\n lng = gg.getCenter().lng;\r\n lat = gg.getCenter().lat;\r\n let radius = gg.getRadius();\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n return p;\r\n }\r\n /*功能方法*/\r\n //单个删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n if(!!graphic){\r\n //清除聚合点 避免异常\r\n t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n t.state.gis.removeOverlay(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n /*根据图元id,使图元变成可编辑状态*/\r\n doEdit (id){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(id);\r\n let gtp = t.GM.getGraphicParam(id);\r\n if(!graphic)return false;\r\n //关闭先前编辑的图元\r\n if(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n if(!t.editGraphicChange){\r\n //编辑变动后\r\n t.editGraphicChange = (e)=>{\r\n let id = t.state.editId,\r\n param = t.getGraphic(id),\r\n obj = {\r\n param,e,id,\r\n geometry: param.geometry\r\n };\r\n if(param.geometry.type == 'polygon'){\r\n // obj.area = BMapLib.GeoUtils.getPolygonArea(param.mapLayer);\r\n // fix: 只能是数组计算之前的计算因为重复的经纬度导致面积为NAN\r\n obj.area = BMapLib.GeoUtils.getPolygonArea(param.geometry.rings.map((item)=>{\r\n return new BMap.Point(item[0], item[1])\r\n }));\r\n }\r\n if(param.geometry.type == 'polyline'){\r\n obj.distance = t.calculateDistance(param.geometry.paths);\r\n }\r\n if(param.geometry.type == 'circle'){\r\n obj.area = Math.pow(param.geometry.radius,2)*Math.PI;\r\n if(t.editTimeout){\r\n clearTimeout(t.editTimeout);\r\n }\r\n t.editTimeout = setTimeout(()=>{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n },300);\r\n }else{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n }\r\n }\r\n }\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.enableDragging();\r\n graphic.addEventListener(\"dragend\",t.editGraphicChange);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n graphic.enableEditing();\r\n graphic.addEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n case 'circle':\r\n graphic.enableEditing();\r\n graphic.addEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n }\r\n t.setState({editId:id});\r\n }\r\n //关闭编辑\r\n endEdit (){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(t.state.editId);\r\n let gtp = t.GM.getGraphicParam(t.state.editId);\r\n if(!graphic)return false;\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.disableDragging();\r\n graphic.removeEventListener(\"dragend\",t.editGraphicChange);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n graphic.disableEditing();\r\n graphic.removeEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n case 'circle':\r\n graphic.disableEditing();\r\n graphic.removeEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n }\r\n let editGraphic = t.state.editGraphic;\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n },()=>{\r\n if(editGraphic){\r\n t.props.editGraphicChange(editGraphic);\r\n }\r\n })\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this,drawParam = {};\r\n //先关闭(防止连点)\r\n t._drawmanager.close();\r\n //初始化参数\r\n drawParam.geometryType = obj.geometryType || 'point';\r\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\r\n drawParam.data = obj.data?{...obj.data}:{};\r\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\r\n //判断id是否存在\r\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\r\n if(len > -1){\r\n //如果id存在 删除存在的图元,清除drawId中的id数据\r\n t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let param = {};\r\n let paramgcr = {};\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.strokeColor = drawParam.parameter.lineColor;\r\n paramgcr.strokeOpacity = drawParam.parameter.lineOpacity;\r\n paramgcr.strokeWeight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.strokeStyle = drawParam.parameter.lineType;\r\n paramgcr.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: drawParam.parameter.color,\r\n lineColor: drawParam.parameter.lineColor,\r\n lineOpacity: drawParam.parameter.lineOpacity,\r\n pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: drawParam.geometryType\r\n };\r\n }\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n param.offset = new BMap.Size((drawParam.parameter.markerContentX || -15) + (drawParam.parameter.width || 30)/2,\r\n (drawParam.parameter.markerContentY || -30) + (drawParam.parameter.height || 30)/2);\r\n let icon = new BMap.Icon(\r\n drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n new BMap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30)\r\n );\r\n icon.setImageSize(new BMap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30));\r\n param.icon = icon;\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 || `${configUrl.mapServerURL}/images/defaultMarker.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._drawmanager.setDrawingMode('marker');\r\n t._drawmanager.open({markerOptions: 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._drawmanager.open({polylineOptions: param,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('polyline');\r\n break;\r\n case 'polygon':\r\n t._drawmanager.open({polygonOptions: paramgcr,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('polygon');\r\n break;\r\n case 'circle':\r\n t._drawmanager.open({circleOptions: paramgcr,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('circle');\r\n break;\r\n case 'rectangle':\r\n t._drawmanager.open({rectangleOptions: paramgcr,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('rectangle');\r\n break;\r\n }\r\n }\r\n //关闭绘制图元\r\n closeDraw(){\r\n let t = this;\r\n t._drawmanager.close();\r\n }\r\n //清空地图图元\r\n clearAll(){\r\n let t = this;\r\n //清空聚合\r\n if (t._cluster) {\r\n t._cluster.clearMarkers();\r\n }\r\n //关闭测距\r\n if(t._rangingTool){\r\n t._rangingTool.close();\r\n }\r\n //清空地图\r\n t.state.gis.clearOverlays();\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //关闭编辑\r\n t.endEdit();\r\n //清空历史数据记录\r\n t.setState({\r\n pointIds: [],\r\n lineIds: [],\r\n polygonIds: [],\r\n circleIds: [],\r\n boundaryInfo: [],\r\n drawIds: {\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n });\r\n }\r\n /*工具方法*/\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster (arg) {\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n t._cluster.addMarkers(ary);\r\n }\r\n //删除点聚合效果\r\n removeCluster(arg){\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n if(ary.length > 0){\r\n t._cluster.removeMarkers(ary);\r\n }\r\n }\r\n //清空聚合效果\r\n clearClusters(){\r\n let t = this;\r\n t._cluster.clearMarkers();\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\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 //过滤moveTo的点位\r\n //缓存所有聚合的点位\r\n let allps = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n allps.push(t.GM.getGraphic(ary[i]));\r\n }\r\n return allps;\r\n }\r\n //测距\r\n vtxRangingTool (callback) {\r\n let t = this;\r\n let cb = (e)=>{\r\n //关闭测距\r\n t._rangingTool.close();\r\n //注销事件(避免重复)\r\n t._rangingTool.removeEventListener('drawend',cb);\r\n if(typeof(callback) ===\"function\"){\r\n let obj = {\r\n distance : e.distance\r\n };\r\n let objLngLats = new Array();\r\n for (let i = 0; i < e.points.length; i++) {\r\n objLngLats.push([ e.points[i].lng, e.points[i].lat ]);\r\n }\r\n obj.lnglats = objLngLats;\r\n callback(obj);\r\n }\r\n }\r\n t._rangingTool.addEventListener('drawend',cb);\r\n t._rangingTool.open(this.state.gis);\r\n }\r\n //开启路况\r\n openTrafficInfo(){\r\n let t =this;\r\n t._trafficCtrl.showTraffic();\r\n }\r\n //关闭路况\r\n hideTrafficInfo(){\r\n let t =this;\r\n t._trafficCtrl.hideTraffic();\r\n }\r\n //展示比例尺\r\n showControl (props){\r\n let t = this,location = t.AnchorConstant['tr'],type = '',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.type){\r\n type = t.NavigationConstant[config.showControl.type];\r\n }\r\n if(config.showControl.offset && config.showControl.offset.length>0){\r\n offset = new BMap.Size(config.showControl.offset[0],config.showControl.offset[1])\r\n scaleOffset = new BMap.Size(config.showControl.offset[0] + 70,config.showControl.offset[1])\r\n }\r\n // 左上角,添加比例尺\r\n let control = new BMap.ScaleControl({anchor: location, offset: scaleOffset});\r\n t.state.gis.addControl(control);\r\n t.scaleControl = control;\r\n if(type !== 'null'){\r\n //右上角,仅包含平移和缩放按钮\r\n let navigation = new BMap.NavigationControl({anchor: location, type: type, offset}); \r\n t.state.gis.addControl(navigation);\r\n t.navigationControl = navigation;\r\n }\r\n }\r\n //展示地图切换控件\r\n showMapTypeControl (props){\r\n let t = this,location = t.AnchorConstant['br'],offset=null;\r\n let config = props || t.props;\r\n if(t.mapTypeControl) {\r\n t.state.gis.removeControl(t.mapTypeControl);\r\n }\r\n if(config.satelliteSwitch.location){\r\n location = t.AnchorConstant[config.satelliteSwitch.location];\r\n }\r\n if(config.satelliteSwitch.offset && config.satelliteSwitch.offset.length>0){\r\n offset = new BMap.Size(config.satelliteSwitch.offset[0],config.satelliteSwitch.offset[1])\r\n }\r\n let mapTypes = [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP]\r\n // 地图切换控件\r\n let control = new BMap.MapTypeControl({mapTypes, anchor: location, type: BMAP_MAPTYPE_CONTROL_HORIZONTAL, offset: offset});\r\n t.state.gis.addControl(control);\r\n t.mapTypeControl = control;\r\n }\r\n /*设置显示区域*/\r\n setAreaRestriction(sw_ne){\r\n let t = this;\r\n //修改了区域限制的js文件.\r\n let bounds = new BMap.Bounds(new BMap.Point(sw_ne[0][0],sw_ne[0][1]),new BMap.Point(sw_ne[1][0],sw_ne[1][1]));\r\n t._bmar.setBounds(this.state.gis,bounds);\r\n }\r\n /*取消显示区域*/\r\n clearAreaRestriction(){\r\n let t = this;\r\n t._bmar.clearBounds();\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return(\r\n <div id={_map.mapId} style={{width:'100%',height:'100%'}}></div>\r\n );\r\n }\r\n /*公共方法*/\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n let gg = gc.getPosition();\r\n let tx = gg.lng + rx,ty = gg.lat + ry;\r\n gc.setPosition(new BMap.Point(tx,ty));\r\n t.movePoints[i].waitTime = 0;\r\n if(deleteTime <= 0){\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a,b)=>{return b-a});\r\n for(let i = 0 ; i < deleteIndex.length ; i++){\r\n t.movePoints.splice(deleteIndex[i],1);\r\n }\r\n if(nowMovePoints.length == 0){\r\n clearInterval(t.moveToTimer);\r\n }\r\n },10);\r\n }\r\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\r\n delay = delay || 3;\r\n let t = this,timer = 10,\r\n gc = t.GM.getGraphic(id);\r\n delay = eval(delay)*1000;\r\n let count = delay/timer;\r\n let s = gc.getPosition(),e = new BMap.Point(lnglat[0],lnglat[1]);\r\n if(s.equals(e)){\r\n return false;\r\n }else{\r\n let url= null;\r\n //计算角度,旋转\r\n if(autoRotation){\r\n let ddeg = t.rotateDeg(gc.getPosition(),lnglat);\r\n if(urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n url = urlleft;\r\n }else{\r\n url = urlright;\r\n }\r\n let gcicon = gc.getIcon();\r\n gcicon.setImageUrl(url);\r\n gc.setIcon(gcicon);\r\n gc.setRotation(ddeg);\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.lng - s.lng)/count, ry = (e.lat - s.lat)/count;\r\n let isHave = false;\r\n for(let i = 0 ; i < t.movePoints.length ;i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1,{\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n \r\n }\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 BMap.Point(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.pointToPixel(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.pointToPixel(new BMap.Point(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 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 showGraphicById (id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).show();\r\n }\r\n }\r\n //隐藏图元\r\n hideGraphicById(id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).hide();\r\n }\r\n }\r\n //获取地图当前的位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis.getBounds();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.getSouthWest().lng,\r\n lat : nowBounds.getSouthWest().lat\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.getNorthEast().lng,\r\n lat : nowBounds.getNorthEast().lat\r\n };\r\n obj.nowCenter = t.state.gis.getCenter();\r\n obj.zoom = t.state.gis.getZoom();\r\n obj.mapSize = t.state.gis.getSize();\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp,ep){\r\n return Math.round(this.state.gis.getDistance(new BMap.Point(fp[0], fp[1]), \r\n new BMap.Point(ep[0], ep[1]))*100)/100;\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return false;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\r\n }\r\n //计算图元面积(面,圆)\r\n calculateArea(id){\r\n var t = this;\r\n return t.state.gis.calculateArea(t.getGraphic(id));\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //百度搜索功能\r\n searchPoints(searchValue,pageSize=10,pageIndex=0){\r\n return new Promise((resolve)=>{\r\n let psc = new BMap.LocalSearch(this.state.gis,{\r\n onSearchComplete:(result)=>{\r\n if(!result){\r\n resolve([]);\r\n }\r\n else if(result.getPageIndex()!=pageIndex){\r\n psc.gotoPage(pageIndex);\r\n }\r\n else{\r\n let res_arr = [];\r\n for(let i=0,len=result.getCurrentNumPois();i<len;i++){\r\n res_arr.push(result.getPoi(i));\r\n }\r\n resolve(res_arr.map((r)=>({\r\n id: r.uid,\r\n longitude: r.point.lng,\r\n latitude: r.point.lat,\r\n canShowLabel: true,\r\n config: {\r\n labelContent: r.title,\r\n labelPixelY: 27\r\n },\r\n other: 'search'\r\n })));\r\n }\r\n // console.log(result,result.getNumPages(),result.getPageIndex()); \r\n },\r\n pageCapacity:pageSize\r\n });\r\n psc.search(searchValue); \r\n })\r\n }\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.loadMapComplete.then(()=>{\r\n t.init();\r\n }) \r\n }\r\n //重新渲染结束\r\n componentDidUpdate(prevProps, prevState) {}\r\n //已加载组件,收到新的参数时调用\r\n componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,imageOverlays,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll,mapStyle,coverageType,\r\n infoWindowData\r\n } = nextProps;\r\n let props = t.props;\r\n\r\n // 设置地图地图样式\r\n if(mapStyle && !t.deepEqual(mapStyle,props.mapStyle)){\r\n if(typeof(mapStyle) === 'string'){\r\n t.state.gis.setMapStyle({style:mapStyle});\r\n }\r\n if(mapStyle instanceof Array){\r\n t.state.gis.setMapStyle({styleJson:mapStyle});\r\n }\r\n }\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType && !t.deepEqual(coverageType,props.coverageType)){\r\n t.setMapType(coverageType);\r\n }\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n \r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && props.mapPoints instanceof Array && !t.deepEqual(mapPoints,props.mapPoints)){\r\n let oldMapPoints = props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.state.editId){\r\n oldMapPoints = props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,props.mapPolygons)){\r\n let oldMapPolygons = props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.state.editId){\r\n oldMapPolygons = props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && props.mapCircles instanceof Array && !t.deepEqual(mapCircles,props.mapCircles)){\r\n let oldMapCircles = props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.state.editId){\r\n oldMapCircles = props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && props.mapLines instanceof Array && !t.deepEqual(mapLines,props.mapLines)){\r\n let oldMapLines = props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.state.editId){\r\n oldMapLines = props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n //绘制边界线\r\n if(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,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(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置最优视野\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n //开关路况\r\n if(isOpenTrafficInfo){\r\n t.openTrafficInfo();\r\n }else{\r\n t.hideTrafficInfo();\r\n }\r\n //设置区域限制\r\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\r\n t.clearAreaRestriction();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n // 比例尺控件位置改变\r\n 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.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch)!=JSON.stringify(t.props.satelliteSwitch)){\r\n t.showMapTypeControl(nextProps);\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.state.gis){\r\n t.state.gis.clearOverlays();\r\n }\r\n t.state.gis = null;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\r\n }\r\n}\r\n\r\nexport default BaiduMap;"],"mappings":"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"}
1
+ {"version":3,"file":"Map.js","names":["Set","Immutable","window","location","protocol","BMAP_PROTOCOL","BMap_loadScriptTime","Date","getTime","gisMapConstant","circle","star","square","rhombus","waterdrop","tiny","smaller","small","normal","big","bigger","huge","BaiduMap","props","GM","graphicManage","getPolygonArea","initPointIndex","_cluster","_rangingTool","_bmar","_drawmanager","editGraphicChange","editTimeout","_boundary","moveToTimer","heatmap","morepoints","movePoints","state","gis","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editId","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","rectangle","loadMapJs","loadList","BMapLib","DistanceTool","push","Promise","resolve","reject","$","getScript","configUrl","mapServerURL","TrafficControl","MarkerClusterer","AreaRestriction","DrawingManager","HeatmapOverlay","GeoUtils","TextIconOverlay","all","then","BMap","loadMapComplete","loadPlugin","attr","rel","type","href","appendTo","t","createMap","mapPoints","mapLines","mapPolygons","mapCircles","imageOverlays","mapVisiblePoints","mapCluster","mapZoomLevel","isOpenTrafficInfo","mapPointCollection","areaRestriction","coverageType","boundaryName","heatMapData","infoWindowData","customizedBoundary","setMapType","Array","addPoint","addLine","addPolygon","addCircle","imageUrlOverlay","length","addBaiduBoundary","heatMapOverlay","infoWindow","addPointCollection","setVisiblePoints","cluster","openTrafficInfo","hideTrafficInfo","setAreaRestriction","showControl","clickMap","dragMapStart","dragMapEnd","moveStart","moveEnd","zoomStart","zoomEnd","setState","mapCenter","mapStyle","minZoom","maxZoom","options","zoom","center","VtxMap","AnchorConstant","tr","BMAP_ANCHOR_TOP_RIGHT","tl","BMAP_ANCHOR_TOP_LEFT","bl","BMAP_ANCHOR_BOTTOM_LEFT","br","BMAP_ANCHOR_BOTTOM_RIGHT","NavigationConstant","large","BMAP_NAVIGATION_CONTROL_LARGE","BMAP_NAVIGATION_CONTROL_SMALL","pan","BMAP_NAVIGATION_CONTROL_PAN","BMAP_NAVIGATION_CONTROL_ZOOM","map","Map","toString","enableMapClick","setMapStyle","style","styleJson","setTimeout","parent","children","css","centerAndZoom","Point","parseFloat","satelliteSwitch","showMapTypeControl","_trafficCtrl","showPanel","addControl","document","getElementById","remove","removeNode","enableScrollWheelZoom","Boundary","addEventListener","e","label","removeOverlay","drawExtData","extData","id","backobj","attributes","geometryType","mapLayer","overlay","geometry","clickGraphic","mouseOverGraphic","mouseOutGraphic","setGraphic","dealData","lnglatAry","_extent","path","x","getPosition","lng","y","lat","distance","calculate","paths","area","rings","getCenter","radius","getRadius","setGraphicParam","close","drawEnd","BMAP_NORMAL_MAP","BMAP_HYBRID_MAP","imageAry","item","index","sw","ne","url","opacity","console","warn","isArray","swp","nep","option","displayOnMinLevel","displayOnMaxLevel","imageURL","swnep","Bounds","GroundOverlay","addOverlay","psids","isRepetition","longitude","latitude","cg","width","height","labelContent","labelPixelX","labelPixelY","BAnimationType","markerContentX","markerContentY","deg","markerContent","config","position","marker","markerOption","offset","Size","icon","Icon","setImageSize","Marker","markerLOption","markerL","Label","setStyle","backgroundColor","border","setLabel","setRotation","canShowLabel","labelClass","split","join","markerLabel","zIndex","setZIndex","setAnimation","BMAP_ANIMATION_BOUNCE","BMAP_ANIMATION_DROP","other","gc","getGraphic","setOffset","setIcon","getLabel","setContent","getIcon","size","labelOffset","isAnimation","moveTo","animationDelay","autoRotation","urlleft","setPosition","moveAnimation","lsids","color","pellucidity","lineWidth","lineType","isHidden","linePath","lineOption","strokeColor","strokeWeight","strokeOpacity","strokeStyle","line","Polyline","hide","show","setPath","setStrokeColor","setStrokeOpacity","setStrokeWeight","setStrokeStyle","pgsids","lineColor","lineOpacity","polygonOption","fillColor","fillOpacity","polygonPath","Polygon","setFillColor","setFillOpacity","ccsids","circleOption","centerPoint","Circle","setCenter","setRadius","bdNames","forEach","name","get","ary","arr","boundaries","Math","random","removedBDNames","removedBDIds","filter","indexOf","removeGraphic","d","max","visible","eval","gradient","setDataSet","data","setOptions","sContent","createElement","infowindow","InfoWindow","setWidth","setHeight","content","render","openInfoWindow","closeInfoWindow","points","i","p","shape","VotexpointCollection","PointCollection","value","clickPointCollection","obj","ds","setPoints","setStyles","ids","ind","clear","param","top","clientY","left","clientX","getMapExtent","clickLngLat","pixel","gt","mgt","c","z","getZoomLevel","setZoom","arg","fitView","concat","getFitView","a","getViewport","setZoomLevel","getZoom","allLayers","getGraphicParam","getPath","gp","gg","pts","uniqBy","res","graphic","removeMarker","splice","gtp","endEdit","calculateDistance","pow","PI","clearTimeout","enableDragging","enableEditing","disableDragging","removeEventListener","disableEditing","drawParam","parameter","len","paramgcr","setDrawingMode","open","markerOptions","polylineOptions","enableCalculate","polygonOptions","circleOptions","rectangleOptions","clearMarkers","clearOverlays","clearAll","clusterToolFunction","addMarkers","removeMarkers","Object","prototype","apply","allps","callback","cb","objLngLats","lnglats","showTraffic","hideTraffic","scaleOffset","scaleControl","removeControl","navigationControl","control","ScaleControl","anchor","navigation","NavigationControl","mapTypeControl","mapTypes","BMAP_SATELLITE_MAP","MapTypeControl","BMAP_MAPTYPE_CONTROL_HORIZONTAL","sw_ne","bounds","setBounds","clearBounds","_map","clearInterval","setInterval","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","tx","ty","b","lnglat","delay","urlright","timer","count","s","equals","ddeg","rotateDeg","gcicon","setImageUrl","isHave","sp","ep","spLngLat","pointToPixel","tan","atan","disy","bias","ms","xmax","xmin","ymax","ymin","lngX","latX","nowBounds","getBounds","southWest","getSouthWest","northEast","getNorthEast","nowCenter","mapSize","getSize","calculatePointsDistance","fp","round","getDistance","ps","totalDistance","calculateArea","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","searchValue","pageSize","pageIndex","psc","LocalSearch","onSearchComplete","result","getPageIndex","gotoPage","res_arr","getCurrentNumPois","getPoi","r","uid","title","pageCapacity","search","init","prevProps","prevState","nextProps","setCluster","isRangingTool","mapRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","dataMatch","clearPointCollection","updatePointCollection","clearAllPointCollection","oldMapPoints","newMapPoints","dealAdd","dealUpdate","updatePoint","oldMapPolygons","newMapPolygons","updatePolygon","oldMapCircles","newMapCircles","updateCircle","oldMapLines","newMapLines","updateLine","newBDName","oldBDName","removedBoundaryName","addedBoundaryName","removeBaiduBoundary","doEdit","draw","closeDraw","vtxRangingTool","clearAreaRestriction","JSON","stringify","React","Component"],"sources":["VtxMap/BMap/Map.js"],"sourcesContent":["import React from 'react';\r\nimport { render } from 'react-dom';\r\nimport {graphicManage,getPolygonArea} from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport uniqBy from 'lodash/unionBy'\r\nconst {Set} = Immutable;\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\n// 百度地图js文件内做了一些额外的http or https判断\r\n// 如果协议为Https,我们需要改动全局变量BMAP_PROTOCOL和BMap_loadScriptTime\r\nif (window.location.protocol === 'https:') {\r\n window.BMAP_PROTOCOL = \"https\";\r\n window.BMap_loadScriptTime = (new Date).getTime();\r\n}\r\n\r\nconst gisMapConstant = {\r\n circle: 'BMAP_POINT_SHAPE_CIRCLE',//圆形\r\n star: 1,//星形\r\n square: 4,//方形\r\n rhombus: 5,//菱形\r\n waterdrop: 2,//水滴状,该类型无size和color属性\r\n tiny: 1, //定义点的尺寸为超小,宽高为2px*2px\r\n smaller: 2,//定义点的尺寸为很小,宽高为4px*4px\r\n small: 3,//定义点的尺寸为小,宽高为8px*8px\r\n normal: 4,//定义点的尺寸为正常,宽高为10px*10px,为海量点默认尺寸\r\n big: 5,//定义点的尺寸为大,宽高为16px*16px\r\n bigger: 6,//定义点的尺寸为很大,宽高为20px*20px\r\n huge: 7,//定义点的尺寸为超大,宽高为30px*30px\r\n}\r\n\r\nclass BaiduMap extends React.Component{\r\n constructor(props){\r\n super(props);\r\n this.GM = new graphicManage();//初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.initPointIndex = 0;//初始化地图时记录点当前位置\r\n this._cluster = null;//点聚合对象\r\n this._rangingTool = null;//测距对象\r\n this._bmar = null;//区域限制对象\r\n this._drawmanager = null;//图元绘制对象\r\n this.editGraphicChange = null;//编辑方法回调\r\n this.editTimeout = null;//圆编辑回调延迟时间对象\r\n this._boundary = null;//获取行政区域数据的对象\r\n this.moveToTimer = null;//moveTo时间对象\r\n this.heatmap = null;//热力图对象\r\n this.morepoints = [];//海量点数组\r\n this.movePoints = [];//移动点的动画集合\r\n this.state = {\r\n gis: null,//地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds:[], //地图上点的ids\r\n lineIds:[], //地图上线的ids\r\n polygonIds:[], //地图上面的ids\r\n circleIds:[], //地图上圆的ids\r\n editId: '',//当前编辑的图元id\r\n editGraphic: '',//当前编辑完后图元所有数据\r\n boundaryInfo: [],//当前画出的边界线的id和区域名\r\n drawIds: {//绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n };\r\n this.loadMapJs();\r\n }\r\n loadPlugin(){\r\n let loadList = [];\r\n if(!window.BMapLib || !window.BMapLib.DistanceTool){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/DistanceTool_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.TrafficControl){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TrafficControl_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.MarkerClusterer){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/MarkerClusterer_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.AreaRestriction){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/AreaRestriction_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.DrawingManager){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/DrawingManager_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.HeatmapOverlay){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/Heatmap_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.GeoUtils){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/GeoUtils_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n if(!window.BMapLib || !window.BMapLib.TextIconOverlay){\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TextIconOverlay_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n }\r\n loadList.push(new Promise((resolve,reject)=>{\r\n $.getScript(`${configUrl.mapServerURL}/TextIconOverlay_min.js`,()=>{\r\n resolve();\r\n });\r\n }))\r\n return Promise.all(loadList).then(()=>{\r\n return window.BMap;\r\n });\r\n }\r\n loadMapJs(){\r\n this.loadMapComplete = new Promise((resolve,reject)=>{\r\n if(window.BMap){\r\n resolve(this.loadPlugin());\r\n }\r\n else{\r\n // EVlFc6DZzAzU5avIjoxNcFgQ\r\n $.getScript('//api.map.baidu.com/getscript?v=3.0&ak=42IughV5lDxAt0wI8AhDVuGR',()=>{\r\n resolve(this.loadPlugin());\r\n });\r\n $(\"<link>\").attr({ rel: \"stylesheet\",type: \"text/css\",href: '//api.map.baidu.com/library/TrafficControl/1.4/src/TrafficControl_min.css'}).appendTo(\"head\");\r\n }\r\n });\r\n }\r\n //初始化地图数据\r\n init(){\r\n let t = this;\r\n //创建地图\r\n t.createMap();\r\n const {\r\n mapPoints,mapLines,mapPolygons,mapCircles,imageOverlays,\r\n mapVisiblePoints,mapCluster,mapZoomLevel,\r\n isOpenTrafficInfo,mapPointCollection,areaRestriction,\r\n coverageType\r\n } = this.props;\r\n let {boundaryName,heatMapData,infoWindowData,customizedBoundary} = this.props;\r\n let {boundaryInfo,pointIds,lineIds,polygonIds,circleIds} = this.state;\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType){\r\n t.setMapType(coverageType);\r\n }\r\n //添加点\r\n if(mapPoints instanceof Array){\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if(mapLines instanceof Array){\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if(mapPolygons instanceof Array){\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if(mapCircles instanceof Array){\r\n t.addCircle(mapCircles);\r\n }\r\n //添加图片图层\r\n if(imageOverlays instanceof Array){\r\n t.imageUrlOverlay(imageOverlays);\r\n }\r\n //画边界线\r\n if(boundaryName instanceof Array && boundaryName.length>0){\r\n t.addBaiduBoundary(boundaryName);\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 if(mapPointCollection instanceof Array){\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //初始展示的视野范围\r\n if(mapVisiblePoints){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //设置点聚合\r\n if(mapCluster instanceof Array){\r\n t.cluster(mapCluster);\r\n }\r\n //开关路况\r\n if(isOpenTrafficInfo){\r\n t.openTrafficInfo();\r\n }else{\r\n t.hideTrafficInfo();\r\n }\r\n //设置区域限制\r\n if(areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //是否设置比例尺\r\n if(t.props.showControl){\r\n t.showControl();\r\n }\r\n /*地图事件*/\r\n //初始化地图点击事件\r\n t.clickMap();\r\n //地图拖动之前事件\r\n t.dragMapStart();\r\n //地图拖动结束后事件\r\n t.dragMapEnd();\r\n //地图移动之前事件\r\n t.moveStart();\r\n //地图移动结束后事件\r\n t.moveEnd();\r\n //地图缩放开始前事件\r\n t.zoomStart();\r\n //地图缩放结束后事件\r\n t.zoomEnd();\r\n t.setState({\r\n mapCreated:true\r\n })\r\n }\r\n //创建地图\r\n createMap () {\r\n let t = this;\r\n const {mapCenter,mapStyle,mapId,mapZoomLevel,minZoom,maxZoom} = t.props;\r\n let options ={\r\n zoom: mapZoomLevel || 10,\r\n center: mapCenter || [116.404,39.915],\r\n minZoom,maxZoom\r\n };\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n // 控件位置常量\r\n t.AnchorConstant = {\r\n tr: BMAP_ANCHOR_TOP_RIGHT,\r\n tl: BMAP_ANCHOR_TOP_LEFT,\r\n bl: BMAP_ANCHOR_BOTTOM_LEFT,\r\n br: BMAP_ANCHOR_BOTTOM_RIGHT\r\n }\r\n // 平移缩放控件大小\r\n t.NavigationConstant = {\r\n large: BMAP_NAVIGATION_CONTROL_LARGE,\r\n small: BMAP_NAVIGATION_CONTROL_SMALL,\r\n pan: BMAP_NAVIGATION_CONTROL_PAN,\r\n zoom: BMAP_NAVIGATION_CONTROL_ZOOM\r\n }\r\n let map = window.VtxMap[mapId] = t.state.gis = new BMap.Map(mapId.toString(),{\r\n enableMapClick : false,\r\n minZoom: options.minZoom,\r\n maxZoom: options.maxZoom\r\n });\r\n if(mapStyle){\r\n if(typeof(mapStyle) === 'string'){\r\n t.state.gis.setMapStyle({style:mapStyle});\r\n }\r\n if(mapStyle instanceof Array){\r\n t.state.gis.setMapStyle({styleJson:mapStyle});\r\n }\r\n }\r\n setTimeout(()=>{\r\n $('#myCanvasElement').parent().children('svg').css({'z-index':1});\r\n },500);\r\n // 初始化地图,设置中心点坐标和地图级别\r\n map.centerAndZoom(new BMap.Point(parseFloat(options.center[0]),parseFloat(options.center[1])), options.zoom);\r\n //添加地图类型控件\r\n if(t.props.satelliteSwitch){\r\n t.showMapTypeControl();\r\n }\r\n //初始化路况控件\r\n if(!t._trafficCtrl){\r\n t._trafficCtrl = new BMapLib.TrafficControl({\r\n // 是否显示路况提示面板\r\n showPanel : false\r\n });\r\n map.addControl(t._trafficCtrl);\r\n if(document.getElementById('tcBtn').remove){\r\n document.getElementById('tcBtn').remove();\r\n }else{\r\n document.getElementById('tcBtn').removeNode();\r\n }\r\n }\r\n //开启鼠标滚轮缩放\r\n map.enableScrollWheelZoom(true);\r\n //初始化获取行政区域数据的对象\r\n if(!t._boundary){\r\n t._boundary = new BMap.Boundary();\r\n }\r\n //初始化点聚合对象\r\n if(!t._cluster){\r\n t._cluster = new BMapLib.MarkerClusterer(map,{maxZoom: 17}); \r\n }\r\n //初始化测距对象\r\n if(!t._rangingTool){\r\n t._rangingTool = new BMapLib.DistanceTool(map);\r\n }\r\n //初始化区域限制对象\r\n if(!t._bmar){\r\n t._bmar = new BMapLib.AreaRestriction();\r\n }\r\n //初始化图元绘制对象\r\n if(!t._drawmanager){\r\n t._drawmanager = new BMapLib.DrawingManager(map);\r\n //监听绘制结束事件\r\n t._drawmanager.addEventListener('overlaycomplete', (e)=>{\r\n if(e.label){\r\n t.state.gis.removeOverlay(e.label);\r\n }\r\n let drawExtData = e.extData;\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawExtData.type].push(drawExtData.id);\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: e.overlay,\r\n geometry: {\r\n type: drawExtData.type == 'rectangle'?'polygon':drawExtData.type\r\n }\r\n };\r\n //点击事件\r\n e.overlay.addEventListener('click',(e)=>{\r\n t.clickGraphic(drawExtData.id,e);\r\n });\r\n //鼠标移入事件\r\n e.overlay.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(drawExtData.id,e);\r\n });\r\n //鼠标移出事件\r\n e.overlay.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(drawExtData.id,e);\r\n });\r\n //缓存绘制的图元信息\r\n t.GM.setGraphic(drawExtData.id,e.overlay);\r\n\r\n //区别点和圆的经纬度数据处理\r\n let {lnglatAry,_extent,path} = t.dealData(e.overlay);\r\n //处理返回数据\r\n switch(drawExtData.type){\r\n case 'point':\r\n backobj.geometry.x = e.overlay.getPosition().lng;\r\n backobj.geometry.y = e.overlay.getPosition().lat;\r\n break;\r\n case 'polyline':\r\n backobj.distance = e.calculate;\r\n backobj.lnglatAry = lnglatAry;\r\n backobj.geometry.paths = path;\r\n backobj.geometry._extent = _extent;\r\n break;\r\n case 'polygon':\r\n backobj.area = e.calculate;\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 = e.calculate;\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 = e.overlay.getCenter().lng;\r\n backobj.geometry.y = e.overlay.getCenter().lat;\r\n backobj.geometry.radius = e.overlay.getRadius();\r\n backobj.area = e.calculate;\r\n break;\r\n }\r\n t.GM.setGraphicParam(drawExtData.id,backobj);\r\n t._drawmanager.close();\r\n if('drawEnd' in t.props){\r\n t.props.drawEnd(backobj);\r\n }\r\n });\r\n }\r\n }\r\n /* \r\n 切换地图矢量图和卫星图背景\r\n type: \r\n BMAP_NORMAL_MAP 矢量图\r\n BMAP_SATELLITE_MAP 单卫星图 (暂定不用)\r\n BMAP_HYBRID_MAP 卫星路况图\r\n */\r\n setMapType(type){\r\n switch (type) {\r\n case 'sl':\r\n this.state.gis.setMapType(BMAP_NORMAL_MAP);\r\n break;\r\n case 'wx':\r\n this.state.gis.setMapType(BMAP_HYBRID_MAP);\r\n break;\r\n }\r\n }\r\n //增加图片图层\r\n imageUrlOverlay(imageAry){\r\n let t = this;\r\n imageAry.map((item,index)=>{\r\n let {sw,ne,url,opacity} = 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 swp = new BMap.Point(sw[0],sw[1]),\r\n nep = new BMap.Point(ne[0],ne[1]),\r\n option = {\r\n opacity: opacity || 1,\r\n displayOnMinLevel: item.displayOnMinLevel || 3,\r\n displayOnMaxLevel: item.displayOnMaxLevel || 19,\r\n imageURL: url\r\n },\r\n swnep = new BMap.Bounds(swp, nep),\r\n imageUrlOverlay = new BMap.GroundOverlay(swnep, option);\r\n t.state.gis.addOverlay(imageUrlOverlay);\r\n\r\n }else{\r\n console.warn(`区域经纬度sw/ne数据错误`);\r\n return false;\r\n }\r\n })\r\n }\r\n //新增点位\r\n addPoint(mapPoints,type){\r\n let t = this;\r\n let psids = [...t.state.pointIds];\r\n 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 BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n //初始化默认数据\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let position = new BMap.Point(item.longitude,item.latitude);\r\n let marker = null;\r\n if(item.markerContent){\r\n /*自定义html加点\r\n 用Label来实现,无法再添加label(高德有判断,实现不同)*/\r\n //覆盖物参数\r\n let markerOption = {\r\n offset: new BMap.Size(cg.markerContentX + cg.width/2,\r\n cg.markerContentY + cg.height/2),\r\n icon: null\r\n }\r\n let icon = new BMap.Icon(\r\n `${configUrl.mapServerURL}/images/touming.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n markerOption = {...markerOption,icon};\r\n marker = new BMap.Marker(position,markerOption);\r\n\r\n //覆盖物参数\r\n let markerLOption = {\r\n offset: new BMap.Size(0,0)\r\n };\r\n let markerL = new BMap.Label(item.markerContent,markerLOption);\r\n markerL.setStyle({\r\n backgroundColor : '',\r\n border : '0'\r\n });\r\n marker.setLabel(markerL);\r\n }else{\r\n /*添加非html点位*/\r\n //覆盖物参数\r\n let markerOption = {\r\n offset: new BMap.Size(cg.markerContentX + cg.width/2,\r\n cg.markerContentY + cg.height/2),\r\n icon: null\r\n }\r\n let icon = new BMap.Icon(\r\n item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n markerOption = {...markerOption,icon};\r\n marker = new BMap.Marker(position,markerOption);\r\n //设置选择角度\r\n marker.setRotation(cg.deg);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n //label默认样式\r\n let labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n let markerLabel = new BMap.Label(\r\n \"<div class='\"+labelClass+\"' style=\\\"margin-left: 0;\\\">\"\r\n + cg.labelContent + \"</div>\", {\r\n offset : new BMap.Size(cg.labelPixelX,cg.labelPixelY)\r\n });\r\n markerLabel.setStyle({\r\n border : '0',\r\n backgroundColor : ''\r\n });\r\n marker.setLabel(markerLabel);\r\n }\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n marker.setZIndex(cg.zIndex);\r\n }\r\n //添加点到地图\r\n t.state.gis.addOverlay(marker);\r\n if(!item.markerContent && cg.BAnimationType == 0){\r\n marker.setAnimation(BMAP_ANIMATION_BOUNCE);\r\n }else if(!item.markerContent && cg.BAnimationType == 1){\r\n marker.setAnimation(BMAP_ANIMATION_DROP);\r\n }\r\n //点击事件\r\n marker.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n marker.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n marker.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存所有点的id\r\n psids.push(item.id);\r\n //缓存当前点的图元对象和基本数据\r\n t.GM.setGraphic(item.id,marker)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n //所有点缓存在state中\r\n // t.setState({\r\n // pointIds: psids\r\n // });\r\n t.state.pointIds = psids;\r\n }\r\n }\r\n //更新点位\r\n updatePoint(mapPoints){\r\n let t = this;\r\n // let dpoints = [],apoints = [];\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 = t.GM.getGraphic(item.id);\r\n let cg = {\r\n width : 30,\r\n height : 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //高德以左上定位,百度以中心为定位\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0\r\n }\r\n if(item.markerContent){\r\n cg = {...cg,markerContentX: 0,markerContentY: 0,width:100,height:30};\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n if(item.markerContent){\r\n gc.setOffset(new BMap.Size(cg.markerContentX + cg.width/2,\r\n cg.markerContentY + cg.height/2));\r\n let icon = new BMap.Icon(\r\n `${configUrl.mapServerURL}/images/touming.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n gc.setIcon(icon);\r\n if(!!gc.getLabel()){\r\n gc.getLabel().setContent(item.markerContent);\r\n gc.getLabel().setOffset(new BMap.Size(0,0));\r\n }else{\r\n //覆盖物参数\r\n let markerLOption = {\r\n offset: new BMap.Size(0,0)\r\n };\r\n let markerL = new BMap.Label(item.markerContent,markerLOption);\r\n markerL.setStyle({\r\n backgroundColor : '',\r\n border : '0'\r\n });\r\n gc.setLabel(markerL);\r\n }\r\n }else{\r\n cg.width = cg.width || gc.getIcon().size.width;\r\n cg.height = cg.height || gc.getIcon().size.height;\r\n //未改变方式的点 直接修改数据\r\n let icon = new BMap.Icon(\r\n item.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n new BMap.Size(cg.width,cg.height)\r\n );\r\n icon.setImageSize(new BMap.Size(cg.width,cg.height));\r\n gc.setIcon(icon);\r\n gc.setOffset(new BMap.Size((cg.markerContentX || -15) + cg.width/2,\r\n (cg.markerContentY || -30) + cg.height/2));\r\n //修改角度\r\n gc.setRotation(cg.deg || 0);\r\n //添加label\r\n if(item.canShowLabel && cg.labelContent){\r\n let markerLabel = gc.getLabel(),\r\n //label默认样式\r\n labelClass = 'label-content';\r\n //接受label自定义样式\r\n if(item.labelClass){\r\n labelClass = item.labelClass.split(',').join(' ');\r\n }\r\n let labelContent = \"<div class='\"+labelClass+\"' style=\\\"margin-left: 0;\\\">\"\r\n + cg.labelContent + \"</div>\",\r\n labelOffset = new BMap.Size(cg.labelPixelX,cg.labelPixelY);\r\n if(markerLabel){\r\n markerLabel.setContent(labelContent);\r\n markerLabel.setOffset(labelOffset);\r\n }else{\r\n markerLabel = new BMap.Label(\r\n labelContent, {\r\n offset : labelOffset\r\n });\r\n markerLabel.setStyle({\r\n border : '0',\r\n backgroundColor : ''\r\n });\r\n gc.setLabel(markerLabel);\r\n }\r\n }else{\r\n if(!!gc.getLabel()){\r\n gc.getLabel().setContent('');\r\n }\r\n }\r\n if(cg.BAnimationType == 0){\r\n gc.setAnimation(BMAP_ANIMATION_BOUNCE);\r\n }else if(cg.BAnimationType == 1){\r\n gc.setAnimation(BMAP_ANIMATION_DROP);\r\n }else{\r\n gc.setAnimation(null);\r\n }\r\n /*moveTo*/\r\n }\r\n //动画效果会延迟执行经纬度的切换\r\n if(cg.isAnimation){\r\n t.moveTo(item.id,[item.longitude,item.latitude],cg.animationDelay,cg.autoRotation,item.url,item.urlleft);\r\n }else{\r\n //修改经纬度\r\n gc.setPosition(new BMap.Point(item.longitude,item.latitude));\r\n }\r\n if(cg.zIndex || cg.zIndex === 0){\r\n gc.setZIndex(cg.zIndex);\r\n }\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {...item,other: item},\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: item.longitude,\r\n y: item.latitude\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.moveAnimation();\r\n // //删除改变了加载方式的点\r\n // dpoints.map((item,index)=>{\r\n // t.removeGraphic(item,'point');\r\n // });\r\n // if(apoints.length > 0){\r\n // //重新加载改变了方式的点\r\n // setTimeout(()=>{\r\n // t.addPoint(apoints);\r\n // },100);\r\n // }\r\n }\r\n //添加线\r\n addLine(mapLines,type){\r\n let t = this;\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n }),\r\n //处理线的参数\r\n lineOption = {\r\n strokeColor : cg.color, // 线颜色\r\n strokeWeight : cg.lineWidth, // 线宽\r\n strokeOpacity : cg.pellucidity, // 线透明度\r\n strokeStyle : cg.lineType// 线样式\r\n };\r\n //创建线对象\r\n let line = new BMap.Polyline(linePath,lineOption);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n line.hide();\r\n }else{\r\n line.show();\r\n }\r\n lsids.push(item.id);\r\n //添加线至地图\r\n t.state.gis.addOverlay(line);\r\n //点击事件\r\n line.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n line.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n line.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n t.GM.setGraphic(item.id,line)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n if(type !== 'defined'){\r\n t.state.lineIds = lsids;\r\n // t.setState({\r\n // lineIds: lsids\r\n // });\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines){\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if(!(item.paths && item.paths.length >= 2)){\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n }else{\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //合并参数\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //处理线的点数组\r\n let linePath = item.paths.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n });\r\n //修改线点位数据\r\n gc.setPath(linePath);\r\n //修改线颜色\r\n gc.setStrokeColor(cg.color);\r\n //修改透明度\r\n gc.setStrokeOpacity(cg.pellucidity);\r\n //修改线宽度\r\n gc.setStrokeWeight(cg.lineWidth);\r\n //修改线的类型\r\n gc.setStrokeStyle(cg.lineType);\r\n //判断线显示和隐藏\r\n if(cg.isHidden){\r\n gc.hide();\r\n }else{\r\n gc.show();\r\n }\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n paths: item.paths,\r\n other: item\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: item.paths\r\n }\r\n });\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons){\r\n let t = this;\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //面的参数\r\n let polygonOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n polygonPath = item.rings.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n });\r\n //创建面对象\r\n let polygon = new BMap.Polygon(polygonPath,polygonOption);\r\n //添加面至地图\r\n t.state.gis.addOverlay(polygon);\r\n //点击事件\r\n polygon.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n polygon.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n polygon.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n //缓存面id\r\n pgsids.push(item.id);\r\n //缓存面图元对象和对于传入数据\r\n t.GM.setGraphic(item.id,polygon)\r\n .setGraphicParam(item.id,{\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n },\r\n });\r\n });\r\n t.state.polygonIds = pgsids;\r\n // t.setState({\r\n // polygonIds: pgsids\r\n // });\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons){\r\n let t = this;\r\n mapPolygons.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if(!(item.rings && item.rings.length >= 3)){\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //初始化参数\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要再加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let polygonPath = item.rings.map((item,index)=>{\r\n return new BMap.Point(item[0],item[1]);\r\n });\r\n //更新经纬度\r\n gc.setPath(polygonPath);\r\n //更新边框线颜色\r\n gc.setStrokeColor(cg.lineColor);\r\n //更新填充色\r\n gc.setFillColor(cg.color);\r\n //更新变线透明度\r\n gc.setStrokeOpacity(cg.lineOpacity);\r\n //更新填充色透明度\r\n gc.setFillOpacity(cg.pellucidity);\r\n //更新边线宽度\r\n gc.setStrokeWeight(cg.lineWidth);\r\n //更新边线类型\r\n gc.setStrokeStyle(cg.lineType);\r\n t.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: {\r\n ...item,\r\n rings: item.rings,\r\n other: item\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: item.rings\r\n }\r\n }\r\n );\r\n }else{\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles){\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n mapCircles.map((item,index)=>{\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n //初始化配置数据\r\n let circleOption = {\r\n strokeColor: cg.lineColor,\r\n strokeOpacity: cg.lineOpacity,\r\n strokeWeight: cg.lineWidth,\r\n strokeStyle: cg.lineType,\r\n fillColor: cg.color,\r\n fillOpacity: cg.pellucidity\r\n },\r\n centerPoint = new BMap.Point(item.longitude,item.latitude);\r\n //创建圆图元实例\r\n let circle = new BMap.Circle(centerPoint,item.radius,circleOption);\r\n //添加圆至地图\r\n t.state.gis.addOverlay(circle);\r\n //点击事件\r\n circle.addEventListener('click',(e)=>{\r\n t.clickGraphic(item.id,e);\r\n });\r\n //鼠标移入事件\r\n circle.addEventListener('mouseover',(e)=>{\r\n t.mouseOverGraphic(item.id,e);\r\n });\r\n //鼠标移出事件\r\n circle.addEventListener('mouseout',(e)=>{\r\n t.mouseOutGraphic(item.id,e);\r\n });\r\n ccsids.push(item.id);\r\n //缓存数据\r\n t.GM.setGraphic(item.id,circle)\r\n .setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n });\r\n });\r\n t.state.circleIds = ccsids;\r\n // t.setState({\r\n // circleIds: ccsids\r\n // });\r\n }\r\n //更新圆\r\n updateCircle(mapCircles){\r\n let t = this;\r\n mapCircles.map((item,index)=>{\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if(!item.longitude || !item.latitude){\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if(item.config){\r\n cg = {...cg,...item.config};\r\n }\r\n let centerPoint = new BMap.Point(item.longitude,item.latitude);\r\n //修改中心点\r\n gc.setCenter(centerPoint);\r\n //修改半径\r\n gc.setRadius(item.radius);\r\n //修改边线颜色\r\n gc.setStrokeColor(cg.lineColor);\r\n //修改填充颜色\r\n gc.setFillColor(cg.color);\r\n //修改边线透明度\r\n gc.setStrokeOpacity(cg.lineOpacity);\r\n //修改填充透明度\r\n gc.setFillOpacity(cg.pellucidity);\r\n //修改边线宽度\r\n gc.setStrokeWeight(cg.lineWidth);\r\n //修改边线样式\r\n gc.setStrokeStyle(cg.lineType);\r\n //缓存图元的数据,便于后期操作\r\n t.GM.setGraphicParam(item.id,{\r\n attributes: {...item,other: item},\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: item.longitude,\r\n y: item.latitude,\r\n radius: item.radius\r\n }\r\n });\r\n }else{\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //画出对应边界线 name区域名\r\n addBaiduBoundary(bdNames){\r\n let t = this;\r\n bdNames.forEach(name=>{\r\n t._boundary.get(name,(ary)=>{\r\n // fix 飞地有多个区域的问题\r\n let arr = [];\r\n ary.boundaries.forEach((item) => {\r\n let id = 'boundary' + new Date().getTime() + Math.random();\r\n let paths = item.split(';').map(function (item, index) {\r\n return item.split(',');\r\n });\r\n arr.push({ id: id, rings: paths , name: name})\r\n t.state.boundaryInfo.push({ id: id, name: name });\r\n })\r\n t.addPolygon(arr);\r\n });\r\n })\r\n }\r\n //删除对应应边界线 name区域名\r\n removeBaiduBoundary(removedBDNames){\r\n let t = this;\r\n let removedBDIds = t.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)>-1).map(item=>item.id);\r\n t.setState({boundaryInfo:t.state.boundaryInfo.filter(item=>removedBDNames.indexOf(item.name)==-1)});\r\n removedBDIds.forEach(id=>{\r\n t.removeGraphic(id,'polygon');\r\n });\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}){\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7\r\n };\r\n if(d.config){\r\n cg = {...cg,...d.config};\r\n }\r\n if(!t.heatmap){\r\n t.heatmap = new BMapLib.HeatmapOverlay({\r\n visible: cg.visible\r\n });\r\n t.state.gis.addOverlay(t.heatmap);\r\n }\r\n let option = {\r\n radius: cg.radius,\r\n //百度是1-100,高德是0-1\r\n opacity: eval(cg.opacity) * 100,\r\n visible: cg.visible\r\n }\r\n if(cg.gradient){\r\n option.gradient = cg.gradient;\r\n }\r\n t.heatmap.setDataSet({\r\n max: cg.max,\r\n data: d.data || []\r\n });\r\n t.heatmap.setOptions(option);\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 BMap.InfoWindow(sContent);\r\n \r\n infowindow.setWidth(cg.width);\r\n infowindow.setHeight(cg.height);\r\n\r\n if(d.lat && d.lng && d.content){\r\n render(d.content, sContent);\r\n t.state.gis.openInfoWindow(infowindow, new BMap.Point(d.lng,d.lat));\r\n\r\n } else {\r\n infowindow && t.state.gis.closeInfoWindow();\r\n }\r\n }\r\n //添加海量点 \r\n addPointCollection(data = []) {\r\n let t = this;\r\n data.map((item,index)=>{\r\n let d = item || {};\r\n let points = [];\r\n (d.points || []).map(function(d,i){\r\n let p = new BMap.Point(d.lng,d.lat);\r\n p.attributes = d;\r\n points.push(p);\r\n })\r\n let options = {\r\n size: gisMapConstant[d.size] || gisMapConstant['normal'],\r\n shape: gisMapConstant[d.shape] || gisMapConstant['circle'],\r\n color: d.color || '#d340c3'\r\n }\r\n // 初始化PointCollection\r\n let VotexpointCollection = new BMap.PointCollection(points, options); \r\n t.state.gis.addOverlay(VotexpointCollection); // 添加Overlay\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.addEventListener('click', function (e) {\r\n if('clickPointCollection' in t.props && typeof(t.props.clickPointCollection) == 'function'){\r\n let obj = {\r\n id: d.id,\r\n ...e.point,\r\n mapLayer: VotexpointCollection\r\n }\r\n t.props.clickPointCollection(obj);\r\n }\r\n });\r\n });\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []) {\r\n let t = this;\r\n data.map((ds,i)=>{\r\n t.morepoints.map(function (item,index) {\r\n if(item.id == ds.id){\r\n let points = [];\r\n ds.points.map(function(d,i){\r\n let p = new BMap.Point(d.lng,d.lat);\r\n p.attributes = d;\r\n points.push(p);\r\n })\r\n item.value.setPoints(points);\r\n item.value.setStyles({\r\n size: gisMapConstant[ds.size] || gisMapConstant['normal'],\r\n shape: gisMapConstant[ds.shape] || gisMapConstant['circle'],\r\n color: ds.color || '#d340c3'\r\n })\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 //点击图元事件\r\n clickGraphic (id,e) {\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.clickGraphic) ===\"function\"){\r\n let param = t.getGraphic(id);\r\n let obj = {\r\n param,\r\n type: param.geometry.type,//图元类型\r\n attributes: {...param.attributes.other,...{config:param.attributes.config}},//添加时图元信息\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n e: e\r\n }\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n //图元鼠标悬浮事件\r\n mouseOverGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\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.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n //图元鼠标移开事件\r\n mouseOutGraphic(id,e){\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if(t.state.editId == id)return false;\r\n if(typeof(t.props.mouseOutGraphic) ===\"function\"){\r\n let obj = {\r\n e,id,\r\n param: t.getGraphic(id),\r\n top: e.clientY,//当前点所在的位置(屏幕)\r\n left: e.clientX,\r\n }\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n /*地图事件处理*/\r\n //地图点击事件\r\n clickMap(){\r\n let t =this;\r\n if(typeof(t.props.clickMap) ===\"function\"){\r\n t.state.gis.addEventListener('click',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = e.point;\r\n obj.pixel = e.pixel;\r\n t.props.clickMap(obj);\r\n });\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(){\r\n let t = this;\r\n if(typeof(t.props.dragMapStart) === 'function'){\r\n t.state.gis.addEventListener('dragstart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n })\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(){\r\n let t = this;\r\n if(typeof(t.props.dragMapEnd) === 'function'){\r\n t.state.gis.addEventListener('dragend',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n })\r\n }\r\n }\r\n //地图移动之前事件\r\n moveStart(){\r\n let t = this;\r\n if(typeof(t.props.moveStart) === 'function'){\r\n t.state.gis.addEventListener('movestart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n })\r\n }\r\n }\r\n //地图移动结束后事件\r\n moveEnd(){\r\n let t = this;\r\n if(typeof(t.props.moveEnd) === 'function'){\r\n t.state.gis.addEventListener('moveend',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveEnd(obj);\r\n })\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(){\r\n let t = this;\r\n if(typeof(t.props.zoomStart) === 'function'){\r\n t.state.gis.addEventListener('zoomstart',(e)=>{\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n });\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(){\r\n let t = this;\r\n if(typeof(t.props.zoomEnd) === 'function'){\r\n t.state.gis.addEventListener('zoomend',(e)=>{\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 /*set方法*/\r\n //设置地图中心位置 lng/经度 lat/纬度\r\n setCenter (gt) {\r\n let t =this;\r\n let mgt = [116.404,39.915];\r\n if(gt){\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.state.gis.getCenter();\r\n if(c.lng == gt[0] && c.lat == gt[1]){\r\n return false;\r\n }\r\n mgt = gt;\r\n }\r\n t.state.gis.setCenter(new BMap.Point(mgt[0],mgt[1]));\r\n t.setState({center: mgt});\r\n }\r\n //设置地图比例尺\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.getZoomLevel();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.setZoom(zoom);\r\n }\r\n //将制定图元展示在视野内 (强制改变地图中心位置)\r\n /*\r\n 参数arg格式如下1,2\r\n 1.string 格式如:'1,a,2,3,4'\r\n 2.数组 ['1','2']\r\n */\r\n setVisiblePoints (mapVisiblePoints) {\r\n let t = this;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];\r\n let obj = null;\r\n\r\n switch(mapVisiblePoints.fitView){\r\n case 'point':\r\n arg = this.state.pointIds;\r\n break;\r\n case 'line':\r\n arg = this.state.lineIds;\r\n break;\r\n case 'polygon':\r\n arg = this.state.polygonIds;\r\n break;\r\n case 'circle':\r\n arg = this.state.circleIds;\r\n break;\r\n case 'all':\r\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\r\n break;\r\n default:\r\n arg = mapVisiblePoints.fitView;\r\n break;\r\n }\r\n\r\n /**\r\n * 用法\r\n * map.setVisiblePoints('lng,lat;lng,lat')\r\n */\r\n if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n obj = t.getFitView(ary);\r\n \r\n } else if(arg instanceof Array){\r\n /**\r\n * 用法\r\n * map.setVisiblePoints([[lng,lat],[lng,lat]])\r\n */\r\n if(arg[0] instanceof Array){\r\n let a = [];\r\n for(let i = 0 ; i < arg.length ; i++){\r\n a.push(new BMap.Point(arg[i][0],arg[i][1]));\r\n }\r\n obj = t.state.gis.getViewport(a);\r\n /**\r\n * 用法\r\n * map.setVisiblePoints(['lng,lat','lng,lat'])\r\n */\r\n } else {\r\n obj = t.getFitView(arg);\r\n }\r\n }\r\n if(!obj){return false} \r\n if(!type || type == 'all'){\r\n t.state.gis.centerAndZoom(obj.center, obj.zoom);\r\n }else if(type == 'zoom'){\r\n t.setZoomLevel(obj.zoom);\r\n }else if(type == 'center'){\r\n t.setCenter([obj.center.lng,obj.center.lat]);\r\n }\r\n }\r\n /*get方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter(){\r\n let t =this;\r\n return t.state.gis.getCenter();\r\n }\r\n //获取当前比例尺\r\n getZoomLevel (){\r\n let t =this;\r\n return t.state.gis.getZoom();\r\n }\r\n //获取对应经纬的最优 zoomLevel和center\r\n getFitView(ids){\r\n let t = this;\r\n if(ids.length > 0){\r\n let allLayers = [];\r\n for(let i = 0 ; i < ids.length ; i++){\r\n switch((t.GM.getGraphicParam(ids[i]) || {}).geometryType){\r\n case 'point':\r\n allLayers.push(t.GM.getGraphic(ids[i]).getPosition());\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n allLayers = [...allLayers,...t.GM.getGraphic(ids[i]).getPath()];\r\n break;\r\n case 'circle':\r\n allLayers.push(t.GM.getGraphic(ids[i]).getCenter());\r\n break;\r\n }\r\n }\r\n if(allLayers.length > 0){\r\n return t.state.gis.getViewport(allLayers);\r\n }\r\n }\r\n }\r\n //获取图元数据\r\n getGraphic (id) {\r\n let t = this;\r\n if(!id){\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if(!gg){\r\n return false;\r\n }\r\n let p = {},pts = [],lng = 0,lat = 0;\r\n switch(gp.geometryType){\r\n case 'point':\r\n lng = gg.getPosition().lng;\r\n lat = gg.getPosition().lat;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n }\r\n }\r\n break;\r\n case 'polyline':\r\n pts = gg.getPath().map((item,index)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'polygon':\r\n // fix: 编辑图元时面积计算不正确,需要过滤一下重复的经纬度\r\n pts = uniqBy(gg.getPath(), function(res){\r\n return res.lng && res.lat\r\n }).map((item)=>{\r\n return [item.lng,item.lat]\r\n });\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts\r\n }\r\n }\r\n }\r\n break;\r\n case 'circle':\r\n lng = gg.getCenter().lng;\r\n lat = gg.getCenter().lat;\r\n let radius = gg.getRadius();\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n return p;\r\n }\r\n /*功能方法*/\r\n //单个删除图元\r\n removeGraphic(id,type){\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n if(!!graphic){\r\n //清除聚合点 避免异常\r\n t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n t.state.gis.removeOverlay(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n }else{\r\n return false;\r\n }\r\n for(let i = 0 ; i < t.movePoints.length ; i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch(type){\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if(t.state.drawIds.point.indexOf(id) > -1){\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polyline.indexOf(id) > -1){\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.polygon.indexOf(id) > -1){\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.circle.indexOf(id) > -1){\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id),1);\r\n }\r\n if(t.state.drawIds.rectangle.indexOf(id) > -1){\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id),1);\r\n }\r\n break;\r\n default:\r\n if(t.state.pointIds.indexOf(id) > -1){\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1);\r\n }\r\n if(t.state.lineIds.indexOf(id) > -1){\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id),1);\r\n }\r\n if(t.state.polygonIds.indexOf(id) > -1){\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id),1);\r\n }\r\n if(t.state.circleIds.indexOf(id) > -1){\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id),1);\r\n }\r\n break;\r\n }\r\n if(id == t.state.editId){\r\n t.state.editId = '';\r\n }\r\n if(ids.indexOf(id) != -1){\r\n ids.splice(ids.indexOf(id),1);\r\n }\r\n }\r\n /*根据图元id,使图元变成可编辑状态*/\r\n doEdit (id){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(id);\r\n let gtp = t.GM.getGraphicParam(id);\r\n if(!graphic)return false;\r\n //关闭先前编辑的图元\r\n if(!!t.state.editId){\r\n t.endEdit();\r\n }\r\n if(!t.editGraphicChange){\r\n //编辑变动后\r\n t.editGraphicChange = (e)=>{\r\n let id = t.state.editId,\r\n param = t.getGraphic(id),\r\n obj = {\r\n param,e,id,\r\n geometry: param.geometry\r\n };\r\n if(param.geometry.type == 'polygon'){\r\n // obj.area = BMapLib.GeoUtils.getPolygonArea(param.mapLayer);\r\n // fix: 只能是数组计算之前的计算因为重复的经纬度导致面积为NAN\r\n obj.area = BMapLib.GeoUtils.getPolygonArea(param.geometry.rings.map((item)=>{\r\n return new BMap.Point(item[0], item[1])\r\n }));\r\n }\r\n if(param.geometry.type == 'polyline'){\r\n obj.distance = t.calculateDistance(param.geometry.paths);\r\n }\r\n if(param.geometry.type == 'circle'){\r\n obj.area = Math.pow(param.geometry.radius,2)*Math.PI;\r\n if(t.editTimeout){\r\n clearTimeout(t.editTimeout);\r\n }\r\n t.editTimeout = setTimeout(()=>{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n },300);\r\n }else{\r\n t.setState({editGraphic:obj},()=>{\r\n t.props.editGraphicChange(obj);\r\n });\r\n }\r\n }\r\n }\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.enableDragging();\r\n graphic.addEventListener(\"dragend\",t.editGraphicChange);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n graphic.enableEditing();\r\n graphic.addEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n case 'circle':\r\n graphic.enableEditing();\r\n graphic.addEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n }\r\n t.setState({editId:id});\r\n }\r\n //关闭编辑\r\n endEdit (){\r\n let t = this;\r\n //获取编辑点的图元和参数\r\n let graphic = t.GM.getGraphic(t.state.editId);\r\n let gtp = t.GM.getGraphicParam(t.state.editId);\r\n if(!graphic)return false;\r\n switch(gtp.geometryType){\r\n case 'point':\r\n graphic.disableDragging();\r\n graphic.removeEventListener(\"dragend\",t.editGraphicChange);\r\n break;\r\n case 'polyline':\r\n case 'polygon':\r\n case 'rectangle':\r\n graphic.disableEditing();\r\n graphic.removeEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n case 'circle':\r\n graphic.disableEditing();\r\n graphic.removeEventListener(\"lineupdate\",t.editGraphicChange);\r\n break;\r\n }\r\n let editGraphic = t.state.editGraphic;\r\n t.setState({\r\n editId: '',\r\n editGraphic: ''\r\n },()=>{\r\n if(editGraphic){\r\n t.props.editGraphicChange(editGraphic);\r\n }\r\n })\r\n }\r\n //绘制图元\r\n draw(obj){\r\n let t = this,drawParam = {};\r\n //先关闭(防止连点)\r\n t._drawmanager.close();\r\n //初始化参数\r\n drawParam.geometryType = obj.geometryType || 'point';\r\n drawParam.parameter = obj.parameter?{...obj.parameter}:{};\r\n drawParam.data = obj.data?{...obj.data}:{};\r\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\r\n //判断id是否存在\r\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\r\n if(len > -1){\r\n //如果id存在 删除存在的图元,清除drawId中的id数据\r\n t.removeGraphic(drawParam.data.id);\r\n t.state.drawIds[drawParam.geometryType].splice(len,1);\r\n }\r\n let param = {};\r\n let paramgcr = {};\r\n if(drawParam.geometryType == 'polygon' || drawParam.geometryType == 'circle' || drawParam.geometryType == 'rectangle'){\r\n paramgcr.fillColor = drawParam.parameter.color;\r\n paramgcr.strokeColor = drawParam.parameter.lineColor;\r\n paramgcr.strokeOpacity = drawParam.parameter.lineOpacity;\r\n paramgcr.strokeWeight = drawParam.parameter.lineWidth;\r\n paramgcr.fillOpacity = drawParam.parameter.pellucidity;\r\n paramgcr.strokeStyle = drawParam.parameter.lineType;\r\n paramgcr.extData = {\r\n id: drawParam.data.id,\r\n attributes: {\r\n id: drawParam.data.id,\r\n config: {\r\n color: drawParam.parameter.color,\r\n lineColor: drawParam.parameter.lineColor,\r\n lineOpacity: drawParam.parameter.lineOpacity,\r\n pellucidity: drawParam.parameter.pellucidity,\r\n lineWidth: drawParam.parameter.lineWidth\r\n }\r\n },\r\n type: drawParam.geometryType\r\n };\r\n }\r\n switch(drawParam.geometryType){\r\n case 'point':\r\n param.offset = new BMap.Size((drawParam.parameter.markerContentX || -15) + (drawParam.parameter.width || 30)/2,\r\n (drawParam.parameter.markerContentY || -30) + (drawParam.parameter.height || 30)/2);\r\n let icon = new BMap.Icon(\r\n drawParam.parameter.url || `${configUrl.mapServerURL}/images/defaultMarker.png`,\r\n new BMap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30)\r\n );\r\n icon.setImageSize(new BMap.Size(drawParam.parameter.width || 30,drawParam.parameter.height || 30));\r\n param.icon = icon;\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 || `${configUrl.mapServerURL}/images/defaultMarker.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._drawmanager.setDrawingMode('marker');\r\n t._drawmanager.open({markerOptions: 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._drawmanager.open({polylineOptions: param,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('polyline');\r\n break;\r\n case 'polygon':\r\n t._drawmanager.open({polygonOptions: paramgcr,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('polygon');\r\n break;\r\n case 'circle':\r\n t._drawmanager.open({circleOptions: paramgcr,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('circle');\r\n break;\r\n case 'rectangle':\r\n t._drawmanager.open({rectangleOptions: paramgcr,enableCalculate: true});\r\n t._drawmanager.setDrawingMode('rectangle');\r\n break;\r\n }\r\n }\r\n //关闭绘制图元\r\n closeDraw(){\r\n let t = this;\r\n t._drawmanager.close();\r\n }\r\n //清空地图图元\r\n clearAll(){\r\n let t = this;\r\n //清空聚合\r\n if (t._cluster) {\r\n t._cluster.clearMarkers();\r\n }\r\n //关闭测距\r\n if(t._rangingTool){\r\n t._rangingTool.close();\r\n }\r\n //清空地图\r\n t.state.gis.clearOverlays();\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //关闭编辑\r\n t.endEdit();\r\n //清空历史数据记录\r\n t.setState({\r\n pointIds: [],\r\n lineIds: [],\r\n polygonIds: [],\r\n circleIds: [],\r\n boundaryInfo: [],\r\n drawIds: {\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: []\r\n }\r\n });\r\n }\r\n /*工具方法*/\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster (arg) {\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n t._cluster.addMarkers(ary);\r\n }\r\n //删除点聚合效果\r\n removeCluster(arg){\r\n let t = this;\r\n let ary = t.clusterToolFunction(arg);\r\n if(ary.length > 0){\r\n t._cluster.removeMarkers(ary);\r\n }\r\n }\r\n //清空聚合效果\r\n clearClusters(){\r\n let t = this;\r\n t._cluster.clearMarkers();\r\n }\r\n //聚合功能公共方法(获取图元集合)\r\n clusterToolFunction(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\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 //过滤moveTo的点位\r\n //缓存所有聚合的点位\r\n let allps = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n allps.push(t.GM.getGraphic(ary[i]));\r\n }\r\n return allps;\r\n }\r\n //测距\r\n vtxRangingTool (callback) {\r\n let t = this;\r\n let cb = (e)=>{\r\n //关闭测距\r\n t._rangingTool.close();\r\n //注销事件(避免重复)\r\n t._rangingTool.removeEventListener('drawend',cb);\r\n if(typeof(callback) ===\"function\"){\r\n let obj = {\r\n distance : e.distance\r\n };\r\n let objLngLats = new Array();\r\n for (let i = 0; i < e.points.length; i++) {\r\n objLngLats.push([ e.points[i].lng, e.points[i].lat ]);\r\n }\r\n obj.lnglats = objLngLats;\r\n callback(obj);\r\n }\r\n }\r\n t._rangingTool.addEventListener('drawend',cb);\r\n t._rangingTool.open(this.state.gis);\r\n }\r\n //开启路况\r\n openTrafficInfo(){\r\n let t =this;\r\n t._trafficCtrl.showTraffic();\r\n }\r\n //关闭路况\r\n hideTrafficInfo(){\r\n let t =this;\r\n t._trafficCtrl.hideTraffic();\r\n }\r\n //展示比例尺\r\n showControl (props){\r\n let t = this,location = t.AnchorConstant['tr'],type = '',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.type){\r\n type = t.NavigationConstant[config.showControl.type];\r\n }\r\n if(config.showControl.offset && config.showControl.offset.length>0){\r\n offset = new BMap.Size(config.showControl.offset[0],config.showControl.offset[1])\r\n scaleOffset = new BMap.Size(config.showControl.offset[0] + 70,config.showControl.offset[1])\r\n }\r\n // 左上角,添加比例尺\r\n let control = new BMap.ScaleControl({anchor: location, offset: scaleOffset});\r\n t.state.gis.addControl(control);\r\n t.scaleControl = control;\r\n if(type !== 'null'){\r\n //右上角,仅包含平移和缩放按钮\r\n let navigation = new BMap.NavigationControl({anchor: location, type: type, offset}); \r\n t.state.gis.addControl(navigation);\r\n t.navigationControl = navigation;\r\n }\r\n }\r\n // 移除比例尺\r\n removeControl() {\r\n const t = this;\r\n if(t.scaleControl) {\r\n t.state.gis.removeControl(t.scaleControl);\r\n t.scaleControl = null;\r\n }\r\n if(t.navigationControl) {\r\n t.state.gis.removeControl(t.navigationControl);\r\n t.navigationControl = null;\r\n }\r\n }\r\n //展示地图切换控件\r\n showMapTypeControl (props){\r\n let t = this,location = t.AnchorConstant['br'],offset=null;\r\n let config = props || t.props;\r\n if(t.mapTypeControl) {\r\n t.state.gis.removeControl(t.mapTypeControl);\r\n }\r\n if(config.satelliteSwitch.location){\r\n location = t.AnchorConstant[config.satelliteSwitch.location];\r\n }\r\n if(config.satelliteSwitch.offset && config.satelliteSwitch.offset.length>0){\r\n offset = new BMap.Size(config.satelliteSwitch.offset[0],config.satelliteSwitch.offset[1])\r\n }\r\n let mapTypes = [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP]\r\n // 地图切换控件\r\n let control = new BMap.MapTypeControl({mapTypes, anchor: location, type: BMAP_MAPTYPE_CONTROL_HORIZONTAL, offset: offset});\r\n t.state.gis.addControl(control);\r\n t.mapTypeControl = control;\r\n }\r\n /*设置显示区域*/\r\n setAreaRestriction(sw_ne){\r\n let t = this;\r\n //修改了区域限制的js文件.\r\n let bounds = new BMap.Bounds(new BMap.Point(sw_ne[0][0],sw_ne[0][1]),new BMap.Point(sw_ne[1][0],sw_ne[1][1]));\r\n t._bmar.setBounds(this.state.gis,bounds);\r\n }\r\n /*取消显示区域*/\r\n clearAreaRestriction(){\r\n let t = this;\r\n t._bmar.clearBounds();\r\n }\r\n //渲染\r\n render(){\r\n let t = this;\r\n let _map = this.props;\r\n return(\r\n <div id={_map.mapId} style={{width:'100%',height:'100%'}}></div>\r\n );\r\n }\r\n /*公共方法*/\r\n moveAnimation(){\r\n let t = this;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(()=>{\r\n for(let i = 0;i < t.movePoints.length; i++){\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x,y)=>{\r\n return y.waitTime -x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0,10),deleteIndex=[];\r\n for(let i = 0;i < nowMovePoints.length; i++){\r\n let {id,rx,ry,waitTime,deleteTime} = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if(!gc){\r\n clearInterval(t.moveToTimer);\r\n }else{\r\n let gg = gc.getPosition();\r\n let tx = gg.lng + rx,ty = gg.lat + ry;\r\n gc.setPosition(new BMap.Point(tx,ty));\r\n t.movePoints[i].waitTime = 0;\r\n if(deleteTime <= 0){\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a,b)=>{return b-a});\r\n for(let i = 0 ; i < deleteIndex.length ; i++){\r\n t.movePoints.splice(deleteIndex[i],1);\r\n }\r\n if(nowMovePoints.length == 0){\r\n clearInterval(t.moveToTimer);\r\n }\r\n },10);\r\n }\r\n moveTo(id,lnglat,delay,autoRotation,urlright,urlleft){\r\n delay = delay || 3;\r\n let t = this,timer = 10,\r\n gc = t.GM.getGraphic(id);\r\n delay = eval(delay)*1000;\r\n let count = delay/timer;\r\n let s = gc.getPosition(),e = new BMap.Point(lnglat[0],lnglat[1]);\r\n if(s.equals(e)){\r\n return false;\r\n }else{\r\n let url= null;\r\n //计算角度,旋转\r\n if(autoRotation){\r\n let ddeg = t.rotateDeg(gc.getPosition(),lnglat);\r\n if(urlleft && (ddeg < -90 && ddeg > -270)){\r\n ddeg += 180;\r\n url = urlleft;\r\n }else{\r\n url = urlright;\r\n }\r\n let gcicon = gc.getIcon();\r\n gcicon.setImageUrl(url);\r\n gc.setIcon(gcicon);\r\n gc.setRotation(ddeg);\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.lng - s.lng)/count, ry = (e.lat - s.lat)/count;\r\n let isHave = false;\r\n for(let i = 0 ; i < t.movePoints.length ;i++){\r\n if(t.movePoints[i].id == id){\r\n t.movePoints.splice(i,1,{\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if(!isHave){\r\n t.movePoints.push({\r\n id,rx,ry,\r\n waitTime: 0,\r\n deleteTime: delay\r\n });\r\n }\r\n }\r\n \r\n }\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 BMap.Point(sp[0],sp[1]);\r\n }\r\n let s = t.state.gis.pointToPixel(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.pointToPixel(new BMap.Point(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 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 showGraphicById (id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).show();\r\n }\r\n }\r\n //隐藏图元\r\n hideGraphicById(id){\r\n let t = this;\r\n if(t.GM.getGraphic(id)){\r\n t.GM.getGraphic(id).hide();\r\n }\r\n }\r\n //获取地图当前的位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n let nowBounds = t.state.gis.getBounds();\r\n let obj = {};\r\n obj.southWest = {\r\n lng : nowBounds.getSouthWest().lng,\r\n lat : nowBounds.getSouthWest().lat\r\n };\r\n obj.northEast = {\r\n lng : nowBounds.getNorthEast().lng,\r\n lat : nowBounds.getNorthEast().lat\r\n };\r\n obj.nowCenter = t.state.gis.getCenter();\r\n obj.zoom = t.state.gis.getZoom();\r\n obj.mapSize = t.state.gis.getSize();\r\n obj.radius = t.calculatePointsDistance([obj.nowCenter.lng,obj.nowCenter.lat],\r\n [obj.northEast.lng,obj.northEast.lat]);\r\n return obj;\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp,ep){\r\n return Math.round(this.state.gis.getDistance(new BMap.Point(fp[0], fp[1]), \r\n new BMap.Point(ep[0], ep[1]))*100)/100;\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps){\r\n let t = this,totalDistance = 0;\r\n if (ps.length < 0) {return false;}\r\n for(let i= 0 ; i< ps.length ; i++){\r\n if(i < ps.length-1){\r\n totalDistance += t.calculatePointsDistance(ps[i],ps[i+1]);\r\n }\r\n }\r\n return Math.round(totalDistance*100)/100;\r\n }\r\n //计算图元面积(面,圆)\r\n calculateArea(id){\r\n var t = this;\r\n return t.state.gis.calculateArea(t.getGraphic(id));\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a,b){\r\n return Immutable.is(Immutable.fromJS(a),Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData,newData,type){\r\n let onlyOldData = Set(oldData).subtract(Set(newData)).toJS();\r\n let onlyNewData = Set(newData).subtract(Set(oldData)).toJS();\r\n let onlyOldIDs = onlyOldData.map(item=>item[type]);\r\n let onlyNewIDs = onlyNewData.map(item=>item[type]);\r\n let updateDataIDs = Set(onlyOldIDs).intersect(Set(onlyNewIDs)).toJS();\r\n let updatedData = onlyNewData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let replacedData = onlyOldData.filter(item=> updateDataIDs.indexOf(item[type])>-1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID=>updateDataIDs.indexOf(oldID)==-1);\r\n let addedData = onlyNewData.filter(item=>updateDataIDs.indexOf(item[type])==-1)\r\n \r\n return {deletedDataIDs,addedData,updatedData,replacedData};\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary,ids){\r\n let ads = [], otherupds = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n otherupds.push(ary[i]);\r\n }else{\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return {ads,otherupds};\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary,ids){\r\n let upds = [], otherads = [];\r\n for(let i = 0 ; i < ary.length ; i++){\r\n if(ids.indexOf(ary[i].id) > -1){\r\n upds.push(ary[i]);\r\n }else{\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return {upds,otherads};\r\n }\r\n //百度搜索功能\r\n searchPoints(searchValue,pageSize=10,pageIndex=0){\r\n return new Promise((resolve)=>{\r\n let psc = new BMap.LocalSearch(this.state.gis,{\r\n onSearchComplete:(result)=>{\r\n if(!result){\r\n resolve([]);\r\n }\r\n else if(result.getPageIndex()!=pageIndex){\r\n psc.gotoPage(pageIndex);\r\n }\r\n else{\r\n let res_arr = [];\r\n for(let i=0,len=result.getCurrentNumPois();i<len;i++){\r\n res_arr.push(result.getPoi(i));\r\n }\r\n resolve(res_arr.map((r)=>({\r\n id: r.uid,\r\n longitude: r.point.lng,\r\n latitude: r.point.lat,\r\n canShowLabel: true,\r\n config: {\r\n labelContent: r.title,\r\n labelPixelY: 27\r\n },\r\n other: 'search'\r\n })));\r\n }\r\n // console.log(result,result.getNumPages(),result.getPageIndex()); \r\n },\r\n pageCapacity:pageSize\r\n });\r\n psc.search(searchValue); \r\n })\r\n }\r\n //初始化\r\n componentDidMount(){\r\n let t = this;\r\n t.loadMapComplete.then(()=>{\r\n t.init();\r\n }) \r\n }\r\n //重新渲染结束\r\n componentDidUpdate(prevProps, prevState) {}\r\n //已加载组件,收到新的参数时调用\r\n componentWillReceiveProps(nextProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let {pointIds,lineIds,polygonIds,circleIds,drawIds} = t.state;\r\n let {point,polyline,polygon,circle,rectangle} = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [],mapLines = [],mapPolygons = [],mapCircles = [],customizedBoundary =[],\r\n isOpenTrafficInfo,boundaryName,heatMapData,imageOverlays,\r\n mapVisiblePoints,setVisiblePoints,\r\n setCenter,mapCenter,\r\n setZoomLevel,mapZoomLevel,\r\n setCluster,mapCluster,\r\n isRangingTool,mapRangingTool,\r\n isRemove,mapRemove,\r\n mapDraw,isDraw,isCloseDraw,\r\n editGraphicId,isDoEdit,isEndEdit,\r\n mapPointCollection,isclearAllPointCollection,\r\n isSetAreaRestriction,areaRestriction,isClearAreaRestriction,\r\n isClearAll,mapStyle,coverageType,\r\n infoWindowData\r\n } = nextProps;\r\n let props = t.props;\r\n\r\n // 设置地图地图样式\r\n if(mapStyle && !t.deepEqual(mapStyle,props.mapStyle)){\r\n if(typeof(mapStyle) === 'string'){\r\n t.state.gis.setMapStyle({style:mapStyle});\r\n }\r\n if(mapStyle instanceof Array){\r\n t.state.gis.setMapStyle({styleJson:mapStyle});\r\n }\r\n }\r\n // 切换地图矢量图和卫星图背景\r\n if(coverageType && !t.deepEqual(coverageType,props.coverageType)){\r\n t.setMapType(coverageType);\r\n }\r\n // 等待地图加载\r\n if(!t.state.mapCreated)return;\r\n \r\n /*添加海量点*/\r\n if(mapPointCollection instanceof Array && props.mapPointCollection instanceof Array && !t.deepEqual(mapPointCollection,props.mapPointCollection)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.mapPointCollection,mapPointCollection,'id');\r\n t.clearPointCollection(deletedDataIDs);\r\n t.addPointCollection(addedData);\r\n t.updatePointCollection(updatedData);\r\n }\r\n if((typeof(isclearAllPointCollection) == 'boolean' && isclearAllPointCollection) || (isclearAllPointCollection && isclearAllPointCollection !== t.props.isclearAllPointCollection)){\r\n t.clearAllPointCollection();\r\n }\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if(mapPoints instanceof Array && props.mapPoints instanceof Array && !t.deepEqual(mapPoints,props.mapPoints)){\r\n let oldMapPoints = props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if(!!t.state.editId){\r\n oldMapPoints = props.mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPoints = mapPoints.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPoints,newMapPoints,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...pointIds,...point]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...pointIds,...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'point');\r\n }\r\n //增加\r\n t.addPoint([...ads,...otherads]);\r\n //更新\r\n t.updatePoint([...upds,...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapPolygons instanceof Array && props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons,props.mapPolygons)){\r\n let oldMapPolygons = props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if(!!t.state.editId){\r\n oldMapPolygons = props.mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n newMapPolygons = mapPolygons.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapPolygons,newMapPolygons,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...rectangle,...polygon,...polygonIds]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...rectangle,...polygon,...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads,...otherads]);\r\n //更新\r\n t.updatePolygon([...upds,...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapCircles instanceof Array && props.mapCircles instanceof Array && !t.deepEqual(mapCircles,props.mapCircles)){\r\n let oldMapCircles = props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if(!!t.state.editId){\r\n oldMapCircles = props.mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n newMapCircles = mapCircles.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapCircles,newMapCircles,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...circleIds,...circle]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...circleIds,...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads,...otherads]);\r\n //更新\r\n t.updateCircle([...upds,...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if(mapLines instanceof Array && props.mapLines instanceof Array && !t.deepEqual(mapLines,props.mapLines)){\r\n let oldMapLines = props.mapLines;\r\n let newMapLines = mapLines;\r\n if(!!t.state.editId){\r\n oldMapLines = props.mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n newMapLines = mapLines.filter((item)=>{return item.id !== editGraphicId});\r\n }\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(oldMapLines,newMapLines,'id');\r\n let {ads,otherupds} = t.dealAdd(addedData,[...lineIds,...polyline]);\r\n let {upds,otherads} = t.dealUpdate(updatedData,[...lineIds,...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n //增加\r\n t.addLine([...ads,...otherads]);\r\n //更新\r\n t.updateLine([...upds,...otherupds]); \r\n }\r\n //画其他特例线专用\r\n if(customizedBoundary instanceof Array && props.customizedBoundary instanceof Array && !t.deepEqual(customizedBoundary,props.customizedBoundary)){\r\n let {deletedDataIDs,addedData,updatedData} = t.dataMatch(props.customizedBoundary,customizedBoundary,'id');\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for(let id of deletedDataIDs){\r\n t.removeGraphic(id,'line');\r\n }\r\n t.addLine(addedData);\r\n t.updateLine(updatedData); \r\n }\r\n //绘制边界线\r\n if(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,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(isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)){\r\n t.draw(mapDraw);\r\n }\r\n //关闭图元绘制\r\n if((typeof(isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)){\r\n t.closeDraw();\r\n }\r\n //设置中心点\r\n if((typeof(setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if((typeof(setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)){\r\n t.cluster(mapCluster);\r\n }\r\n //设置比例尺\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n //设置最优视野\r\n if((typeof(setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)){\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //测距工具调用\r\n if((typeof(isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)){\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n //开关路况\r\n if(isOpenTrafficInfo){\r\n t.openTrafficInfo();\r\n }else{\r\n t.hideTrafficInfo();\r\n }\r\n //设置区域限制\r\n if((typeof(isSetAreaRestriction) == 'boolean' && isSetAreaRestriction) \r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction) \r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]){\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if((typeof(isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)){\r\n t.clearAreaRestriction();\r\n }\r\n //清空地图\r\n if((typeof(isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)){\r\n t.clearAll();\r\n }\r\n //删除指定图元\r\n if((typeof(isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)){\r\n mapRemove.map((item,index)=>{\r\n t.removeGraphic(item.id,item.type);\r\n });\r\n }\r\n // 比例尺控件位置改变\r\n if(nextProps.showControl && JSON.stringify(nextProps.showControl)!=JSON.stringify(t.props.showControl)){\r\n t.showControl(nextProps);\r\n }\r\n // 比例尺移除\r\n if(!nextProps.showControl) {\r\n t.removeControl();\r\n }\r\n // 地图类型控件位置改变\r\n if(nextProps.satelliteSwitch && JSON.stringify(nextProps.satelliteSwitch)!=JSON.stringify(t.props.satelliteSwitch)){\r\n t.showMapTypeControl(nextProps);\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if(t.state.gis){\r\n t.state.gis.clearOverlays();\r\n }\r\n t.state.gis = null;\r\n if(t.moveToTimer){\r\n clearInterval(t.moveToTimer);\r\n }\r\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\r\n }\r\n}\r\n\r\nexport default BaiduMap;"],"mappings":"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"}