@vtx/map 1.1.26 → 1.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/VtxMap/BMap/Map.js +3 -5
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +136 -15
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.css +11 -0
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +84 -4
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.less +11 -0
- package/lib/VtxSearchMap/VtxSearchMap.css +15 -0
- package/lib/VtxSearchMap/VtxSearchMap.js +84 -4
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.less +15 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","names":["Set","Immutable","OlMap","props","nextLayers","currentLayers","first","t","addLayers","filter","item","map","e","coverage","includes","removeLayers","length","forEach","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","OL_SCREEN","layers","eval","initLayer","isArray","state","gis","addLayer","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","loadMapJs","loadMapComplete","Promise","resolve","reject","window","$","getScript","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","then","attr","rel","href","appendTo","createMap","ol","source","Vector","wrapX","initData","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","setCenter","Array","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","setState","event","status","overall_feature","dragAddMoveFlag","on","getTargetElement","classList","add","remove","evt","forEachFeatureAtPixel","pixel","target","getProperties","clickGraphic","id","elementId","clickMap","getEventPixel","originalEvent","hit","hasFeatureAtPixel","style","cursor","values","mouseOverGraphic","dispatchEvent","mouseOutGraphic","dragMapStart","moveStart","zoom","dragMapEnd","moveEnd","zoomStart","setTimeout","zoomEnd","center","olProps","mapCenter","mapZoomLevel","minZoom","maxZoom","projection","olCoverage","VtxMap","parseFloat","Map","toString","view","View","controls","control","defaults","rotate","attribution","loadLayers","initPropsForUser","url","Tile","TileSuperMapRest","push","vectorSource","format","GeoJSON","extent","join","strategy","loadingstrategy","bbox","el","A","icon","JSON","parse","mapIcon","require","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","getCenter","gt","getZoomLevel","obj","showInfoWindow","hideInfoWindow","refresh","c","lng","lat","getView","animate","duration","z","getZoom","setZoom","calculateExtent","getSize","xmin","ymin","xmax","ymax","gc","getGraphic","gp","getGraphicParam","endEdit","interaction","Modify","addInteraction","features","param","geometry","cur","flatCoordinates","attributes","longitude","latitude","other","geometryType","mapLayer","oddList","evenList","index","path","dealData","lnglatAry","_extent","paths","calculateDistance","rings","area","sketchCoords_","sketchCoords_2","radius","sphere","getDistance","Math","PI","pow","editGraphicChange","setGraphic","setGraphicParam","removeInteraction","parameter","data","Date","getTime","len","indexOf","removeGraphic","splice","anchor","markerContentX","markerContentY","anchorXUnits","anchorYUnits","opacity","geometryFunction","stoke","lineWidth","lineDash","lineType","undefined","pellucidity","getRgbColor","Draw","createBox","finishDrawing","getGeometry","isRepetition","updatePoint","config","height","updateLine","updatePolygon","getCoordinates","updateCircle","drawEnd","Circle","createHelpTooltip","createMeasureTooltip","createDeleteTooltip","tooltipCoord","coordinate","geom","lngLats","output","formatLength","getLastCoordinate","lnglats","innerHTML","setPosition","setOffset","className","Observable","unByKey","parentNode","removeChild","document","createElement","Overlay","element","offset","positioning","addOverlay","stopEvent","insertFirst","addEventListener","removeOverlay","removeLayer","n","round","nowBounds","southWest","northEast","nowCenter","mapSize","arg","ary","fitView","concat","split","i","g","displayRange","boundingExtent","fit","ids","maxX","maxY","minX","minY","coord","boundsArry","getExtent","min","max","bounds","gg","p","pts","domStr","domObj","childNodes","d","getPixelFromCoordinate","options","size","shape","VotexpointCollection","GMapLib","value","ds","ind","reDraw","clear","params","popupWindow","Popup","position","content","close","showPopup","removePopup","ps","psids","console","warn","Feature","Point","name","cg","labelContent","labelPixelX","labelPixelY","zIndex","deg","txt","myImage","Image","markerContent","nodes","parseDom","clientX","clientY","pop","autoPanMargin","autoPan","canvasDataURL","base64","img","imgSize","canShowLabel","textStyle","textAlign","textBaseline","font","text","offsetX","offsetY","backgroundFill","padding","labelStyle","Text","setStyle","pointLayer","BAnimationType","marker","setAnimation","BMAP_ANIMATION_BOUNCE","BMAP_ANIMATION_DROP","overlay","getOverlayById","setElement","changed","rotation","setGeometry","timer","clearTimeout","redrawText","ls","lsids","isHidden","LineString","lineLayer","itt","pgs","pgsids","lineColor","lineOpacity","Polygon","polygonLayer","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeFeature","removeGraphicParam","getLayers","hMap","getSource","clearAllPointCollection","closeDraw","clearAll","cs","removeControl","ScaleLine","units","location","addControl","css","left","top","bottom","right","_et","setProperties","contains","xmin1","xmax1","ymin1","ymax1","xmin2","xmax2","ymin2","ymax2","Object","prototype","apply","ms","getMoreGraphic","getType","label","Cluster","minDistance","clusterHullStyle","clusterStyle","clusterCircleStyle","clusterMemberStyle","clusterMember","getStyle","getImage","resolution","clusterMembers","get","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","res","angle","cos","sin","originalFeatures","originalFeature","e1","e2","append","getNode","a","b","fp","ep","log","totalDistance","calculatePointsDistance","lngX","latX","tl","toScreen","lbl","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","ddeg","_graphicsLayer","tx","ty","lnglat","delay","autoRotation","urlright","urlleft","s","equalsPoint","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","init","nextProps","prevProps","customizedBoundary","isOpenTrafficInfo","boundaryName","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","oldMapPoints","newMapPoints","dataMatch","dealAdd","dealUpdate","oldMapLines","newMapLines","oldMapPolygons","newMapPolygons","oldMapCircles","newMapCircles","doEdit","clearHeatMap","vtxRangingTool","stringify","clearCluster","clearAreaRestriction","getMapExtent","clickLngLat","visible","gradient","key","heatData","properties","weight","heatSource","readFeatures","Heatmap","blur","info","j","React","Component","container","closeble","appendChild","animation","reg","test","newStr","toLowerCase","replace","arr","parseInt","callback","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL"],"sources":["VtxMap/OlMap/Map.js"],"sourcesContent":["import React from 'react';\r\n\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\nimport { graphicManage, getPolygonArea } from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport { isArray } from 'lodash';\r\nconst { Set } = Immutable;\r\n\r\nclass OlMap extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.zIndexGraphics = []; //需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points'; //html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection'; //海量点canvas点位容器id class管理\r\n this.Label = {}; //所有label 集合\r\n this.labelLayer = { x: 0, y: 0 }; //label图层 位置管理\r\n this.viewer = null;\r\n this.GM = new graphicManage(); //初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.layer = null; //保存地图图层数据\r\n this.loadTimer = null; //初始化地图 load时延缓数据处理\r\n this.animTimer = {}; //点位跳动动画 定时集合\r\n this.animCount = {}; //点位跳动动画 定时计数\r\n this.moveToTimer = null; //moveTo时间对象\r\n this.drawToolbar = null; //地图绘制对象即interaction\r\n this.drawParam = {}; //缓存 绘制的数据\r\n this.editToolbar = null; //编辑对象\r\n this.editId = ''; //当前编辑的图元id\r\n this.drawSource = null;\r\n this.drawVector = null;\r\n // 图元绘制保存\r\n this.drawInfo = {\r\n sketch: null,\r\n listener: null,\r\n };\r\n this.scaleControl = null;\r\n this.pointLayers = [];\r\n this.mouseNowPosition = { x: 0, y: 0, px: 0, py: 0, isCount: false };\r\n this.heatmap = null; //热力图对象\r\n this.clusterMarkers = []; //聚合点位id数组\r\n this.clusterPs = []; //聚合集合点\r\n this.clusterPt = []; //地图中聚合点集合\r\n this.morepoints = []; //海量点集合\r\n this.areaRestriction = null; //区域限制数据\r\n this.movePoints = [];\r\n this.olLayers = []; // ol图层集合 {address:'', layer: ''}\r\n this.baseLayer = null; // 地图图层\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false, //是否开启状态\r\n line: {}, //线\r\n points: [], //点\r\n distance: 0, //测距长度\r\n mapRangingTool: null, //测距回调\r\n };\r\n this.rangingTools = {}; //测距点线缓存\r\n this.rangingInfo = {\r\n sketch: null,\r\n helpTooltipElement: null,\r\n helpTooltip: null,\r\n measureTooltipElement: null,\r\n measureTooltip: null,\r\n deleteToolTipElement: null,\r\n deleteToolTip: null,\r\n continuePolygonMsg: '点击继续绘制图形',\r\n continueLineMsg: '点击继续绘制线',\r\n listener: null,\r\n drawElements: [],\r\n drawLayer: null,\r\n feature: null,\r\n draw: null,\r\n }\r\n this.clusterInfo = {\r\n clickFeature: null,\r\n clickResolution: null,\r\n hoverFeature: null,\r\n clusterSource: null,\r\n clusterHulls: null,\r\n clusters: null,\r\n clusterCircles: null,\r\n };\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 editGraphic: '', //当前编辑完后图元所有数据\r\n boundaryInfo: [], //当前画出的边界线的id和区域名\r\n drawIds: {\r\n //绘制工具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 // 引入ol样式\r\n loadMapJs() {\r\n this.loadMapComplete = new Promise((resolve, reject) => {\r\n if (window.OlMap) {\r\n resolve(window.OlMap);\r\n } else {\r\n $.getScript(`${configUrl.openlayerServerURL}/ol.js`, () => {\r\n let PointCollection = new Promise((resolve, reject) => {\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`, () => {\r\n resolve();\r\n });\r\n });\r\n let Client9 = new Promise(function (resolve, reject) {\r\n $.getScript(`${configUrl.openlayerServerURL}/iclient-openlayers.min.js`, function () {\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection,Client9]).then(() => {\r\n resolve(window.OlMap);\r\n })\r\n });\r\n $.getScript(`${configUrl.openlayerServerURL}/bd09.js`);\r\n $.getScript(`${configUrl.openlayerServerURL}/olScreen.js`);\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href:\r\n `${configUrl.openlayerServerURL}/ol.css`,\r\n })\r\n .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 t.drawSource = new ol.source.Vector({ wrapX: false });\r\n t.drawVector = new ol.layer.Vector({ source: t.drawSource });\r\n let initData = () => {\r\n const {\r\n mapPoints,\r\n mapLines,\r\n mapPolygons,\r\n mapCircles,\r\n mapVisiblePoints,\r\n mapCluster,\r\n mapPointCollection,\r\n areaRestriction,\r\n heatMapData\r\n } = t.props;\r\n // 初始化中心点\r\n t.setCenter();\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 (t.props.showControl) {\r\n t.showControl(t.props);\r\n }\r\n // 画热力图\r\n if (heatMapData) {\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if (mapCluster instanceof Array) {\r\n t.cluster(mapCluster);\r\n }\r\n /*设置指定图元展示*/\r\n if (mapVisiblePoints) {\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //添加海量点\r\n if (mapPointCollection instanceof Array) {\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if (areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n t.setState({\r\n mapCreated: true,\r\n });\r\n };\r\n let event = (e, status) => {\r\n const { gis } = t.state;\r\n let overall_feature = null; //鼠标移入事件时记录当前的feature,为鼠标移出要素时保存操作的要素对象\r\n let dragAddMoveFlag = false; //记录地图拖拽和移动事件\r\n // 地图开始加载时\r\n gis.on('loadstart', function () {\r\n gis.getTargetElement().classList.add('spinner');\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n gis.getTargetElement().classList.remove('spinner');\r\n });\r\n // 地图双击事件\r\n gis.on('dbclick', evt => { });\r\n // 地图点击事件\r\n gis.on('singleclick', evt => {\r\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\r\n if (feature) {\r\n let target = feature.getProperties();\r\n // top: e.clientY,//当前点所在的位置(屏幕)\r\n // left: e.clientX,\r\n t.clickGraphic(target.id || target.elementId, evt, target);\r\n } else {\r\n t.clickMap(evt);\r\n }\r\n });\r\n // 鼠标移动事件 - 当鼠标指向要素时改变光标状态\r\n gis.on('pointermove', evt => {\r\n let pixel = gis.getEventPixel(evt.originalEvent);\r\n let hit = gis.hasFeatureAtPixel(pixel);\r\n gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\r\n // 获取到当前鼠标移动下的feature\r\n let feature = gis.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n return feature;\r\n });\r\n if (feature) {\r\n overall_feature = feature;\r\n let values = feature.getProperties();\r\n t.mouseOverGraphic(values.id, evt);\r\n } else {\r\n if (overall_feature) {\r\n overall_feature.dispatchEvent({ type: 'mousein', event: evt });\r\n let values = overall_feature.getProperties();\r\n t.mouseOutGraphic(values.id, evt);\r\n overall_feature = null;\r\n }\r\n }\r\n });\r\n // 鼠标拖拽事件 - 拖拽开始即是地图移动开始\r\n gis.on('pointerdrag', evt => {\r\n dragAddMoveFlag = true;\r\n t.dragMapStart(evt);\r\n t.moveStart(evt);\r\n });\r\n let zoom = 0;\r\n // 地图移动事件 - 移动结束即是拖拽事件结束 也是地图缩放事件(无开始和结束事件)的监听\r\n gis.on('moveend', evt => {\r\n t.dragMapEnd(evt);\r\n t.moveEnd(evt);\r\n t.zoomStart(evt);\r\n setTimeout(() => {\r\n t.zoomEnd(evt);\r\n }, 300);\r\n dragAddMoveFlag = false;\r\n });\r\n // gis.getViewport().addEventListener('mouseout', function () {\r\n // helpTooltipElement.classList.add('hidden');\r\n // });\r\n };\r\n event();\r\n t.setCenter(t.props.center);\r\n initData();\r\n }\r\n // 创建地图\r\n createMap() {\r\n let t = this;\r\n let {\r\n olProps={},\r\n mapCenter = [],\r\n mapId,\r\n mapZoomLevel,\r\n minZoom,\r\n maxZoom,\r\n } = t.props;\r\n let {\r\n projection, // 坐标投影类型 EPSG:4326和EPSG:3857,百度图层使用自定义的'BD:09'\r\n olCoverage\r\n } = olProps;\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n if(!minZoom){\r\n minZoom = 2\r\n }\r\n if(!maxZoom){\r\n maxZoom = 19\r\n }\r\n if(!projection){\r\n projection = 'EPSG:4326'\r\n }\r\n //中心点\r\n let center = mapCenter && mapCenter instanceof Array && mapCenter.length == 2\r\n ? mapCenter\r\n : [116.400433, 39.906705];\r\n center = [parseFloat(center[0]), parseFloat(center[1])];\r\n window.VtxMap[mapId] = t.state.gis = new ol.Map({\r\n target: mapId.toString(),\r\n view: new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n }),\r\n controls: ol.control.defaults({\r\n zoom: false,\r\n rotate: false,\r\n attribution: false\r\n }),\r\n });\r\n // 基本地图视图\r\n t.viewer = new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n })\r\n t.loadLayers(olCoverage, [], true);\r\n t.initPropsForUser();\r\n }\r\n\r\n // 加载图层\r\n loadLayers = (nextLayers = [], currentLayers = [], first = false) => {\r\n const t = this;\r\n // 对比图层的变化,找出需要新增和需要删除的。\r\n const addLayers = nextLayers.filter(item => {\r\n return !currentLayers.map(e => e.coverage).includes(item.coverage)\r\n });\r\n const removeLayers = currentLayers.filter(item => {\r\n return !nextLayers.map(e => e.coverage).includes(item.coverage)\r\n })\r\n if(removeLayers.length > 0) {\r\n removeLayers.forEach(item => {\r\n const exist = t.olLayers.find(e => e.address === item.coverage);\r\n exist && exist.layer.setVisible(false);\r\n })\r\n }\r\n if (addLayers.length > 0) {\r\n addLayers.map(item => {\r\n if(item.coverage.startsWith(\"http\") || item.coverage.startsWith('/')){\r\n switch(item.type) {\r\n // 超图\r\n case 'superMap':\r\n t.addSuperMapLayer(item.coverage);\r\n break;\r\n // geoServer\r\n case 'geoServer':\r\n t.addGeoServerLayer(item.coverage);\r\n default:\r\n break;\r\n }\r\n }else if (OL_SCREEN[item.coverage]) {\r\n if(first) {\r\n let layers = eval(OL_SCREEN[item.coverage].initLayer);\r\n if(isArray(layers)){\r\n layers.map(layer=>{\r\n t.state.gis.addLayer(layer);\r\n })\r\n }else {\r\n t.state.gis.addLayer(layers);\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n if(first) {\r\n let layer = eval(OL_SCREEN.default.initLayer);\r\n t.state.gis.addLayer(layer);\r\n }\r\n }\r\n }\r\n\r\n // 添加超图图层\r\n addSuperMapLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n const layer = new ol.layer.Tile({\r\n source: new ol.source.TileSuperMapRest({\r\n url\r\n })\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n // 添加geoServer图层\r\n addGeoServerLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n // 矢量数据源\r\n const vectorSource = new ol.source.Vector({\r\n // 设置格式化类型\r\n format: new ol.format.GeoJSON(),\r\n\r\n // url(extent) 在地图范围变化时调用,返回当前的地图范围\r\n url: function (extent) {\r\n return `${url}&bbox=${extent.join(',')}`;\r\n },\r\n strategy: ol.loadingstrategy.bbox,\r\n });\r\n\r\n // 矢量图层\r\n const layer = new ol.layer.Vector({\r\n // 设置数据源\r\n source: vectorSource,\r\n // 设置图层样式也可以 function (feature) { /** 根据内容动态加载样式 **/ return Style}\r\n style: function(feature) {\r\n const el = feature.A || {};\r\n const icon = JSON.parse(el.icon || '[]');\r\n let mapIcon = icon[0]?.id\r\n ? `/cloudFile/common/downloadFile?id=${icon[0].id}`\r\n : require(\"../images/defaultMarker.png\");\r\n return new ol.style.Style({\r\n // 点位图标\r\n image: new ol.style.Icon({\r\n scale: 1,\r\n src: mapIcon,\r\n }),\r\n // 线样式\r\n stroke: new ol.style.Stroke({\r\n color: el.color || '#1890ff',\r\n width: 4\r\n }),\r\n // 面样式\r\n fill: new ol.style.Fill({\r\n color: el.color || 'rgba(255,255,255, 0.5)'\r\n })\r\n })\r\n },\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n // 初始化对外方法\r\n initPropsForUser(){\r\n const t = this;\r\n t.state.gis[\"getCenter\"] = () => {\r\n return t.getCenter();\r\n }\r\n t.state.gis[\"setCenter\"] = (gt) => {\r\n t.setCenter(gt);\r\n }\r\n t.state.gis[\"getZoomLevel\"] = () => {\r\n return t.getZoomLevel();\r\n }\r\n t.state.gis[\"showInfoWindow\"] = (obj) => {\r\n return t.showInfoWindow(obj);\r\n }\r\n t.state.gis[\"hideInfoWindow\"] = () => {\r\n return t.hideInfoWindow();\r\n }\r\n t.state.gis[\"refresh\"] = () => {\r\n t.refresh();\r\n }\r\n }\r\n // 设置中心点\r\n setCenter(gt) {\r\n let t = this;\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.getCenter();\r\n if (c.lng == gt[0] && c.lat == gt[1]) {\r\n return false;\r\n }\r\n t.state.gis.getView().setCenter(gt);\r\n t.viewer.animate({\r\n center: gt,\r\n duration: 2000,\r\n });\r\n }\r\n }\r\n //设置地图缩放层级\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.state.gis.getView().getZoom();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.getView().setZoom(zoom)\r\n }\r\n //获取当前中心点\r\n getCenter() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let [xmin, ymin, xmax, ymax] = gis.getView().calculateExtent(gis.getSize());\r\n return { lng: (xmin + xmax) / 2, lat: (ymin + ymax) / 2 };\r\n }\r\n //编辑图元\r\n doEdit(id) {\r\n let t = this;\r\n //获取图元对象\r\n let gc = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n if (!gc) return false;\r\n //关闭先前编辑的图元\r\n if (!!t.state.editId) {\r\n t.endEdit();\r\n }\r\n if (!t.editToolbar) {\r\n t.editToolbar = new ol.interaction.Modify({\r\n source: gp.source,\r\n });\r\n t.state.gis.addInteraction(t.editToolbar)\r\n }else{\r\n t.state.gis.addInteraction(t.editToolbar)\r\n }\r\n t.editToolbar.on('modifyend', function (e) {\r\n let feature = gc;\r\n e.features.forEach(function (feature) {\r\n feature = feature\r\n })\r\n //返回参数\r\n let param = {\r\n id,\r\n e,\r\n };\r\n // 绘制内部管理的图元\r\n if (gp.geometry.type == 'point') {\r\n let cur = feature.getProperties().geometry;\r\n const [lng, lat] = cur.flatCoordinates;\r\n //处理点返回参数\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n },\r\n geometryType: gp.geometry.type,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n type: 'point',\r\n x: lng,\r\n y: lat,\r\n },\r\n }\r\n }\r\n //线\r\n if (gp.geometry.type == 'polyline') {\r\n let cur = feature.getProperties().geometry;\r\n let oddList = [], evenList = [];\r\n cur.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n paths: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n paths: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n geometry: {\r\n paths: path,\r\n _extent,\r\n type: \"polyline\",\r\n },\r\n geometryType: 'polyline',\r\n lnglatAry,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n paths: path,\r\n _extent,\r\n type: \"polyline\",\r\n },\r\n distance: t.calculateDistance(path),\r\n }\r\n }\r\n //面\r\n if (gp.geometry.type == 'polygon') {\r\n let cur = feature.getProperties().geometry;\r\n let oddList = [], evenList = [];\r\n cur.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n rings: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n rings: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n geometry: {\r\n rings: path,\r\n type: 'polygon',\r\n _extent\r\n },\r\n geometryType: 'polygon',\r\n lnglatAry,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n rings: path,\r\n type: 'polygon',\r\n _extent\r\n },\r\n area: getPolygonArea(path),\r\n }\r\n }\r\n if (gp.geometry.type == 'circle') {\r\n let cur = feature.getProperties().geometry;\r\n let center = cur.getCenter();\r\n let sketchCoords_ = [cur.flatCoordinates[0], cur.flatCoordinates[1]];\r\n let sketchCoords_2 = [cur.flatCoordinates[2], cur.flatCoordinates[3]];\r\n let radius = ol.sphere.getDistance(sketchCoords_, sketchCoords_2);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n other: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n other: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n }\r\n },\r\n geometry: {\r\n x: center[0],\r\n y: center[1],\r\n radius,\r\n type: 'circle',\r\n },\r\n geometryType: 'circle',\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n area: Math.PI * Math.pow(radius, 2),\r\n geometry: {\r\n type: 'circle',\r\n x: center[0],\r\n y: center[1],\r\n radius\r\n }\r\n }\r\n }\r\n if ('editGraphicChange' in t.props && typeof (t.props.editGraphicChange) == 'function') {\r\n t.props.editGraphicChange(param);\r\n }\r\n t.GM.setGraphic(id, feature)\r\n .setGraphicParam(id, { ...param, source: gp.source });\r\n })\r\n t.editId = id;\r\n }\r\n //关闭编辑\r\n endEdit() {\r\n let t = this;\r\n if (t.editToolbar) {\r\n t.state.gis.removeInteraction(t.editToolbar);\r\n t.editToolbar = null;\r\n }\r\n t.editId = '';\r\n }\r\n // 绘制图元\r\n draw(obj) {\r\n let t = this;\r\n const { drawInfo } = t;\r\n const { gis } = t.state;\r\n let drawParam = {}, image, stroke, fill;\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 //缓存 绘制的数据\r\n t.drawParam = drawParam;\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 type = 'Point', style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-drawParam.parameter.markerContentX || -15, -drawParam.parameter.markerContentY || -15],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n src: drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n opacity: 1,\r\n scale: drawParam.parameter.scale || 1,\r\n })\r\n });\r\n let geometryFunction;\r\n switch (drawParam.geometryType) {\r\n case 'point':\r\n type = 'Point';\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-drawParam.parameter.markerContentX || -15, -drawParam.parameter.markerContentY || -15],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n src: drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n opacity: 1,\r\n scale: drawParam.parameter.scale || 1,\r\n })\r\n })\r\n break;\r\n case 'polyline':\r\n type = 'LineString';\r\n style = new ol.style.Style({\r\n stoke: new ol.style.Stroke({\r\n color: drawParam.parameter.color || '#277ffa',\r\n width: drawParam.parameter.lineWidth || 3,\r\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\r\n })\r\n })\r\n break;\r\n case 'polygon':\r\n type = 'Polygon';\r\n style = new ol.style.Style({\r\n stoke: new ol.style.Stroke({\r\n color: drawParam.parameter.color || '#277ffa',\r\n width: drawParam.parameter.lineWidth || 3,\r\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: drawParam.parameter.pellucidity ?\r\n getRgbColor(drawParam.parameter.color || '#277ffa', drawParam.parameter.pellucidity) :\r\n drawParam.parameter.color || '#277ffa',\r\n })\r\n })\r\n break;\r\n case 'rectangle':\r\n type = 'Circle';\r\n geometryFunction = ol.interaction.Draw.createBox();\r\n break;\r\n case 'circle':\r\n type = 'Circle';\r\n style = new ol.style.Style({\r\n stoke: new ol.style.Stroke({\r\n color: drawParam.parameter.color || '#277ffa',\r\n width: drawParam.parameter.lineWidth || 3,\r\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: drawParam.parameter.pellucidity ?\r\n getRgbColor(drawParam.parameter.color || '#277ffa', drawParam.parameter.pellucidity) :\r\n drawParam.parameter.color || '#277ffa',\r\n })\r\n })\r\n break;\r\n }\r\n if (!t.drawToolbar) {\r\n t.drawToolbar = new ol.interaction.Draw({\r\n source: t.drawSource,\r\n type: type,\r\n geometryFunction: geometryFunction\r\n // style: style\r\n });\r\n gis.addInteraction(t.drawToolbar);\r\n }else{\r\n gis.addInteraction(t.drawToolbar);\r\n }\r\n t.drawToolbar.on('drawend', function (e) {\r\n // 关闭绘制事件\r\n t.drawToolbar.finishDrawing();\r\n // 移除\r\n gis.removeInteraction(t.drawToolbar)\r\n let gc = e.feature.getGeometry();\r\n //返回参数\r\n let param = {};\r\n // 绘制内部管理的图元\r\n if (t.drawParam.geometryType == 'point') {\r\n const [lng, lat] = gc.flatCoordinates;\r\n gc.x = lng;\r\n gc.y = lat;\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updatePoint(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n longitude: lng,\r\n latitude: lat,\r\n url:\r\n t.drawParam.parameter.url ||\r\n require(\"../images/defaultMarker.png\"),\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n \"point\"\r\n );\r\n }else{\r\n t.addPoint([{\r\n id: t.drawParam.data.id,\r\n longitude: lng,\r\n latitude: lat,\r\n url: t.drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], 'point');\r\n }\r\n \r\n //处理点返回参数\r\n param = {\r\n id: t.drawParam.data.id,\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n url: t.drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n config: {\r\n width: t.drawParam.parameter.width || 30,\r\n height: t.drawParam.parameter.height || 30\r\n }\r\n },\r\n geometry: gc,\r\n geometryType: 'point',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //线\r\n if (t.drawParam.geometryType == 'polyline') {\r\n let oddList = [], evenList = [];\r\n gc.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updateLine([{\r\n id: t.drawParam.data.id,\r\n paths: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], 'polyline');\r\n }else{\r\n t.addLine([{\r\n id: t.drawParam.data.id,\r\n paths: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], 'polyline');\r\n }\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n paths: path,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n distance: t.calculateDistance(path),\r\n geometryType: 'polyline',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //面\r\n if (t.drawParam.geometryType == 'polygon') {\r\n let oddList = [], evenList = [];\r\n gc.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updatePolygon(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n t.drawParam.geometryType\r\n );\r\n }else{\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], t.drawParam.geometryType);\r\n }\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: path,\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(path),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if (t.drawParam.geometryType == 'rectangle') {\r\n let path = e.feature.getGeometry().getCoordinates()[0];\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updatePolygon(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n t.drawParam.geometryType\r\n );\r\n }else{\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], t.drawParam.geometryType);\r\n }\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: path,\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(path),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if (t.drawParam.geometryType == 'circle') {\r\n let center = e.feature.getGeometry().getCenter();\r\n let cur = e.feature.getProperties().geometry;\r\n let sketchCoords_ = [cur.flatCoordinates[0], cur.flatCoordinates[1]];\r\n let sketchCoords_2 = [cur.flatCoordinates[2], cur.flatCoordinates[3]];\r\n let radius = ol.sphere.getDistance(sketchCoords_, sketchCoords_2);\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updateCircle(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n t.drawParam.geometryType\r\n );\r\n }else{\r\n t.addCircle([{\r\n id: t.drawParam.data.id,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], t.drawParam.geometryType);\r\n }\r\n param = {\r\n area: Math.PI * Math.pow(radius, 2),\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n geometry: {\r\n type: t.drawParam.geometryType,\r\n x: center[0],\r\n y: center[1],\r\n radius\r\n },\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if ('drawEnd' in t.props && typeof (t.props.drawEnd) == 'function') {\r\n t.props.drawEnd(param);\r\n }\r\n });\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\r\n }\r\n // 关闭绘制\r\n closeDraw() {\r\n let t = this;\r\n const { gis } = t.state;\r\n if (t.drawToolbar) {\r\n // 关闭绘制事件\r\n t.drawToolbar.finishDrawing();\r\n // 移除\r\n gis.removeInteraction(t.drawToolbar)\r\n t.drawToolbar = null;\r\n t.drawInfo = {\r\n sketch: null,\r\n listener: null,\r\n };\r\n }\r\n }\r\n /*工具方法*/\r\n vtxRangingTool(){\r\n let t = this;\r\n let source = new ol.source.Vector({});\r\n t.rangingInfo.drawLayer = new ol.layer.Vector({\r\n source: source,\r\n style: new ol.style.Style({\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 255, 255, 0.2)',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: '#ffcc33',\r\n width: 4,\r\n }),\r\n image: new ol.style.Circle({\r\n radius: 7,\r\n fill: new ol.style.Fill({\r\n color: '#ffcc33',\r\n }),\r\n }),\r\n }),\r\n })\r\n t.rangingInfo.draw = new ol.interaction.Draw({\r\n source,\r\n type: 'LineString',\r\n style: new ol.style.Style({\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 255, 255, 0.2)',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(0, 0, 0, 0.5)',\r\n lineDash: [10, 10],\r\n width: 4,\r\n }),\r\n image: new ol.style.Circle({\r\n radius: 5,\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(0, 0, 0, 0.7)',\r\n }),\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 255, 255, 0.2)',\r\n }),\r\n }),\r\n }),\r\n });\r\n let obj = {};\r\n t.createHelpTooltip();\r\n t.createMeasureTooltip();\r\n t.createDeleteTooltip();\r\n t.state.gis.addLayer(t.rangingInfo.drawLayer);\r\n t.state.gis.addInteraction(t.rangingInfo.draw);\r\n // 开始监听绘制\r\n t.rangingInfo.draw.on('drawstart', (evt) => {\r\n t.rangingInfo.feature = evt.feature;\r\n let tooltipCoord = evt.coordinate;\r\n t.rangingInfo.listener = evt.feature.getGeometry().on('change', function (evt) {\r\n const geom = evt.target;\r\n const {flatCoordinates} = geom;\r\n const lngLats = [[flatCoordinates[0], flatCoordinates[1]],[flatCoordinates[2], flatCoordinates[3]]];\r\n let output = t.formatLength(geom);\r\n tooltipCoord = geom.getLastCoordinate();\r\n obj={\r\n distance: output,\r\n lnglats: lngLats,\r\n }\r\n t.rangingInfo.measureTooltipElement.innerHTML = output;\r\n t.rangingInfo.measureTooltip.setPosition(tooltipCoord);\r\n t.rangingInfo.deleteToolTip.setPosition(tooltipCoord);\r\n t.rangingInfo.deleteToolTip.setOffset([20, 10]);\r\n });\r\n });\r\n // 双击绘制完成\r\n t.rangingInfo.draw.on('drawend', () => {\r\n t.rangingInfo.measureTooltipElement.className = 'ol-tooltip ol-tooltip-static';\r\n t.rangingInfo.measureTooltip.setOffset([0, -7]);\r\n t.rangingInfo.feature = null;\r\n t.rangingInfo.measureTooltipElement = null;\r\n // t.createMeasureTooltip();\r\n new ol.Observable.unByKey(t.rangingInfo.listener);\r\n t.state.gis.removeInteraction(t.rangingInfo.draw);\r\n if('mapRangingTool' in t.props){\r\n t.props.mapRangingTool(obj);\r\n }\r\n });\r\n }\r\n // 绘图时创建提示\r\n createHelpTooltip(){\r\n const t = this;\r\n if (t.rangingTool.helpTooltipElement) {\r\n t.rangingTool.helpTooltipElement.parentNode.removeChild(t.rangingTool.helpTooltipElement);\r\n }\r\n t.rangingTool.helpTooltipElement = document.createElement('div');\r\n t.rangingTool.helpTooltipElement.className = 'ol-tooltip hidden';\r\n t.rangingTool.helpTooltip = new ol.Overlay({\r\n element: t.rangingTool.helpTooltipElement,\r\n offset: [15, 0],\r\n positioning: 'center-left',\r\n });\r\n t.state.gis.addOverlay(t.rangingTool.helpTooltip);\r\n }\r\n // 工具画图提示\r\n createMeasureTooltip() {\r\n const t = this;\r\n if (t.rangingInfo.measureTooltipElement) {\r\n t.rangingInfo.measureTooltipElement.parentNode.removeChild(t.rangingInfo.measureTooltipElement);\r\n }\r\n t.rangingInfo.measureTooltipElement = document.createElement('div');\r\n t.rangingInfo.measureTooltipElement.className = 'ol-tooltip ol-tooltip-measure';\r\n t.rangingInfo.measureTooltip = new ol.Overlay({\r\n element: t.rangingInfo.measureTooltipElement,\r\n offset: [0, -15],\r\n positioning: 'bottom-center',\r\n stopEvent: false,\r\n insertFirst: false,\r\n });\r\n t.state.gis.addOverlay(t.rangingInfo.measureTooltip);\r\n }\r\n // 创建删除提示\r\n createDeleteTooltip() {\r\n const t = this;\r\n if (t.rangingInfo.deleteToolTipElement) {\r\n t.rangingInfo.deleteToolTipElement.parentNode.removeChild(t.rangingInfo.deleteToolTipElement);\r\n }\r\n t.rangingInfo.deleteToolTipElement = document.createElement('div');\r\n t.rangingInfo.deleteToolTipElement.className = 'ol-tooltip-delete';\r\n t.rangingInfo.deleteToolTipElement.innerHTML = 'X';\r\n t.rangingInfo.deleteToolTipElement.addEventListener('click', function(e){\r\n t.rangingInfo.measureTooltipElement = null;\r\n t.rangingInfo.helpTooltipElement = null;\r\n t.rangingInfo.deleteToolTipElement = null;\r\n t.state.gis.removeOverlay(t.rangingInfo.measureTooltip);\r\n t.state.gis.removeOverlay(t.rangingTool.helpTooltip);\r\n t.state.gis.removeOverlay(t.rangingInfo.deleteToolTip);\r\n new ol.Observable.unByKey(t.rangingInfo.listener);\r\n t.state.gis.removeInteraction(t.rangingInfo.draw);\r\n t.state.gis.removeLayer(t.rangingInfo.drawLayer);\r\n })\r\n t.rangingInfo.deleteToolTip = new ol.Overlay({\r\n element: t.rangingInfo.deleteToolTipElement,\r\n offset: [15, 15],\r\n positioning: 'bottom-center',\r\n stopEvent: false,\r\n insertFirst: true,\r\n });\r\n t.state.gis.addOverlay(t.rangingInfo.deleteToolTip);\r\n }\r\n\r\n formatLength (line) {\r\n const {flatCoordinates} = line\r\n // const length = new ol.sphere.getDistance([flatCoordinates[0], flatCoordinates[1]],[flatCoordinates[2], flatCoordinates[3]]);\r\n let paths = []\r\n for (let n = 0; n < flatCoordinates.length; n += 2) {\r\n paths.push([flatCoordinates[n], flatCoordinates[n + 1]])\r\n }\r\n let length = 0;\r\n if (paths.length >= 2)\r\n paths.map((item, index) => {\r\n if (index <= paths.length - 2) {\r\n length += ol.sphere.getDistance(paths[index], paths[index + 1])\r\n }\r\n })\r\n let output = '';\r\n if (length > 100) {\r\n output = Math.round((length / 1000) * 100) / 100 + ' ' + 'km';\r\n } else {\r\n output = Math.round(length * 100) / 100 + ' ' + 'm';\r\n }\r\n return output;\r\n };\r\n // 获取地图的当前位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let obj = {};\r\n if (gis) {\r\n let nowBounds = gis.getView().calculateExtent(gis.getSize());\r\n obj.southWest = {\r\n lng: nowBounds[0],\r\n lat: nowBounds[1],\r\n };\r\n obj.northEast = {\r\n lng: nowBounds[2],\r\n lat: nowBounds[3],\r\n };\r\n obj.nowCenter = t.getCenter();\r\n obj.zoom = t.getZoomLevel();\r\n const [width, height] = gis.getSize();\r\n obj.mapSize = { width: width, height: height };\r\n obj.radius = ol.sphere.getDistance(\r\n [obj.nowCenter.lng, obj.nowCenter.lat],\r\n [obj.northEast.lng, obj.northEast.lat],\r\n );\r\n return obj;\r\n }\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 const {gis} = t.state;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];//图元id集合\r\n let obj = [];//经纬度集合\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 if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n }else if(arg instanceof Array){\r\n ary = arg;\r\n }\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let g = t.GM.getGraphicParam(ary[i]);\r\n if(g){\r\n switch(g.geometry.type){\r\n case 'point':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n case 'circle':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n break;\r\n case 'polyline':\r\n obj = [...obj,...g.geometry.paths];\r\n break;\r\n case 'polygon':\r\n obj = [...obj,...g.geometry.rings];\r\n break;\r\n }\r\n }\r\n }\r\n if(obj.length > 0){\r\n let displayRange = new ol.extent.boundingExtent(obj);\r\n gis.getView().fit(displayRange, gis.getSize());\r\n }\r\n }\r\n getFitView(ids) {\r\n let t = this;\r\n if (ids.length > 0) {\r\n let maxX = null, maxY = null, minX = null, minY = null;\r\n for (let i = 0; i < ids.length; i++) {\r\n let coord = t.GM.getGraphic(ids[i]);\r\n let boundsArry = coord.getGeometry().getExtent();\r\n if (minX === null) {\r\n minX = boundsArry[0]\r\n minY = boundsArry[1]\r\n maxX = boundsArry[2]\r\n maxY = boundsArry[3]\r\n } else {\r\n minX = Math.min(boundsArry[0], minX)\r\n minY = Math.min(boundsArry[1], minY)\r\n maxX = Math.max(boundsArry[2], maxX)\r\n maxY = Math.max(boundsArry[3], maxY)\r\n }\r\n }\r\n const bounds = [minX, minY, maxX, maxY];\r\n return bounds;\r\n }\r\n }\r\n /*功能方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let extent = gis.getView().calculateExtent(gis.getSize());\r\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\r\n }\r\n //获取当前比例尺\r\n getZoomLevel() {\r\n let t = this;\r\n return t.state.gis.getView().getZoom();\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 = {},\r\n pts = [],\r\n lng = 0,\r\n lat = 0;\r\n switch (gp.geometryType) {\r\n case 'point':\r\n lng = gp.geometry.x;\r\n lat = gp.geometry.y;\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 = gp.geometry.paths;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts,\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts,\r\n },\r\n },\r\n };\r\n break;\r\n case 'polygon':\r\n pts = gp.geometry.rings;\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 area: getPolygonArea(pts),\r\n };\r\n break;\r\n case 'circle':\r\n lng = gp.geometry.x;\r\n lat = gp.geometry.y;\r\n let radius = gp.geometry.radius;\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 // 转换dom节点\r\n parseDom(domStr) {\r\n const domObj = document.createElement('div');\r\n domObj.innerHTML = domStr;\r\n return domObj.childNodes;\r\n }\r\n //添加海量点\r\n addPointCollection(data = []) {\r\n let t = this;\r\n data.map((item, index) => {\r\n let d = item || {};\r\n let points = (d.points || []).map((d, i) => {\r\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\r\n return [p[0], p[1]];\r\n });\r\n let [width, height] = t.state.gis.getSize();\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: width,\r\n height: height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points, options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []) {\r\n let t = this;\r\n data.map((ds, ind) => {\r\n t.morepoints.map((item, index) => {\r\n if (item.id == ds.id) {\r\n let points = (ds.points || []).map((d, i) => {\r\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\r\n return [p[0], p[1]];\r\n });\r\n let [width, height] = t.state.gis.getSize();\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: width,\r\n height: height\r\n };\r\n item.value.reDraw(points, options);\r\n }\r\n })\r\n })\r\n }\r\n //删除海量点\r\n clearPointCollection(ids = []) {\r\n let t = this;\r\n ids.map((id, ind) => {\r\n t.morepoints.map(function (item, index) {\r\n if (id == item.id) {\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n\r\n //删除全部海量点\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 * params\r\n * @position: Array[longitude,latitude]\r\n * @content: String|HTML\r\n * @close: boolean\r\n */\r\n showInfoWindow(params={}){\r\n const t = this;\r\n if(t.popupWindow){\r\n t.hideInfoWindow();\r\n }\r\n t.popupWindow = new Popup({\r\n map: t.state.gis,\r\n position: params.position,\r\n innerHTML: params.content,\r\n close: params.close\r\n });\r\n t.popupWindow.showPopup();\r\n }\r\n hideInfoWindow(){\r\n const t = this;\r\n if(t.popupWindow){\r\n t.popupWindow.removePopup();\r\n }\r\n t.popupWindow = null;\r\n }\r\n // 添加点\r\n addPoint(mapPoints, type) {\r\n let t = this;\r\n let ps = [];\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n // 创建点位图元要素\r\n let feature = new ol.Feature({\r\n geometry: new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]),\r\n name: item.name,\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n let cg = {\r\n width: 30,\r\n height: 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n markerContentX: -13,\r\n markerContentY: -42,\r\n zIndex: 100,\r\n deg: 0,\r\n scale: 1,\r\n };\r\n //初始化默认数据\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n // 覆盖物样式参数\r\n let style, icon, txt;\r\n let myImage = new Image(cg.width, cg.height);\r\n \r\n if (!!item.markerContent) {\r\n let nodes = t.parseDom(item.markerContent)[0];\r\n // 自定义图层需要把事件加在dom上\r\n nodes.addEventListener(\"click\", e => {\r\n t.clickGraphic(item.id,{\r\n ...e,\r\n pixel: [e.clientX,e.clientY]\r\n })\r\n })\r\n // 创建地图自定义覆盖物\r\n let pop = new ol.Overlay({\r\n id: item.id,\r\n position: [parseFloat(item.longitude), parseFloat(item.latitude)],\r\n positioning: 'center-center',\r\n element: nodes,\r\n autoPanMargin: 20,\r\n autoPan: true,\r\n offset: [0, -20],\r\n insertFirst: true,\r\n });\r\n t.state.gis.addOverlay(pop);\r\n } else {\r\n // item.url || require(\"../images/defaultMarker.png\"),\r\n canvasDataURL(\r\n item.url || require(\"../images/defaultMarker.png\"),\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n }\r\n )\r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n });\r\n }\r\n if (!!item.canShowLabel && item.canShowLabel) {\r\n let textStyle = {\r\n textAlign: 'center', //对齐方式\r\n textBaseline: 'middle', //文本基线\r\n font: 'normal 12px 微软雅黑', //字体样式\r\n text: cg.labelContent, //文本内容\r\n offsetX: cg.labelPixelX, // x轴偏置\r\n offsetY: cg.labelPixelY, // Y轴偏置\r\n fill: new ol.style.Fill({\r\n //填充样式\r\n color: '#1890ff',\r\n }),\r\n backgroundFill: new ol.style.Fill({\r\n // 填充背景\r\n color: 'rgba(255, 255, 255, 1)',\r\n }),\r\n padding: [2, 5, 2, 5],\r\n ...(cg.labelStyle || {})\r\n }\r\n if(cg.labelStyle && cg.labelStyle.fill){\r\n textStyle['fill'] = new ol.style.Fill({\r\n color: cg.labelStyle.fill\r\n })\r\n }\r\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\r\n textStyle['backgroundFill'] = new ol.style.Fill({\r\n color: cg.labelStyle.backgroundFill\r\n })\r\n }\r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n // src: item.url || require(\"../images/defaultMarker.png\"),\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n // 创建地图要素文字样式\r\n text: new ol.style.Text(textStyle),\r\n });\r\n }\r\n feature.setStyle(style);\r\n // 初始化适量数据源\r\n let source = new ol.source.Vector({\r\n features: [feature],\r\n name: 'point',\r\n id: item.id,\r\n });\r\n let pointLayer = new ol.layer.Vector({\r\n name: 'point',\r\n source,\r\n id: item.id,\r\n });\r\n t.pointLayers.push({\r\n id: item.id,\r\n layer: pointLayer\r\n })\r\n //添加点位图层\r\n t.state.gis.addLayer(pointLayer);\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 psids.push(item.id);\r\n //缓存图元的数据,偏于后期操作\r\n this.GM.setGraphic(item.id, feature).setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n },\r\n source\r\n });\r\n });\r\n if (type !== 'defined') {\r\n // t.state.pointIds = psids;\r\n t.setState({\r\n pointIds: psids\r\n })\r\n }\r\n }\r\n //更新点\r\n updatePoint(mapPoints = []) {\r\n let t = this;\r\n mapPoints.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(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 markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n\r\n let text, icon, marker;\r\n let myImage = new Image(cg.width, cg.height);\r\n if (item.markerContent) {\r\n let overlay = t.state.gis.getOverlayById(item.id);\r\n let nodes = t.parseDom(item.markerContent)[0];\r\n nodes.addEventListener(\"click\", e => {\r\n t.clickGraphic(item.id,{\r\n ...e,\r\n pixel: [e.clientX,e.clientY]\r\n })\r\n })\r\n overlay.setElement(nodes);\r\n overlay.setPosition([parseFloat(item.longitude), parseFloat(item.latitude)]);\r\n t.state.gis.changed();\r\n } else {\r\n canvasDataURL(\r\n item.url || require(\"../images/defaultMarker.png\"),\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n }\r\n )\r\n icon = new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n // src: item.url || require(\"../images/defaultMarker.png\"),\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n rotation: Math.PI / 180 * cg.deg,\r\n })\r\n if (item.canShowLabel) {\r\n let textStyle = {\r\n textAlign: 'center', //对齐方式\r\n textBaseline: 'middle', //文本基线\r\n font: 'normal 12px 微软雅黑', //字体样式\r\n text: cg.labelContent, //文本内容\r\n offsetX: cg.labelPixelX, // x轴偏置\r\n offsetY: cg.labelPixelY, // Y轴偏置\r\n fill: new ol.style.Fill({\r\n //填充样式\r\n color: '#1890ff',\r\n }),\r\n backgroundFill: new ol.style.Fill({\r\n // 填充背景\r\n color: 'rgba(255, 255, 255, 1)',\r\n }),\r\n padding: [2, 5, 2, 5],\r\n ...(cg.labelStyle || {})\r\n }\r\n if(cg.labelStyle && cg.labelStyle.fill){\r\n textStyle['fill'] = new ol.style.Fill({\r\n color: cg.labelStyle.fill\r\n })\r\n }\r\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\r\n textStyle['backgroundFill'] = new ol.style.Fill({\r\n color: cg.labelStyle.backgroundFill\r\n })\r\n }\r\n text = new ol.style.Text(textStyle)\r\n }\r\n if (text) {\r\n gc.setStyle(new ol.style.Style({\r\n image: icon,\r\n text,\r\n }))\r\n } else {\r\n gc.setStyle(new ol.style.Style({\r\n image: icon,\r\n }))\r\n }\r\n }\r\n gc.setGeometry(new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]));\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: { ...item, other: item },\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude)\r\n },\r\n source: gp.source\r\n }\r\n );\r\n } else {\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.refresh();\r\n }\r\n // 更新图层\r\n refresh(){\r\n const t = this;\r\n let timer = setTimeout(()=>{\r\n clearTimeout(timer);\r\n window.VtxMap[t.props.mapId].redrawText();\r\n },100)\r\n }\r\n // 添加先\r\n addLine(mapLines, type) {\r\n let t = this;\r\n let ls = [];\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n });\r\n let polyline = new ol.Feature({\r\n geometry: new ol.geom.LineString(item.paths),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n polyline.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polyline],\r\n name: 'polyline',\r\n id: item.id,\r\n })\r\n let lineLayer = new ol.layer.Vector({\r\n name: 'polyline',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(lineLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polyline).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: source,\r\n });\r\n ls.push(polyline);\r\n lsids.push(item.id);\r\n t.state.lineIds.push(item.id);\r\n });\r\n if (type !== 'defined') {\r\n t.state.lineIds = lsids;\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines) {\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let 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 let gc = this.GM.getGraphic(item.id);\r\n let gp = this.GM.getGraphicParam(item.id);\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n zIndex: cg.zIndex || 0,\r\n }),\r\n });\r\n gc.setStyle(() => {\r\n return style\r\n })\r\n gc.setGeometry(new ol.geom.LineString(pts));\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: gp.source,\r\n });\r\n } else {\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons) {\r\n let t = this;\r\n let pgs = [];\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let polygon = new ol.Feature({\r\n geometry: new ol.geom.Polygon([item.rings]),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'polygon',\r\n });\r\n polygon.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polygon],\r\n id: item.id,\r\n })\r\n let polygonLayer = new ol.layer.Vector({\r\n name: 'polygon',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(polygonLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polygon).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source\r\n });\r\n pgs.push(polygon);\r\n pgsids.push(item.id);\r\n });\r\n t.state.polygonIds = pgsids;\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons) {\r\n let t = this;\r\n mapPolygons.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(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 };\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n gc.setGeometry(new ol.geom.Polygon([pts]));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source: gp.source\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, type) {\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if (type) {\r\n ccsids = [...t.state.drawIds[type]];\r\n }\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 const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n let circle = new ol.Feature({\r\n geometry: new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'circle'\r\n });\r\n circle.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [circle],\r\n name: 'circle',\r\n id: item.id,\r\n });\r\n let circleLayer = new ol.layer.Vector({\r\n name: 'circle',\r\n id: item.id,\r\n source\r\n });\r\n t.state.gis.addLayer(circleLayer);\r\n ccsids.push(item.id);\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: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source\r\n });\r\n });\r\n //添加绘制点\r\n if (type) {\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n } else {\r\n t.state.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 } else {\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(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 metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n gc.setGeometry(new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\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: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source: gp.source,\r\n });\r\n });\r\n //刷新图元\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 let gp = t.GM.getGraphicParam(id);\r\n //刪除label\r\n if (t.Label[id]) {\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if (!!graphic) {\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n // const layers = t.state.gis.getLayers().getArray();\r\n // const layer = layers.filter(item => item.getProperties().name == type)[0];\r\n gp.source.removeFeature(graphic);\r\n // layer && layer.getSource().removeFeature(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n t.GM.removeGraphicParam(id);\r\n if(t.state.gis.getOverlayById(id)){\r\n t.state.gis.removeOverlay(t.state.gis.getOverlayById(id))\r\n }\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 //清空地图\r\n clearAll() {\r\n let t = this;\r\n const { gis } = t.state;\r\n const layers = gis.getLayers();\r\n //清空热力图\r\n if (t.heatmap) {\r\n let hMap = layers.filter(item => item.name == 'heatMap')[0];\r\n hMap.getSource().clear();\r\n gis.removeLayer(layer);\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n\r\n t.state.pointIds = [];\r\n t.pointLayers.map(item => {\r\n gis.removeLayer(item.layer)\r\n t.pointLayers = [];\r\n })\r\n\r\n t.clearAllPointCollection();\r\n t.closeDraw();\r\n if(t.clusterInfo.clusterHulls || t.clusterInfo.clusters || t.clusterInfo.clusterCircles){\r\n t.clusterHulls.getSource().clear();\r\n t.clusterInfo.clusterSource = null;\r\n gis.removeLayer(t.clusterInfo.clusterHulls);\r\n gis.removeLayer(t.clusterInfo.clusters);\r\n gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterHulls= null;\r\n t.clusterInfo.clusters = null;\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //循环所有id删除\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for (let i = 0; i < ps.length; i++) {\r\n t.removeGraphic(ps[i], 'point');\r\n }\r\n // 删除线\r\n for (let i = 0; i < ls.length; i++) {\r\n t.removeGraphic(ls[i], 'line');\r\n }\r\n // 删除面\r\n for (let i = 0; i < pgs.length; i++) {\r\n t.removeGraphic(pgs[i], 'polygon');\r\n }\r\n // 删除圆\r\n for (let i = 0; i < cs.length; i++) {\r\n t.removeGraphic(cs[i], 'circle');\r\n }\r\n //删除绘制的点\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n for (let i = 0; i < point.length; i++) {\r\n t.removeGraphic(point[i]);\r\n }\r\n for (let i = 0; i < polyline.length; i++) {\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for (let i = 0; i < polygon.length; i++) {\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for (let i = 0; i < circle.length; i++) {\r\n t.removeGraphic(circle[i]);\r\n }\r\n for (let i = 0; i < rectangle.length; i++) {\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(props) {\r\n let t = this;\r\n const { gis } = t.state;\r\n const config = props.showControl ;\r\n if (t.scaleControl) {\r\n gis.removeControl(t.scaleControl);\r\n }\r\n t.scaleControl = new ol.control.ScaleLine({\r\n units: 'metric',\r\n //设置度量单位\r\n className: `ol-scale-line-${config.location}`\r\n });\r\n gis.addControl(t.scaleControl);\r\n setTimeout(function (){\r\n if(config.location == 'tl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'bl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'tr'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'br'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }\r\n }, 20)\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction) {\r\n let t = this;\r\n let { _extent: _et } = t.dealData(areaRestriction);\r\n t.areaRestriction = t.state.gis.getView().setProperties({\r\n extent: [_et.xmax, _et.ymax, _et.xmin, _et.ymin],\r\n }, false);\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction() {\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e) {\r\n let t = this;\r\n //如果在区域内,不处理\r\n if (t.areaRestriction.contains(e.extent.getCenter())) {\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return;\r\n // }\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = t.areaRestriction;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e.extent;\r\n let x = e.extent.getCenter().x,\r\n y = e.extent.getCenter().y;\r\n if (x < xmin1) x = xmin1 + 0.1;\r\n if (x > xmax1) x = xmax1 - 0.1;\r\n if (y < ymin1) y = ymin1 + 0.1;\r\n if (y > ymax1) y = ymax1 - 0.1;\r\n t.state.gis.getView().setCenter([x, y]);\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n t.state.pointIds = [];\r\n t.pointLayers.map(item => {\r\n t.state.gis.removeLayer(item.layer);\r\n t.pointLayers=[];\r\n })\r\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n // return !item && item != 0 ? false : true;\r\n return item && item.getGeometry().getType() === 'Point' && !item.label;\r\n });\r\n const source = new ol.source.Vector({\r\n features: ms\r\n })\r\n t.clusterInfo.clusterSource = new ol.source.Cluster({\r\n distance: 80,\r\n minDistance: 0,\r\n source,\r\n });\r\n t.clusterInfo.clusterHulls = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterHullStyle,\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterHulls);\r\n t.clusterInfo.clusters = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterStyle,\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusters);\r\n t.clusterInfo.clusterCircles = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterCircleStyle,\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterCircles);\r\n function clusterMemberStyle(clusterMember) {\r\n let style = clusterMember.getStyle();\r\n let image = style&&style.getImage ? style.getImage() : null;\r\n return new ol.style.Style({\r\n geometry: clusterMember.getGeometry(),\r\n image: image\r\n });\r\n }\r\n function clusterCircleStyle(cluster, resolution) {\r\n if (cluster !== t.clusterInfo.clickFeature || resolution !== t.clusterInfo.clickResolution) {\r\n return;\r\n }\r\n const clusterMembers = cluster.get('features');\r\n const centerCoordinates = cluster.getGeometry().getCoordinates();\r\n return generatePointsCircle(\r\n clusterMembers.length,\r\n cluster.getGeometry().getCoordinates(),\r\n resolution,\r\n ).reduce((styles, coordinates, i) => {\r\n const point = new ol.geom.Point(coordinates);\r\n const line = new ol.geom.LineString([centerCoordinates, coordinates]);\r\n styles.unshift(\r\n new ol.style.Style({\r\n geometry: line,\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(204, 85, 0, 1)',\r\n width: 1.5,\r\n }),\r\n }),\r\n );\r\n styles.push(\r\n clusterMemberStyle(\r\n new ol.Feature({\r\n ...clusterMembers[i].getProperties(),\r\n geometry: point,\r\n }),\r\n ),\r\n );\r\n return styles;\r\n }, []);\r\n }\r\n function generatePointsCircle(count, clusterCenter, resolution) {\r\n const circumference = 1 * 28 * (2 + count);\r\n let legLength = circumference / (Math.PI * 2); //radius from circumference\r\n const angleStep = (Math.PI * 2) / count;\r\n const res = [];\r\n let angle;\r\n legLength = Math.max(legLength, 35) * resolution; // Minimum distance to get outside the cluster icon.\r\n for (let i = 0; i < count; ++i) {\r\n // Clockwise, like spiral.\r\n angle = Math.PI / 2 + i * angleStep;\r\n res.push([\r\n clusterCenter[0] + legLength * Math.cos(angle),\r\n clusterCenter[1] + legLength * Math.sin(angle),\r\n ]);\r\n }\r\n return res;\r\n }\r\n function clusterHullStyle(cluster) {\r\n if (cluster !== t.clusterInfo.hoverFeature) {\r\n return;\r\n }\r\n const originalFeatures = cluster.get('features');\r\n const points = originalFeatures.map(feature => feature.getGeometry().getCoordinates());\r\n return new ol.style.Style({\r\n geometry: new ol.geom.Polygon(points),\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 153, 0, 0.4)',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(204, 85, 0, 1)',\r\n width: 1.5,\r\n }),\r\n });\r\n }\r\n function clusterStyle(feature) {\r\n const size = feature.get('features').length;\r\n if (size > 1) {\r\n return [\r\n new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: 20,\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 153, 102, 0.3)',\r\n }),\r\n }),\r\n }),\r\n new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: 14,\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 165, 0, 0.7)',\r\n }),\r\n }),\r\n text: new ol.style.Text({\r\n text: size.toString(),\r\n fill: new ol.style.Fill({\r\n color: '#fff',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(0, 0, 0, 0.6)',\r\n width: 3,\r\n }),\r\n }),\r\n }),\r\n ];\r\n } else {\r\n const originalFeature = feature.get('features')[0];\r\n return clusterMemberStyle(originalFeature);\r\n }\r\n }\r\n }\r\n clearCluster(){\r\n const t = this;\r\n if(t.clusterInfo.clusterHulls){\r\n t.state.gis.removeLayer(t.clusterInfo.clusterHulls);\r\n t.clusterInfo.clusterHulls = null;\r\n }\r\n if(t.clusterInfo.clusters){\r\n t.state.gis.removeLayer(t.clusterInfo.clusters);\r\n t.clusterInfo.clusters = null;\r\n }\r\n if(t.clusterInfo.clusterCircles){\r\n t.state.gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n t.props.mapPoints.map(item=>{\r\n if(t.GM.getGraphic(item.id)){\r\n t.GM.removeGraphic(item.id);\r\n }\r\n })\r\n t.addPoint(t.props.mapPoints)\r\n t.refresh();\r\n }\r\n /*公共方法*/\r\n //判断extent1是否在extent2内部\r\n containsExtent(e1, e2) {\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = e1;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e2;\r\n return xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1;\r\n }\r\n //将图元z-index设置成最高\r\n czIndex(id) {\r\n let t = this;\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\r\n }\r\n equalsPoint(a, b) {\r\n return a.x == b.x && a.y == b.y;\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp, ep) {\r\n console.log(fp, ep)\r\n let distance = ol.sphere.getDistance(fp, ep);\r\n console.log(distance)\r\n return Math.round(distance);\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps) {\r\n let t = this,\r\n totalDistance = 0;\r\n if (ps.length < 0) {\r\n return 0;\r\n }\r\n for (let i = 0; i < ps.length; i++) {\r\n if (i < ps.length - 1) {\r\n const distance = t.calculatePointsDistance(ps[i], ps[i + 1])\r\n console.log(distance)\r\n totalDistance += distance;\r\n }\r\n }\r\n console.log(totalDistance)\r\n return Math.round(totalDistance * 100) / 100;\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(paths) {\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],\r\n _extent = { xmax: 0, xmin: 0, ymax: 0, ymin: 0 },\r\n path = [];\r\n path = paths.map((item, index) => {\r\n let lng = item[0],\r\n lat = item[1];\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 return { lnglatAry, _extent, path };\r\n }\r\n //处理点位图元的添加 和 更新\r\n dealLabelGraphics(id, label) {\r\n let t = this;\r\n if (label) {\r\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\r\n //经纬度转top和left\r\n let tl = t.state.gis.toScreen(position),\r\n lbl = { ...label };\r\n //渲染優化\r\n if (\r\n !(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)\r\n ) {\r\n //设置label的位置(通过定位来实现)\r\n label.html.css({\r\n position: 'absolute',\r\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x,\r\n });\r\n //添加点位到(地图)\r\n $(`#${t.htmlPointsId}`).append(label.html);\r\n lbl.add = true;\r\n } else {\r\n lbl.add = false;\r\n }\r\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\r\n t.Label[id] = lbl;\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id, marker) {\r\n let t = this;\r\n //null时关闭跳动\r\n if (!!marker) {\r\n if (t.animTimer[id]) {\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(() => {\r\n //点被隐藏时,没有执行,定时不关\r\n if (marker.symbol) {\r\n let shape = { ...marker.symbol };\r\n //初始数据 点位有变动,重新刷新数据\r\n if (!t.animCount[id] || shape.yoffset != t.animCount[id].now) {\r\n t.animCount[id] = {\r\n start: shape.yoffset,\r\n now: shape.yoffset,\r\n notation: -1,\r\n };\r\n }\r\n if (t.animCount[id].now - t.animCount[id].start == 20) {\r\n t.animCount[id].notation = -1;\r\n }\r\n if (t.animCount[id].now - t.animCount[id].start == 0) {\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.yoffset = t.animCount[id].now =\r\n t.animCount[id].now + t.animCount[id].notation * 2;\r\n marker.symbol.setOffset(shape.xoffset, shape.yoffset);\r\n t.state.gis.graphics.refresh();\r\n }\r\n }, 35);\r\n } else {\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation() {\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(() => {\r\n for (let i = 0; i < t.movePoints.length; i++) {\r\n t.movePoints[i].waitTime += 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),\r\n deleteIndex = [];\r\n for (let i = 0; i < nowMovePoints.length; i++) {\r\n let { id, rx, ry, waitTime, deleteTime, ddeg } = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if (!gc || !gc._graphicsLayer) {\r\n clearInterval(t.moveToTimer);\r\n } else {\r\n let gg = gc.getGeometry();\r\n let tx = gg[0] + rx, ty = gg[1] + ry;\r\n gc.setGeometry([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 //点位移动动画效果\r\n moveTo(id, lnglat, delay, autoRotation, urlright, urlleft) {\r\n delay = delay || 3;\r\n let t = this,\r\n timer = 10;\r\n delay = eval(delay) * 1000;\r\n let count = delay / timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.geometry,\r\n e = { x: lnglat[0], y: lnglat[1] };\r\n if (t.equalsPoint(s, e)) {\r\n return false;\r\n } else {\r\n let ddeg = 0,\r\n url = null;\r\n //计算角度,旋转\r\n if (autoRotation) {\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.geometry, 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 gc.setStyle(new ol.style.Style({\r\n image: new ol.style.Icon({\r\n src: url,\r\n rotation: Math.PI / 180 * ddeg,\r\n })\r\n }))\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.x - s.x) / count,\r\n ry = (e.y - s.y) / 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,\r\n rx,\r\n 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,\r\n rx,\r\n ry,\r\n waitTime: 0,\r\n deleteTime: delay,\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp, ep) {\r\n let t = this;\r\n let spLngLat = sp;\r\n if (Array.isArray(sp)) {\r\n spLngLat = new ol.geom.Point(sp[0], sp[1]);\r\n }\r\n let s = t.state.gis.getPixelFromCoordinate(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.getPixelFromCoordinate(new ol.geom.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 } 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) bias = -1;\r\n else bias = 1;\r\n if (disy == 0) bias = 0;\r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a, b) {\r\n return Immutable.is(Immutable.fromJS(a), Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData, newData, type) {\r\n let onlyOldData = Set(oldData)\r\n .subtract(Set(newData))\r\n .toJS();\r\n let onlyNewData = Set(newData)\r\n .subtract(Set(oldData))\r\n .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)\r\n .intersect(Set(onlyNewIDs))\r\n .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 = [],\r\n 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 = [],\r\n otherads = [];\r\n for (let i = 0; i < ary.length; i++) {\r\n if (ids.indexOf(ary[i].id) > -1) {\r\n upds.push(ary[i]);\r\n } else {\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return { upds, otherads };\r\n }\r\n\r\n render() {\r\n let t = this;\r\n let _map = this.props;\r\n return <div id={_map.mapId} style={{ width: '100%', height: '100%' }}></div>;\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 componentWillReceiveProps(nextProps, prevProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [], mapLines = [], mapPolygons = [], mapCircles = [], customizedBoundary = [],\r\n isOpenTrafficInfo, boundaryName, heatMapData,\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, olProps\r\n } = nextProps;\r\n // 等待地图加载\r\n if (!t.state.mapCreated) return;\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if (mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints, t.props.mapPoints)) {\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if (!!t.editId) {\r\n oldMapPoints = t.props.mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n newMapPoints = mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPoints, newMapPoints, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...pointIds, ...point]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...pointIds, ...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'point');\r\n }\r\n //增加\r\n t.addPoint([...ads, ...otherads]);\r\n //更新\r\n t.updatePoint([...upds, ...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines, t.props.mapLines)) {\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if (!!t.editId) {\r\n oldMapLines = t.props.mapLines.filter((item) => { return item.id !== editGraphicId });\r\n newMapLines = mapLines.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapLines, newMapLines, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...lineIds, ...polyline]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...lineIds, ...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'line');\r\n }\r\n //增加\r\n t.addLine([...ads, ...otherads]);\r\n //更新\r\n t.updateLine([...upds, ...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons, t.props.mapPolygons)) {\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if (!!t.editId) {\r\n oldMapPolygons = t.props.mapPolygons.filter((item) => { return item.id !== editGraphicId });\r\n newMapPolygons = mapPolygons.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPolygons, newMapPolygons, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...rectangle, ...polygon, ...polygonIds]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...rectangle, ...polygon, ...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads, ...otherads]);\r\n //更新\r\n t.updatePolygon([...upds, ...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles, t.props.mapCircles)) {\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if (!!t.editId) {\r\n oldMapCircles = t.props.mapCircles.filter((item) => { return item.id !== editGraphicId });\r\n newMapCircles = mapCircles.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapCircles, newMapCircles, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...circleIds, ...circle]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...circleIds, ...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads, ...otherads]);\r\n //更新\r\n t.updateCircle([...upds, ...otherupds]);\r\n }\r\n //图元编辑调用\r\n if ((typeof (isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)) {\r\n t.doEdit(editGraphicId);\r\n }\r\n // 获取热力图\r\n if (heatMapData && heatMapData.data && !t.deepEqual(heatMapData, t.props.heatMapData)) {\r\n t.heatMapOverlay(heatMapData);\r\n }else if(!t.deepEqual(heatMapData, t.props.heatMapData)){\r\n t.clearHeatMap(heatMapData);\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 (isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)) {\r\n t.vtxRangingTool(mapRangingTool);\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 (setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)) {\r\n // if (!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])) {\r\n // t.setCenter(mapCenter);\r\n // }\r\n // }\r\n if(nextProps.mapCenter &&nextProps.mapCenter.length>0 && JSON.stringify(nextProps.mapCenter)!==JSON.stringify(this.props.mapCenter)){\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 }else if(setCluster !== t.props.setCluster){\r\n t.clearCluster();\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 (isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)) {\r\n mapRemove.map((item, index) => {\r\n t.removeGraphic(item.id, item.type);\r\n });\r\n }\r\n //设置区域限制\r\n if ((typeof (isSetAreaRestriction) == 'boolean' && isSetAreaRestriction)\r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction)\r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if ((typeof (isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)) {\r\n t.clearAreaRestriction();\r\n }\r\n // 设置地图层级\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\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.olProps && JSON.stringify(nextProps.olProps) !== JSON.stringify(t.props.olProps)) {\r\n t.loadLayers(nextProps.olProps.olCoverage, t.props.olProps.olCoverage);\r\n }\r\n }\r\n // 地图事件\r\n //地图点击事件\r\n clickMap(e) {\r\n let t = this;\r\n if (typeof t.props.clickMap === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: e.coordinate ? e.coordinate[0] : undefined,\r\n lat: e.coordinate ? e.coordinate[1] : undefined,\r\n };\r\n obj.pixel = {\r\n x: e.pixel ? e.pixel[0] : undefined,\r\n y: e.pixel ? e.pixel[1] : undefined,\r\n };\r\n t.props.clickMap(obj);\r\n }\r\n }\r\n // 要素鼠标悬浮事件\r\n mouseOverGraphic(id, e) {\r\n let t = this;\r\n if (t.state.editId == id) return false;\r\n if (typeof t.props.mouseOverGraphic === 'function') {\r\n let obj = {\r\n e,\r\n id,\r\n param: t.getGraphic(id),\r\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\r\n left: e.pixel ? e.pixel[1] : undefined,\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,\r\n id,\r\n param: t.getGraphic(id),\r\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\r\n left: e.pixel ? e.pixel[1] : undefined,\r\n };\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(e) {\r\n let t = this;\r\n if (typeof t.props.dragMapStart === 'function') {\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 dragMapEnd(e) {\r\n let t = this;\r\n if (typeof t.props.dragMapEnd === 'function') {\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 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 gradient: ['#00f', '#0ff', '#0f0', '#ff0', '#f00'],\r\n };\r\n if (d.config) {\r\n cg = { ...cg, ...d.config };\r\n }\r\n let gradient = [];\r\n if (cg.gradient) {\r\n for (let key in cg.gradient) {\r\n gradient.push(cg.gradient[key])\r\n }\r\n cg.gradient = gradient;\r\n }\r\n // if(d.data){\r\n // t.state.pointIds = [];\r\n // t.pointLayers.map(item => {\r\n // t.state.gis.removeLayer(item.layer);\r\n // t.pointLayers=[];\r\n // })\r\n // }\r\n const heatData = {\r\n type: 'FeatureCollection',\r\n features: (d.data || []).map(item => {\r\n return {\r\n type: 'Feature',\r\n properties: {\r\n weight: item.count ? item.count / 100 : 0.5,\r\n },\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [item.lng, item.lat],\r\n }\r\n }\r\n })\r\n }\r\n let heatSource = new ol.source.Vector({\r\n features: new ol.format.GeoJSON().readFeatures(heatData)\r\n })\r\n t.heatmap = new ol.layer.Heatmap({\r\n name: 'heatmap',\r\n source: heatSource,\r\n radius: cg.radius,\r\n visible: cg.visible,\r\n blur: eval(cg.opacity) * 100,\r\n gradient: gradient,\r\n weight: (e) => {\r\n return e.getProperties().count;//根据权重展示热力图!关键点,weight范围为:0-1!!!\r\n },\r\n });\r\n t.state.gis.addLayer(t.heatmap);\r\n\r\n }\r\n clearHeatMap(){\r\n const t = this;\r\n if(t.heatmap)\r\n t.state.gis.removeLayer(t.heatmap);\r\n t.heatmap = null;\r\n t.refresh();\r\n }\r\n //地图移动之前事件\r\n moveStart(e) {\r\n let t = this;\r\n if (typeof t.props.moveStart === 'function') {\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 moveEnd(e) {\r\n let t = this;\r\n if (typeof t.props.moveEnd === 'function') {\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 zoomStart(e) {\r\n let t = this;\r\n if (typeof (t.props.zoomStart) === 'function') {\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 zoomEnd(e) {\r\n let t = this;\r\n if (typeof (t.props.zoomEnd) === 'function') {\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 clickGraphic(id, e, target = {}) {\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if (t.editId == id) return false;\r\n if (typeof t.props.clickGraphic === 'function') {\r\n const [clientX, clientY] = e.pixel;\r\n let param = t.getGraphic(id, clientX, clientY);\r\n let obj = {\r\n param,\r\n info: target,\r\n type: param ? param.geometry.type : null, //图元类型\r\n attributes: param ? { ...param.attributes.other, ...{ config: param.attributes.config } } : null, //添加时图元信息\r\n top: clientY, //当前点所在的位置(屏幕)\r\n left: clientX,\r\n e: e,\r\n };\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for (let j in t.animTimer) {\r\n if (t.animTimer[j]) {\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\r\n }\r\n}\r\nexport default OlMap;\r\n\r\nclass Popup extends React.Component{\r\n constructor(props){\r\n super();\r\n this.map = props.map;\r\n this.position = props.position;\r\n this.overlay = null;\r\n this.container = null;\r\n this.innerHTML = props.innerHTML;\r\n this.closeble = props.close;\r\n }\r\n \r\n // 弹出框\r\n showPopup () {\r\n const t = this;\r\n this.removePopup()\r\n // 获取弹出层DOM\r\n t.container = document.createElement(\"div\");\r\n t.container['className'] = \"ol-popup\";\r\n if(t.closeble){\r\n let close = document.createElement(\"a\");\r\n close['className'] = \"ol-popup-closer\";\r\n close.addEventListener(\"click\",(e)=>{\r\n t.removePopup();\r\n })\r\n t.container.appendChild(close);\r\n }\r\n let content = document.createElement(\"div\");\r\n t.container.appendChild(content);\r\n if (t.overlay) {\r\n } else {\r\n // 创建Overlay弹出层绑定DOM\r\n t.overlay = new ol.Overlay({\r\n element: t.container,\r\n autoPan: {\r\n animation: {\r\n duration: 250\r\n }\r\n }\r\n })\r\n // 添加到map\r\n t.map.addOverlay(t.overlay)\r\n }\r\n // 弹出层内容\r\n content.innerHTML = t.innerHTML;\r\n // 设置弹出层位置即可出现\r\n t.overlay.setPosition(t.position)\r\n }\r\n // 清除弹出框\r\n removePopup () {\r\n if (this.overlay) {\r\n this.container.remove();\r\n // 设置位置undefined可达到隐藏清除弹出框\r\n this.overlay.setPosition(undefined);\r\n this.overlay = null;\r\n }\r\n }\r\n}\r\n\r\nfunction getRgbColor(color, opacity) {\r\n const reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;\r\n if (!reg.test(color) && typeof(color) !== 'string') {\r\n return;\r\n }\r\n let newStr = color.toLowerCase().replace(/\\#/g, '');\r\n let len = newStr.length;\r\n if (len == 3) {\r\n let t = '';\r\n for (var i = 0; i < len; i++) {\r\n t += newStr.slice(i, i + 1).concat(newStr.slice(i, i + 1));\r\n }\r\n newStr = t;\r\n }\r\n let arr = []; //将字符串分隔,两个两个的分隔\r\n for (var i = 0; i < 6; i = i + 2) {\r\n let s = newStr.slice(i, i + 2);\r\n arr.push(parseInt('0x' + s));\r\n }\r\n return 'rgba(' + arr.join(',') + ',' + opacity + ')';\r\n}\r\n\r\n// 压缩图片的方法\r\nfunction canvasDataURL(path, obj, callback) {\r\n var img = new Image();\r\n img.src = path;\r\n img.setAttribute(\"crossOrigin\", 'Anonymous')\r\n img.onload = function () {\r\n var that = this;\r\n // 默认按比例压缩\r\n var w = that.width,\r\n h = that.height,\r\n scale = w / h;\r\n w = obj.width || w;\r\n h = obj.height || (w / scale);\r\n var quality = 0.7; // 默认图片质量为0.7\r\n //生成canvas\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n // 创建属性节点\r\n var anw = document.createAttribute(\"width\");\r\n anw.nodeValue = w;\r\n var anh = document.createAttribute(\"height\");\r\n anh.nodeValue = h;\r\n canvas.setAttributeNode(anw);\r\n canvas.setAttributeNode(anh);\r\n ctx.drawImage(that, 0, 0, w, h);\r\n // 图像质量\r\n if (obj.quality && obj.quality <= 1 && obj.quality > 0) {\r\n quality = obj.quality;\r\n }\r\n // quality值越小,所绘制出的图像越模糊\r\n var base64 = canvas.toDataURL('image/png', quality);\r\n // 回调函数返回base64的值\r\n callback(base64);\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Map.js","names":["Set","Immutable","OlMap","props","nextLayers","currentLayers","first","t","addLayers","filter","item","map","e","coverage","includes","removeLayers","length","forEach","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","addGeoServerImageLayer","OL_SCREEN","layers","eval","initLayer","isArray","state","gis","addLayer","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","loadMapJs","loadMapComplete","Promise","resolve","reject","window","$","getScript","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","then","attr","rel","href","appendTo","createMap","ol","source","Vector","wrapX","initData","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","setCenter","Array","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","setState","event","status","overall_feature","dragAddMoveFlag","on","getTargetElement","classList","add","remove","evt","forEachFeatureAtPixel","pixel","target","getProperties","clickGraphic","id","elementId","clickMap","getEventPixel","originalEvent","hit","hasFeatureAtPixel","style","cursor","values","mouseOverGraphic","dispatchEvent","mouseOutGraphic","dragMapStart","moveStart","zoom","dragMapEnd","moveEnd","zoomStart","setTimeout","zoomEnd","center","olProps","mapCenter","mapZoomLevel","minZoom","maxZoom","projection","olCoverage","VtxMap","parseFloat","Map","toString","view","View","controls","control","defaults","rotate","attribution","loadLayers","initPropsForUser","url","Tile","TileSuperMapRest","push","vectorSource","format","GeoJSON","extent","join","strategy","loadingstrategy","bbox","el","A","icon","JSON","parse","mapIcon","require","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","param","split","json","toUpperCase","decodeURIComponent","formatUrl","ImageWMS","serverType","crossOrigin","ratio","params","VERSION","Image","getCenter","gt","getZoomLevel","obj","showInfoWindow","hideInfoWindow","refresh","c","lng","lat","getView","animate","duration","z","getZoom","setZoom","calculateExtent","getSize","xmin","ymin","xmax","ymax","gc","getGraphic","gp","getGraphicParam","endEdit","interaction","Modify","addInteraction","features","geometry","cur","flatCoordinates","attributes","longitude","latitude","other","geometryType","mapLayer","oddList","evenList","index","path","dealData","lnglatAry","_extent","paths","calculateDistance","rings","area","sketchCoords_","sketchCoords_2","radius","sphere","getDistance","Math","PI","pow","editGraphicChange","setGraphic","setGraphicParam","removeInteraction","parameter","data","Date","getTime","len","indexOf","removeGraphic","splice","anchor","markerContentX","markerContentY","anchorXUnits","anchorYUnits","opacity","geometryFunction","stoke","lineWidth","lineDash","lineType","undefined","pellucidity","getRgbColor","Draw","createBox","finishDrawing","getGeometry","isRepetition","updatePoint","config","height","updateLine","updatePolygon","getCoordinates","updateCircle","drawEnd","Circle","createHelpTooltip","createMeasureTooltip","createDeleteTooltip","tooltipCoord","coordinate","geom","lngLats","output","formatLength","getLastCoordinate","lnglats","innerHTML","setPosition","setOffset","className","Observable","unByKey","parentNode","removeChild","document","createElement","Overlay","element","offset","positioning","addOverlay","stopEvent","insertFirst","addEventListener","removeOverlay","removeLayer","n","round","nowBounds","southWest","northEast","nowCenter","mapSize","arg","ary","fitView","concat","i","g","displayRange","boundingExtent","fit","ids","maxX","maxY","minX","minY","coord","boundsArry","getExtent","min","max","bounds","gg","p","pts","domStr","domObj","childNodes","d","getPixelFromCoordinate","options","size","shape","VotexpointCollection","GMapLib","value","ds","ind","reDraw","clear","popupWindow","Popup","position","content","close","showPopup","removePopup","ps","psids","console","warn","Feature","Point","name","cg","labelContent","labelPixelX","labelPixelY","zIndex","deg","txt","myImage","markerContent","nodes","parseDom","clientX","clientY","pop","autoPanMargin","autoPan","canvasDataURL","base64","img","imgSize","canShowLabel","textStyle","textAlign","textBaseline","font","text","offsetX","offsetY","backgroundFill","padding","labelStyle","Text","setStyle","pointLayer","BAnimationType","marker","setAnimation","BMAP_ANIMATION_BOUNCE","BMAP_ANIMATION_DROP","overlay","getOverlayById","setElement","changed","rotation","setGeometry","timer","clearTimeout","redrawText","ls","lsids","isHidden","LineString","lineLayer","itt","pgs","pgsids","lineColor","lineOpacity","Polygon","polygonLayer","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeFeature","removeGraphicParam","getLayers","hMap","getSource","clearAllPointCollection","closeDraw","clearAll","cs","removeControl","ScaleLine","units","location","addControl","css","left","top","bottom","right","_et","setProperties","contains","xmin1","xmax1","ymin1","ymax1","xmin2","xmax2","ymin2","ymax2","Object","prototype","apply","ms","getMoreGraphic","getType","label","Cluster","minDistance","clusterHullStyle","clusterStyle","clusterCircleStyle","clusterMemberStyle","clusterMember","getStyle","getImage","resolution","clusterMembers","get","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","res","angle","cos","sin","originalFeatures","originalFeature","e1","e2","append","getNode","a","b","fp","ep","log","totalDistance","calculatePointsDistance","lngX","latX","tl","toScreen","lbl","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","ddeg","_graphicsLayer","tx","ty","lnglat","delay","autoRotation","urlright","urlleft","s","equalsPoint","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","init","nextProps","prevProps","customizedBoundary","isOpenTrafficInfo","boundaryName","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","oldMapPoints","newMapPoints","dataMatch","dealAdd","dealUpdate","oldMapLines","newMapLines","oldMapPolygons","newMapPolygons","oldMapCircles","newMapCircles","doEdit","clearHeatMap","vtxRangingTool","stringify","clearCluster","clearAreaRestriction","getMapExtent","clickLngLat","temp","getFeatureInfo","getFeatureInfoUrl","getResolution","cql_filter","params_","QUERY_LAYERS","INFO_FORMAT","REQUEST","FEATURE_COUNT","LAYERS","key","geoJsonFormat","fetch","readFeatures","visible","gradient","heatData","properties","weight","heatSource","Heatmap","blur","info","j","React","Component","container","closeble","appendChild","animation","reg","test","newStr","toLowerCase","replace","arr","parseInt","callback","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL"],"sources":["VtxMap/OlMap/Map.js"],"sourcesContent":["import React from 'react';\r\n\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\nimport { graphicManage, getPolygonArea } from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport { isArray } from 'lodash';\r\nconst { Set } = Immutable;\r\n\r\nclass OlMap extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.zIndexGraphics = []; //需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points'; //html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection'; //海量点canvas点位容器id class管理\r\n this.Label = {}; //所有label 集合\r\n this.labelLayer = { x: 0, y: 0 }; //label图层 位置管理\r\n this.viewer = null;\r\n this.GM = new graphicManage(); //初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.layer = null; //保存地图图层数据\r\n this.loadTimer = null; //初始化地图 load时延缓数据处理\r\n this.animTimer = {}; //点位跳动动画 定时集合\r\n this.animCount = {}; //点位跳动动画 定时计数\r\n this.moveToTimer = null; //moveTo时间对象\r\n this.drawToolbar = null; //地图绘制对象即interaction\r\n this.drawParam = {}; //缓存 绘制的数据\r\n this.editToolbar = null; //编辑对象\r\n this.editId = ''; //当前编辑的图元id\r\n this.drawSource = null;\r\n this.drawVector = null;\r\n // 图元绘制保存\r\n this.drawInfo = {\r\n sketch: null,\r\n listener: null,\r\n };\r\n this.scaleControl = null;\r\n this.pointLayers = [];\r\n this.mouseNowPosition = { x: 0, y: 0, px: 0, py: 0, isCount: false };\r\n this.heatmap = null; //热力图对象\r\n this.clusterMarkers = []; //聚合点位id数组\r\n this.clusterPs = []; //聚合集合点\r\n this.clusterPt = []; //地图中聚合点集合\r\n this.morepoints = []; //海量点集合\r\n this.areaRestriction = null; //区域限制数据\r\n this.movePoints = [];\r\n this.olLayers = []; // ol图层集合 {address:'', layer: ''}\r\n this.baseLayer = null; // 地图图层\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false, //是否开启状态\r\n line: {}, //线\r\n points: [], //点\r\n distance: 0, //测距长度\r\n mapRangingTool: null, //测距回调\r\n };\r\n this.rangingTools = {}; //测距点线缓存\r\n this.rangingInfo = {\r\n sketch: null,\r\n helpTooltipElement: null,\r\n helpTooltip: null,\r\n measureTooltipElement: null,\r\n measureTooltip: null,\r\n deleteToolTipElement: null,\r\n deleteToolTip: null,\r\n continuePolygonMsg: '点击继续绘制图形',\r\n continueLineMsg: '点击继续绘制线',\r\n listener: null,\r\n drawElements: [],\r\n drawLayer: null,\r\n feature: null,\r\n draw: null,\r\n }\r\n this.clusterInfo = {\r\n clickFeature: null,\r\n clickResolution: null,\r\n hoverFeature: null,\r\n clusterSource: null,\r\n clusterHulls: null,\r\n clusters: null,\r\n clusterCircles: null,\r\n };\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 editGraphic: '', //当前编辑完后图元所有数据\r\n boundaryInfo: [], //当前画出的边界线的id和区域名\r\n drawIds: {\r\n //绘制工具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 // 引入ol样式\r\n loadMapJs() {\r\n this.loadMapComplete = new Promise((resolve, reject) => {\r\n if (window.OlMap) {\r\n resolve(window.OlMap);\r\n } else {\r\n $.getScript(`${configUrl.openlayerServerURL}/ol.js`, () => {\r\n let PointCollection = new Promise((resolve, reject) => {\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`, () => {\r\n resolve();\r\n });\r\n });\r\n let Client9 = new Promise(function (resolve, reject) {\r\n $.getScript(`${configUrl.openlayerServerURL}/iclient-openlayers.min.js`, function () {\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection,Client9]).then(() => {\r\n resolve(window.OlMap);\r\n })\r\n });\r\n $.getScript(`${configUrl.openlayerServerURL}/bd09.js`);\r\n $.getScript(`${configUrl.openlayerServerURL}/olScreen.js`);\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href:\r\n `${configUrl.openlayerServerURL}/ol.css`,\r\n })\r\n .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 t.drawSource = new ol.source.Vector({ wrapX: false });\r\n t.drawVector = new ol.layer.Vector({ source: t.drawSource });\r\n let initData = () => {\r\n const {\r\n mapPoints,\r\n mapLines,\r\n mapPolygons,\r\n mapCircles,\r\n mapVisiblePoints,\r\n mapCluster,\r\n mapPointCollection,\r\n areaRestriction,\r\n heatMapData\r\n } = t.props;\r\n // 初始化中心点\r\n t.setCenter();\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 (t.props.showControl) {\r\n t.showControl(t.props);\r\n }\r\n // 画热力图\r\n if (heatMapData) {\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if (mapCluster instanceof Array) {\r\n t.cluster(mapCluster);\r\n }\r\n /*设置指定图元展示*/\r\n if (mapVisiblePoints) {\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //添加海量点\r\n if (mapPointCollection instanceof Array) {\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if (areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n t.setState({\r\n mapCreated: true,\r\n });\r\n };\r\n let event = (e, status) => {\r\n const { gis } = t.state;\r\n let overall_feature = null; //鼠标移入事件时记录当前的feature,为鼠标移出要素时保存操作的要素对象\r\n let dragAddMoveFlag = false; //记录地图拖拽和移动事件\r\n // 地图开始加载时\r\n gis.on('loadstart', function () {\r\n gis.getTargetElement().classList.add('spinner');\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n gis.getTargetElement().classList.remove('spinner');\r\n });\r\n // 地图双击事件\r\n gis.on('dbclick', evt => { });\r\n // 地图点击事件\r\n gis.on('singleclick', evt => {\r\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\r\n if (feature) {\r\n let target = feature.getProperties();\r\n // top: e.clientY,//当前点所在的位置(屏幕)\r\n // left: e.clientX,\r\n t.clickGraphic(target.id || target.elementId, evt, target);\r\n } else {\r\n t.clickMap(evt);\r\n }\r\n });\r\n // 鼠标移动事件 - 当鼠标指向要素时改变光标状态\r\n gis.on('pointermove', evt => {\r\n let pixel = gis.getEventPixel(evt.originalEvent);\r\n let hit = gis.hasFeatureAtPixel(pixel);\r\n gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\r\n // 获取到当前鼠标移动下的feature\r\n let feature = gis.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n return feature;\r\n });\r\n if (feature) {\r\n overall_feature = feature;\r\n let values = feature.getProperties();\r\n t.mouseOverGraphic(values.id, evt);\r\n } else {\r\n if (overall_feature) {\r\n overall_feature.dispatchEvent({ type: 'mousein', event: evt });\r\n let values = overall_feature.getProperties();\r\n t.mouseOutGraphic(values.id, evt);\r\n overall_feature = null;\r\n }\r\n }\r\n });\r\n // 鼠标拖拽事件 - 拖拽开始即是地图移动开始\r\n gis.on('pointerdrag', evt => {\r\n dragAddMoveFlag = true;\r\n t.dragMapStart(evt);\r\n t.moveStart(evt);\r\n });\r\n let zoom = 0;\r\n // 地图移动事件 - 移动结束即是拖拽事件结束 也是地图缩放事件(无开始和结束事件)的监听\r\n gis.on('moveend', evt => {\r\n t.dragMapEnd(evt);\r\n t.moveEnd(evt);\r\n t.zoomStart(evt);\r\n setTimeout(() => {\r\n t.zoomEnd(evt);\r\n }, 300);\r\n dragAddMoveFlag = false;\r\n });\r\n // gis.getViewport().addEventListener('mouseout', function () {\r\n // helpTooltipElement.classList.add('hidden');\r\n // });\r\n };\r\n event();\r\n t.setCenter(t.props.center);\r\n initData();\r\n }\r\n // 创建地图\r\n createMap() {\r\n let t = this;\r\n let {\r\n olProps={},\r\n mapCenter = [],\r\n mapId,\r\n mapZoomLevel,\r\n minZoom,\r\n maxZoom,\r\n } = t.props;\r\n let {\r\n projection, // 坐标投影类型 EPSG:4326和EPSG:3857,百度图层使用自定义的'BD:09'\r\n olCoverage\r\n } = olProps;\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n if(!minZoom){\r\n minZoom = 2\r\n }\r\n if(!maxZoom){\r\n maxZoom = 19\r\n }\r\n if(!projection){\r\n projection = 'EPSG:4326'\r\n }\r\n //中心点\r\n let center = mapCenter && mapCenter instanceof Array && mapCenter.length == 2\r\n ? mapCenter\r\n : [116.400433, 39.906705];\r\n center = [parseFloat(center[0]), parseFloat(center[1])];\r\n window.VtxMap[mapId] = t.state.gis = new ol.Map({\r\n target: mapId.toString(),\r\n view: new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n }),\r\n controls: ol.control.defaults({\r\n zoom: false,\r\n rotate: false,\r\n attribution: false\r\n }),\r\n });\r\n // 基本地图视图\r\n t.viewer = new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n })\r\n t.loadLayers(olCoverage, [], true);\r\n t.initPropsForUser();\r\n }\r\n\r\n // 加载图层\r\n loadLayers = (nextLayers = [], currentLayers = [], first = false) => {\r\n const t = this;\r\n // 对比图层的变化,找出需要新增和需要删除的。\r\n const addLayers = nextLayers.filter(item => {\r\n return !currentLayers.map(e => e.coverage).includes(item.coverage)\r\n });\r\n const removeLayers = currentLayers.filter(item => {\r\n return !nextLayers.map(e => e.coverage).includes(item.coverage)\r\n })\r\n if(removeLayers.length > 0) {\r\n removeLayers.forEach(item => {\r\n const exist = t.olLayers.find(e => e.address === item.coverage);\r\n exist && exist.layer.setVisible(false);\r\n })\r\n }\r\n if (addLayers.length > 0) {\r\n addLayers.map(item => {\r\n if(item.coverage.startsWith(\"http\") || item.coverage.startsWith('/')){\r\n switch(item.type) {\r\n // 超图\r\n case 'superMap':\r\n t.addSuperMapLayer(item.coverage);\r\n break;\r\n // geoServer_geoJSON\r\n case 'geoServer':\r\n t.addGeoServerLayer(item.coverage);\r\n // geoServer_image\r\n case 'geoServer_image':\r\n t.addGeoServerImageLayer(item.coverage);\r\n default:\r\n break;\r\n }\r\n }else if (OL_SCREEN[item.coverage]) {\r\n if(first) {\r\n let layers = eval(OL_SCREEN[item.coverage].initLayer);\r\n if(isArray(layers)){\r\n layers.map(layer=>{\r\n t.state.gis.addLayer(layer);\r\n })\r\n }else {\r\n t.state.gis.addLayer(layers);\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n if(first) {\r\n let layer = eval(OL_SCREEN.default.initLayer);\r\n t.state.gis.addLayer(layer);\r\n }\r\n }\r\n }\r\n\r\n // 添加超图图层\r\n addSuperMapLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n const layer = new ol.layer.Tile({\r\n source: new ol.source.TileSuperMapRest({\r\n url\r\n })\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n // 添加geoServer_geoJSON图层\r\n addGeoServerLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n // 矢量数据源\r\n const vectorSource = new ol.source.Vector({\r\n // 设置格式化类型\r\n format: new ol.format.GeoJSON(),\r\n\r\n // url(extent) 在地图范围变化时调用,返回当前的地图范围\r\n url: function (extent) {\r\n return `${url}&bbox=${extent.join(',')}`;\r\n },\r\n strategy: ol.loadingstrategy.bbox,\r\n });\r\n\r\n // 矢量图层\r\n const layer = new ol.layer.Vector({\r\n // 设置数据源\r\n source: vectorSource,\r\n // 设置图层样式也可以 function (feature) { /** 根据内容动态加载样式 **/ return Style}\r\n style: function(feature) {\r\n const el = feature.A || {};\r\n const icon = JSON.parse(el.icon || '[]');\r\n let mapIcon = icon[0]?.id\r\n ? `/cloudFile/common/downloadFile?id=${icon[0].id}`\r\n : require(\"../images/defaultMarker.png\");\r\n return new ol.style.Style({\r\n // 点位图标\r\n image: new ol.style.Icon({\r\n scale: 1,\r\n src: mapIcon,\r\n }),\r\n // 线样式\r\n stroke: new ol.style.Stroke({\r\n color: el.color || '#1890ff',\r\n width: 4\r\n }),\r\n // 面样式\r\n fill: new ol.style.Fill({\r\n color: el.color || 'rgba(255,255,255, 0.5)'\r\n })\r\n })\r\n },\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n formatUrl(url){\r\n let param = {},address=url.split(\"?\")[0];\r\n url.split(\"?\")[1].split(\"&\").map(item=>{\r\n let json = item.split(\"=\")\r\n param[json[0].toUpperCase()] = json[1]?decodeURIComponent(json[1]):'';\r\n })\r\n return {param,address}\r\n }\r\n // 添加geoServer_image图层\r\n addGeoServerImageLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n let {param={},address} = this.formatUrl(url);\r\n // 矢量数据源\r\n const vectorSource = new ol.source.ImageWMS({\r\n url: address,\r\n serverType: 'geoserver',\r\n crossOrigin: '*',\r\n ratio: 1,\r\n params: {\r\n VERSION: '1.1.0',\r\n ...param\r\n },\r\n });\r\n\r\n // 矢量图层\r\n const layer = new ol.layer.Image({\r\n // 设置数据源\r\n source: vectorSource,\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer,\r\n source: vectorSource\r\n });\r\n }\r\n // 初始化对外方法\r\n initPropsForUser(){\r\n const t = this;\r\n t.state.gis[\"getCenter\"] = () => {\r\n return t.getCenter();\r\n }\r\n t.state.gis[\"setCenter\"] = (gt) => {\r\n t.setCenter(gt);\r\n }\r\n t.state.gis[\"getZoomLevel\"] = () => {\r\n return t.getZoomLevel();\r\n }\r\n t.state.gis[\"showInfoWindow\"] = (obj) => {\r\n return t.showInfoWindow(obj);\r\n }\r\n t.state.gis[\"hideInfoWindow\"] = () => {\r\n return t.hideInfoWindow();\r\n }\r\n t.state.gis[\"refresh\"] = () => {\r\n t.refresh();\r\n }\r\n }\r\n // 设置中心点\r\n setCenter(gt) {\r\n let t = this;\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.getCenter();\r\n if (c.lng == gt[0] && c.lat == gt[1]) {\r\n return false;\r\n }\r\n t.state.gis.getView().setCenter(gt);\r\n t.viewer.animate({\r\n center: gt,\r\n duration: 2000,\r\n });\r\n }\r\n }\r\n //设置地图缩放层级\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.state.gis.getView().getZoom();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.getView().setZoom(zoom)\r\n }\r\n //获取当前中心点\r\n getCenter() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let [xmin, ymin, xmax, ymax] = gis.getView().calculateExtent(gis.getSize());\r\n return { lng: (xmin + xmax) / 2, lat: (ymin + ymax) / 2 };\r\n }\r\n //编辑图元\r\n doEdit(id) {\r\n let t = this;\r\n //获取图元对象\r\n let gc = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n if (!gc) return false;\r\n //关闭先前编辑的图元\r\n if (!!t.state.editId) {\r\n t.endEdit();\r\n }\r\n if (!t.editToolbar) {\r\n t.editToolbar = new ol.interaction.Modify({\r\n source: gp.source,\r\n });\r\n t.state.gis.addInteraction(t.editToolbar)\r\n }else{\r\n t.state.gis.addInteraction(t.editToolbar)\r\n }\r\n t.editToolbar.on('modifyend', function (e) {\r\n let feature = gc;\r\n e.features.forEach(function (feature) {\r\n feature = feature\r\n })\r\n //返回参数\r\n let param = {\r\n id,\r\n e,\r\n };\r\n // 绘制内部管理的图元\r\n if (gp.geometry.type == 'point') {\r\n let cur = feature.getProperties().geometry;\r\n const [lng, lat] = cur.flatCoordinates;\r\n //处理点返回参数\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n },\r\n geometryType: gp.geometry.type,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n type: 'point',\r\n x: lng,\r\n y: lat,\r\n },\r\n }\r\n }\r\n //线\r\n if (gp.geometry.type == 'polyline') {\r\n let cur = feature.getProperties().geometry;\r\n let oddList = [], evenList = [];\r\n cur.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n paths: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n paths: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n geometry: {\r\n paths: path,\r\n _extent,\r\n type: \"polyline\",\r\n },\r\n geometryType: 'polyline',\r\n lnglatAry,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n paths: path,\r\n _extent,\r\n type: \"polyline\",\r\n },\r\n distance: t.calculateDistance(path),\r\n }\r\n }\r\n //面\r\n if (gp.geometry.type == 'polygon') {\r\n let cur = feature.getProperties().geometry;\r\n let oddList = [], evenList = [];\r\n cur.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n rings: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n rings: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n geometry: {\r\n rings: path,\r\n type: 'polygon',\r\n _extent\r\n },\r\n geometryType: 'polygon',\r\n lnglatAry,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n rings: path,\r\n type: 'polygon',\r\n _extent\r\n },\r\n area: getPolygonArea(path),\r\n }\r\n }\r\n if (gp.geometry.type == 'circle') {\r\n let cur = feature.getProperties().geometry;\r\n let center = cur.getCenter();\r\n let sketchCoords_ = [cur.flatCoordinates[0], cur.flatCoordinates[1]];\r\n let sketchCoords_2 = [cur.flatCoordinates[2], cur.flatCoordinates[3]];\r\n let radius = ol.sphere.getDistance(sketchCoords_, sketchCoords_2);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n other: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n other: {\r\n ...gp.attributes,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius,\r\n }\r\n },\r\n geometry: {\r\n x: center[0],\r\n y: center[1],\r\n radius,\r\n type: 'circle',\r\n },\r\n geometryType: 'circle',\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n area: Math.PI * Math.pow(radius, 2),\r\n geometry: {\r\n type: 'circle',\r\n x: center[0],\r\n y: center[1],\r\n radius\r\n }\r\n }\r\n }\r\n if ('editGraphicChange' in t.props && typeof (t.props.editGraphicChange) == 'function') {\r\n t.props.editGraphicChange(param);\r\n }\r\n t.GM.setGraphic(id, feature)\r\n .setGraphicParam(id, { ...param, source: gp.source });\r\n })\r\n t.editId = id;\r\n }\r\n //关闭编辑\r\n endEdit() {\r\n let t = this;\r\n if (t.editToolbar) {\r\n t.state.gis.removeInteraction(t.editToolbar);\r\n t.editToolbar = null;\r\n }\r\n t.editId = '';\r\n }\r\n // 绘制图元\r\n draw(obj) {\r\n let t = this;\r\n const { drawInfo } = t;\r\n const { gis } = t.state;\r\n let drawParam = {}, image, stroke, fill;\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 //缓存 绘制的数据\r\n t.drawParam = drawParam;\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 type = 'Point', style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-drawParam.parameter.markerContentX || -15, -drawParam.parameter.markerContentY || -15],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n src: drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n opacity: 1,\r\n scale: drawParam.parameter.scale || 1,\r\n })\r\n });\r\n let geometryFunction;\r\n switch (drawParam.geometryType) {\r\n case 'point':\r\n type = 'Point';\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-drawParam.parameter.markerContentX || -15, -drawParam.parameter.markerContentY || -15],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n src: drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n opacity: 1,\r\n scale: drawParam.parameter.scale || 1,\r\n })\r\n })\r\n break;\r\n case 'polyline':\r\n type = 'LineString';\r\n style = new ol.style.Style({\r\n stoke: new ol.style.Stroke({\r\n color: drawParam.parameter.color || '#277ffa',\r\n width: drawParam.parameter.lineWidth || 3,\r\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\r\n })\r\n })\r\n break;\r\n case 'polygon':\r\n type = 'Polygon';\r\n style = new ol.style.Style({\r\n stoke: new ol.style.Stroke({\r\n color: drawParam.parameter.color || '#277ffa',\r\n width: drawParam.parameter.lineWidth || 3,\r\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: drawParam.parameter.pellucidity ?\r\n getRgbColor(drawParam.parameter.color || '#277ffa', drawParam.parameter.pellucidity) :\r\n drawParam.parameter.color || '#277ffa',\r\n })\r\n })\r\n break;\r\n case 'rectangle':\r\n type = 'Circle';\r\n geometryFunction = ol.interaction.Draw.createBox();\r\n break;\r\n case 'circle':\r\n type = 'Circle';\r\n style = new ol.style.Style({\r\n stoke: new ol.style.Stroke({\r\n color: drawParam.parameter.color || '#277ffa',\r\n width: drawParam.parameter.lineWidth || 3,\r\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: drawParam.parameter.pellucidity ?\r\n getRgbColor(drawParam.parameter.color || '#277ffa', drawParam.parameter.pellucidity) :\r\n drawParam.parameter.color || '#277ffa',\r\n })\r\n })\r\n break;\r\n }\r\n if (!t.drawToolbar) {\r\n t.drawToolbar = new ol.interaction.Draw({\r\n source: t.drawSource,\r\n type: type,\r\n geometryFunction: geometryFunction\r\n // style: style\r\n });\r\n gis.addInteraction(t.drawToolbar);\r\n }else{\r\n gis.addInteraction(t.drawToolbar);\r\n }\r\n t.drawToolbar.on('drawend', function (e) {\r\n // 关闭绘制事件\r\n t.drawToolbar.finishDrawing();\r\n // 移除\r\n gis.removeInteraction(t.drawToolbar)\r\n let gc = e.feature.getGeometry();\r\n //返回参数\r\n let param = {};\r\n // 绘制内部管理的图元\r\n if (t.drawParam.geometryType == 'point') {\r\n const [lng, lat] = gc.flatCoordinates;\r\n gc.x = lng;\r\n gc.y = lat;\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updatePoint(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n longitude: lng,\r\n latitude: lat,\r\n url:\r\n t.drawParam.parameter.url ||\r\n require(\"../images/defaultMarker.png\"),\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n \"point\"\r\n );\r\n }else{\r\n t.addPoint([{\r\n id: t.drawParam.data.id,\r\n longitude: lng,\r\n latitude: lat,\r\n url: t.drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], 'point');\r\n }\r\n \r\n //处理点返回参数\r\n param = {\r\n id: t.drawParam.data.id,\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n url: t.drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\r\n config: {\r\n width: t.drawParam.parameter.width || 30,\r\n height: t.drawParam.parameter.height || 30\r\n }\r\n },\r\n geometry: gc,\r\n geometryType: 'point',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //线\r\n if (t.drawParam.geometryType == 'polyline') {\r\n let oddList = [], evenList = [];\r\n gc.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updateLine([{\r\n id: t.drawParam.data.id,\r\n paths: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], 'polyline');\r\n }else{\r\n t.addLine([{\r\n id: t.drawParam.data.id,\r\n paths: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], 'polyline');\r\n }\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n paths: path,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n distance: t.calculateDistance(path),\r\n geometryType: 'polyline',\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n //面\r\n if (t.drawParam.geometryType == 'polygon') {\r\n let oddList = [], evenList = [];\r\n gc.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updatePolygon(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n t.drawParam.geometryType\r\n );\r\n }else{\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], t.drawParam.geometryType);\r\n }\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: path,\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(path),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if (t.drawParam.geometryType == 'rectangle') {\r\n let path = e.feature.getGeometry().getCoordinates()[0];\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updatePolygon(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n t.drawParam.geometryType\r\n );\r\n }else{\r\n t.addPolygon([{\r\n id: t.drawParam.data.id,\r\n rings: path,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], t.drawParam.geometryType);\r\n }\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n lnglatAry,\r\n id: t.drawParam.data.id,\r\n geometry: {\r\n ...e.geometry,\r\n rings: path,\r\n type: t.drawParam.geometryType,\r\n _extent\r\n },\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n area: getPolygonArea(path),\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if (t.drawParam.geometryType == 'circle') {\r\n let center = e.feature.getGeometry().getCenter();\r\n let cur = e.feature.getProperties().geometry;\r\n let sketchCoords_ = [cur.flatCoordinates[0], cur.flatCoordinates[1]];\r\n let sketchCoords_2 = [cur.flatCoordinates[2], cur.flatCoordinates[3]];\r\n let radius = ol.sphere.getDistance(sketchCoords_, sketchCoords_2);\r\n if(t.GM.isRepetition(t.drawParam.data.id)){\r\n t.updateCircle(\r\n [\r\n {\r\n id: t.drawParam.data.id,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter,\r\n },\r\n },\r\n ],\r\n t.drawParam.geometryType\r\n );\r\n }else{\r\n t.addCircle([{\r\n id: t.drawParam.data.id,\r\n longitude: center[0],\r\n latitude: center[1],\r\n radius: radius,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n }], t.drawParam.geometryType);\r\n }\r\n param = {\r\n area: Math.PI * Math.pow(radius, 2),\r\n attributes: {\r\n id: t.drawParam.data.id,\r\n config: {\r\n ...t.drawParam.parameter\r\n }\r\n },\r\n geometry: {\r\n type: t.drawParam.geometryType,\r\n x: center[0],\r\n y: center[1],\r\n radius\r\n },\r\n geometryType: t.drawParam.geometryType,\r\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\r\n }\r\n }\r\n if ('drawEnd' in t.props && typeof (t.props.drawEnd) == 'function') {\r\n t.props.drawEnd(param);\r\n }\r\n });\r\n //保存绘制图元的id便于后期比对\r\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\r\n }\r\n // 关闭绘制\r\n closeDraw() {\r\n let t = this;\r\n const { gis } = t.state;\r\n if (t.drawToolbar) {\r\n // 关闭绘制事件\r\n t.drawToolbar.finishDrawing();\r\n // 移除\r\n gis.removeInteraction(t.drawToolbar)\r\n t.drawToolbar = null;\r\n t.drawInfo = {\r\n sketch: null,\r\n listener: null,\r\n };\r\n }\r\n }\r\n /*工具方法*/\r\n vtxRangingTool(){\r\n let t = this;\r\n let source = new ol.source.Vector({});\r\n t.rangingInfo.drawLayer = new ol.layer.Vector({\r\n source: source,\r\n style: new ol.style.Style({\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 255, 255, 0.2)',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: '#ffcc33',\r\n width: 4,\r\n }),\r\n image: new ol.style.Circle({\r\n radius: 7,\r\n fill: new ol.style.Fill({\r\n color: '#ffcc33',\r\n }),\r\n }),\r\n }),\r\n })\r\n t.rangingInfo.draw = new ol.interaction.Draw({\r\n source,\r\n type: 'LineString',\r\n style: new ol.style.Style({\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 255, 255, 0.2)',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(0, 0, 0, 0.5)',\r\n lineDash: [10, 10],\r\n width: 4,\r\n }),\r\n image: new ol.style.Circle({\r\n radius: 5,\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(0, 0, 0, 0.7)',\r\n }),\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 255, 255, 0.2)',\r\n }),\r\n }),\r\n }),\r\n });\r\n let obj = {};\r\n t.createHelpTooltip();\r\n t.createMeasureTooltip();\r\n t.createDeleteTooltip();\r\n t.state.gis.addLayer(t.rangingInfo.drawLayer);\r\n t.state.gis.addInteraction(t.rangingInfo.draw);\r\n // 开始监听绘制\r\n t.rangingInfo.draw.on('drawstart', (evt) => {\r\n t.rangingInfo.feature = evt.feature;\r\n let tooltipCoord = evt.coordinate;\r\n t.rangingInfo.listener = evt.feature.getGeometry().on('change', function (evt) {\r\n const geom = evt.target;\r\n const {flatCoordinates} = geom;\r\n const lngLats = [[flatCoordinates[0], flatCoordinates[1]],[flatCoordinates[2], flatCoordinates[3]]];\r\n let output = t.formatLength(geom);\r\n tooltipCoord = geom.getLastCoordinate();\r\n obj={\r\n distance: output,\r\n lnglats: lngLats,\r\n }\r\n t.rangingInfo.measureTooltipElement.innerHTML = output;\r\n t.rangingInfo.measureTooltip.setPosition(tooltipCoord);\r\n t.rangingInfo.deleteToolTip.setPosition(tooltipCoord);\r\n t.rangingInfo.deleteToolTip.setOffset([20, 10]);\r\n });\r\n });\r\n // 双击绘制完成\r\n t.rangingInfo.draw.on('drawend', () => {\r\n t.rangingInfo.measureTooltipElement.className = 'ol-tooltip ol-tooltip-static';\r\n t.rangingInfo.measureTooltip.setOffset([0, -7]);\r\n t.rangingInfo.feature = null;\r\n t.rangingInfo.measureTooltipElement = null;\r\n // t.createMeasureTooltip();\r\n new ol.Observable.unByKey(t.rangingInfo.listener);\r\n t.state.gis.removeInteraction(t.rangingInfo.draw);\r\n if('mapRangingTool' in t.props){\r\n t.props.mapRangingTool(obj);\r\n }\r\n });\r\n }\r\n // 绘图时创建提示\r\n createHelpTooltip(){\r\n const t = this;\r\n if (t.rangingTool.helpTooltipElement) {\r\n t.rangingTool.helpTooltipElement.parentNode.removeChild(t.rangingTool.helpTooltipElement);\r\n }\r\n t.rangingTool.helpTooltipElement = document.createElement('div');\r\n t.rangingTool.helpTooltipElement.className = 'ol-tooltip hidden';\r\n t.rangingTool.helpTooltip = new ol.Overlay({\r\n element: t.rangingTool.helpTooltipElement,\r\n offset: [15, 0],\r\n positioning: 'center-left',\r\n });\r\n t.state.gis.addOverlay(t.rangingTool.helpTooltip);\r\n }\r\n // 工具画图提示\r\n createMeasureTooltip() {\r\n const t = this;\r\n if (t.rangingInfo.measureTooltipElement) {\r\n t.rangingInfo.measureTooltipElement.parentNode.removeChild(t.rangingInfo.measureTooltipElement);\r\n }\r\n t.rangingInfo.measureTooltipElement = document.createElement('div');\r\n t.rangingInfo.measureTooltipElement.className = 'ol-tooltip ol-tooltip-measure';\r\n t.rangingInfo.measureTooltip = new ol.Overlay({\r\n element: t.rangingInfo.measureTooltipElement,\r\n offset: [0, -15],\r\n positioning: 'bottom-center',\r\n stopEvent: false,\r\n insertFirst: false,\r\n });\r\n t.state.gis.addOverlay(t.rangingInfo.measureTooltip);\r\n }\r\n // 创建删除提示\r\n createDeleteTooltip() {\r\n const t = this;\r\n if (t.rangingInfo.deleteToolTipElement) {\r\n t.rangingInfo.deleteToolTipElement.parentNode.removeChild(t.rangingInfo.deleteToolTipElement);\r\n }\r\n t.rangingInfo.deleteToolTipElement = document.createElement('div');\r\n t.rangingInfo.deleteToolTipElement.className = 'ol-tooltip-delete';\r\n t.rangingInfo.deleteToolTipElement.innerHTML = 'X';\r\n t.rangingInfo.deleteToolTipElement.addEventListener('click', function(e){\r\n t.rangingInfo.measureTooltipElement = null;\r\n t.rangingInfo.helpTooltipElement = null;\r\n t.rangingInfo.deleteToolTipElement = null;\r\n t.state.gis.removeOverlay(t.rangingInfo.measureTooltip);\r\n t.state.gis.removeOverlay(t.rangingTool.helpTooltip);\r\n t.state.gis.removeOverlay(t.rangingInfo.deleteToolTip);\r\n new ol.Observable.unByKey(t.rangingInfo.listener);\r\n t.state.gis.removeInteraction(t.rangingInfo.draw);\r\n t.state.gis.removeLayer(t.rangingInfo.drawLayer);\r\n })\r\n t.rangingInfo.deleteToolTip = new ol.Overlay({\r\n element: t.rangingInfo.deleteToolTipElement,\r\n offset: [15, 15],\r\n positioning: 'bottom-center',\r\n stopEvent: false,\r\n insertFirst: true,\r\n });\r\n t.state.gis.addOverlay(t.rangingInfo.deleteToolTip);\r\n }\r\n\r\n formatLength (line) {\r\n const {flatCoordinates} = line\r\n // const length = new ol.sphere.getDistance([flatCoordinates[0], flatCoordinates[1]],[flatCoordinates[2], flatCoordinates[3]]);\r\n let paths = []\r\n for (let n = 0; n < flatCoordinates.length; n += 2) {\r\n paths.push([flatCoordinates[n], flatCoordinates[n + 1]])\r\n }\r\n let length = 0;\r\n if (paths.length >= 2)\r\n paths.map((item, index) => {\r\n if (index <= paths.length - 2) {\r\n length += ol.sphere.getDistance(paths[index], paths[index + 1])\r\n }\r\n })\r\n let output = '';\r\n if (length > 100) {\r\n output = Math.round((length / 1000) * 100) / 100 + ' ' + 'km';\r\n } else {\r\n output = Math.round(length * 100) / 100 + ' ' + 'm';\r\n }\r\n return output;\r\n };\r\n // 获取地图的当前位置状态信息\r\n getMapExtent() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let obj = {};\r\n if (gis) {\r\n let nowBounds = gis.getView().calculateExtent(gis.getSize());\r\n obj.southWest = {\r\n lng: nowBounds[0],\r\n lat: nowBounds[1],\r\n };\r\n obj.northEast = {\r\n lng: nowBounds[2],\r\n lat: nowBounds[3],\r\n };\r\n obj.nowCenter = t.getCenter();\r\n obj.zoom = t.getZoomLevel();\r\n const [width, height] = gis.getSize();\r\n obj.mapSize = { width: width, height: height };\r\n obj.radius = ol.sphere.getDistance(\r\n [obj.nowCenter.lng, obj.nowCenter.lat],\r\n [obj.northEast.lng, obj.northEast.lat],\r\n );\r\n return obj;\r\n }\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 const {gis} = t.state;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];//图元id集合\r\n let obj = [];//经纬度集合\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 if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n }else if(arg instanceof Array){\r\n ary = arg;\r\n }\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let g = t.GM.getGraphicParam(ary[i]);\r\n if(g){\r\n switch(g.geometry.type){\r\n case 'point':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n case 'circle':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n break;\r\n case 'polyline':\r\n obj = [...obj,...g.geometry.paths];\r\n break;\r\n case 'polygon':\r\n obj = [...obj,...g.geometry.rings];\r\n break;\r\n }\r\n }\r\n }\r\n if(obj.length > 0){\r\n let displayRange = new ol.extent.boundingExtent(obj);\r\n gis.getView().fit(displayRange, gis.getSize());\r\n }\r\n }\r\n getFitView(ids) {\r\n let t = this;\r\n if (ids.length > 0) {\r\n let maxX = null, maxY = null, minX = null, minY = null;\r\n for (let i = 0; i < ids.length; i++) {\r\n let coord = t.GM.getGraphic(ids[i]);\r\n let boundsArry = coord.getGeometry().getExtent();\r\n if (minX === null) {\r\n minX = boundsArry[0]\r\n minY = boundsArry[1]\r\n maxX = boundsArry[2]\r\n maxY = boundsArry[3]\r\n } else {\r\n minX = Math.min(boundsArry[0], minX)\r\n minY = Math.min(boundsArry[1], minY)\r\n maxX = Math.max(boundsArry[2], maxX)\r\n maxY = Math.max(boundsArry[3], maxY)\r\n }\r\n }\r\n const bounds = [minX, minY, maxX, maxY];\r\n return bounds;\r\n }\r\n }\r\n /*功能方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let extent = gis.getView().calculateExtent(gis.getSize());\r\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\r\n }\r\n //获取当前比例尺\r\n getZoomLevel() {\r\n let t = this;\r\n return t.state.gis.getView().getZoom();\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 = {},\r\n pts = [],\r\n lng = 0,\r\n lat = 0;\r\n switch (gp.geometryType) {\r\n case 'point':\r\n lng = gp.geometry.x;\r\n lat = gp.geometry.y;\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 = gp.geometry.paths;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts,\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts,\r\n },\r\n },\r\n };\r\n break;\r\n case 'polygon':\r\n pts = gp.geometry.rings;\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 area: getPolygonArea(pts),\r\n };\r\n break;\r\n case 'circle':\r\n lng = gp.geometry.x;\r\n lat = gp.geometry.y;\r\n let radius = gp.geometry.radius;\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 // 转换dom节点\r\n parseDom(domStr) {\r\n const domObj = document.createElement('div');\r\n domObj.innerHTML = domStr;\r\n return domObj.childNodes;\r\n }\r\n //添加海量点\r\n addPointCollection(data = []) {\r\n let t = this;\r\n data.map((item, index) => {\r\n let d = item || {};\r\n let points = (d.points || []).map((d, i) => {\r\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\r\n return [p[0], p[1]];\r\n });\r\n let [width, height] = t.state.gis.getSize();\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: width,\r\n height: height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points, options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []) {\r\n let t = this;\r\n data.map((ds, ind) => {\r\n t.morepoints.map((item, index) => {\r\n if (item.id == ds.id) {\r\n let points = (ds.points || []).map((d, i) => {\r\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\r\n return [p[0], p[1]];\r\n });\r\n let [width, height] = t.state.gis.getSize();\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: width,\r\n height: height\r\n };\r\n item.value.reDraw(points, options);\r\n }\r\n })\r\n })\r\n }\r\n //删除海量点\r\n clearPointCollection(ids = []) {\r\n let t = this;\r\n ids.map((id, ind) => {\r\n t.morepoints.map(function (item, index) {\r\n if (id == item.id) {\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n\r\n //删除全部海量点\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 * params\r\n * @position: Array[longitude,latitude]\r\n * @content: String|HTML\r\n * @close: boolean\r\n */\r\n showInfoWindow(params={}){\r\n const t = this;\r\n if(t.popupWindow){\r\n t.hideInfoWindow();\r\n }\r\n t.popupWindow = new Popup({\r\n map: t.state.gis,\r\n position: params.position,\r\n innerHTML: params.content,\r\n close: params.close\r\n });\r\n t.popupWindow.showPopup();\r\n }\r\n hideInfoWindow(){\r\n const t = this;\r\n if(t.popupWindow){\r\n t.popupWindow.removePopup();\r\n }\r\n t.popupWindow = null;\r\n }\r\n // 添加点\r\n addPoint(mapPoints, type) {\r\n let t = this;\r\n let ps = [];\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n // 创建点位图元要素\r\n let feature = new ol.Feature({\r\n geometry: new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]),\r\n name: item.name,\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n let cg = {\r\n width: 30,\r\n height: 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n markerContentX: -13,\r\n markerContentY: -42,\r\n zIndex: 100,\r\n deg: 0,\r\n scale: 1,\r\n };\r\n //初始化默认数据\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n // 覆盖物样式参数\r\n let style, icon, txt;\r\n let myImage = new Image(cg.width, cg.height);\r\n \r\n if (!!item.markerContent) {\r\n let nodes = t.parseDom(item.markerContent)[0];\r\n // 自定义图层需要把事件加在dom上\r\n nodes.addEventListener(\"click\", e => {\r\n t.clickGraphic(item.id,{\r\n ...e,\r\n pixel: [e.clientX,e.clientY]\r\n })\r\n })\r\n // 创建地图自定义覆盖物\r\n let pop = new ol.Overlay({\r\n id: item.id,\r\n position: [parseFloat(item.longitude), parseFloat(item.latitude)],\r\n positioning: 'center-center',\r\n element: nodes,\r\n autoPanMargin: 20,\r\n autoPan: true,\r\n offset: [0, -20],\r\n insertFirst: true,\r\n });\r\n t.state.gis.addOverlay(pop);\r\n } else {\r\n // item.url || require(\"../images/defaultMarker.png\"),\r\n canvasDataURL(\r\n item.url || require(\"../images/defaultMarker.png\"),\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n }\r\n )\r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n });\r\n }\r\n if (!!item.canShowLabel && item.canShowLabel) {\r\n let textStyle = {\r\n textAlign: 'center', //对齐方式\r\n textBaseline: 'middle', //文本基线\r\n font: 'normal 12px 微软雅黑', //字体样式\r\n text: cg.labelContent, //文本内容\r\n offsetX: cg.labelPixelX, // x轴偏置\r\n offsetY: cg.labelPixelY, // Y轴偏置\r\n fill: new ol.style.Fill({\r\n //填充样式\r\n color: '#1890ff',\r\n }),\r\n backgroundFill: new ol.style.Fill({\r\n // 填充背景\r\n color: 'rgba(255, 255, 255, 1)',\r\n }),\r\n padding: [2, 5, 2, 5],\r\n ...(cg.labelStyle || {})\r\n }\r\n if(cg.labelStyle && cg.labelStyle.fill){\r\n textStyle['fill'] = new ol.style.Fill({\r\n color: cg.labelStyle.fill\r\n })\r\n }\r\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\r\n textStyle['backgroundFill'] = new ol.style.Fill({\r\n color: cg.labelStyle.backgroundFill\r\n })\r\n }\r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n // src: item.url || require(\"../images/defaultMarker.png\"),\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n // 创建地图要素文字样式\r\n text: new ol.style.Text(textStyle),\r\n });\r\n }\r\n feature.setStyle(style);\r\n // 初始化适量数据源\r\n let source = new ol.source.Vector({\r\n features: [feature],\r\n name: 'point',\r\n id: item.id,\r\n });\r\n let pointLayer = new ol.layer.Vector({\r\n name: 'point',\r\n source,\r\n id: item.id,\r\n });\r\n t.pointLayers.push({\r\n id: item.id,\r\n layer: pointLayer\r\n })\r\n //添加点位图层\r\n t.state.gis.addLayer(pointLayer);\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 psids.push(item.id);\r\n //缓存图元的数据,偏于后期操作\r\n this.GM.setGraphic(item.id, feature).setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n },\r\n source\r\n });\r\n });\r\n if (type !== 'defined') {\r\n // t.state.pointIds = psids;\r\n t.setState({\r\n pointIds: psids\r\n })\r\n }\r\n }\r\n //更新点\r\n updatePoint(mapPoints = []) {\r\n let t = this;\r\n mapPoints.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(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 markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n\r\n let text, icon, marker;\r\n let myImage = new Image(cg.width, cg.height);\r\n if (item.markerContent) {\r\n let overlay = t.state.gis.getOverlayById(item.id);\r\n let nodes = t.parseDom(item.markerContent)[0];\r\n nodes.addEventListener(\"click\", e => {\r\n t.clickGraphic(item.id,{\r\n ...e,\r\n pixel: [e.clientX,e.clientY]\r\n })\r\n })\r\n overlay.setElement(nodes);\r\n overlay.setPosition([parseFloat(item.longitude), parseFloat(item.latitude)]);\r\n t.state.gis.changed();\r\n } else {\r\n canvasDataURL(\r\n item.url || require(\"../images/defaultMarker.png\"),\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n }\r\n )\r\n icon = new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n // src: item.url || require(\"../images/defaultMarker.png\"),\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n rotation: Math.PI / 180 * cg.deg,\r\n })\r\n if (item.canShowLabel) {\r\n let textStyle = {\r\n textAlign: 'center', //对齐方式\r\n textBaseline: 'middle', //文本基线\r\n font: 'normal 12px 微软雅黑', //字体样式\r\n text: cg.labelContent, //文本内容\r\n offsetX: cg.labelPixelX, // x轴偏置\r\n offsetY: cg.labelPixelY, // Y轴偏置\r\n fill: new ol.style.Fill({\r\n //填充样式\r\n color: '#1890ff',\r\n }),\r\n backgroundFill: new ol.style.Fill({\r\n // 填充背景\r\n color: 'rgba(255, 255, 255, 1)',\r\n }),\r\n padding: [2, 5, 2, 5],\r\n ...(cg.labelStyle || {})\r\n }\r\n if(cg.labelStyle && cg.labelStyle.fill){\r\n textStyle['fill'] = new ol.style.Fill({\r\n color: cg.labelStyle.fill\r\n })\r\n }\r\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\r\n textStyle['backgroundFill'] = new ol.style.Fill({\r\n color: cg.labelStyle.backgroundFill\r\n })\r\n }\r\n text = new ol.style.Text(textStyle)\r\n }\r\n if (text) {\r\n gc.setStyle(new ol.style.Style({\r\n image: icon,\r\n text,\r\n }))\r\n } else {\r\n gc.setStyle(new ol.style.Style({\r\n image: icon,\r\n }))\r\n }\r\n }\r\n gc.setGeometry(new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]));\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: { ...item, other: item },\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude)\r\n },\r\n source: gp.source\r\n }\r\n );\r\n } else {\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n });\r\n t.refresh();\r\n }\r\n // 更新图层\r\n refresh(){\r\n const t = this;\r\n let timer = setTimeout(()=>{\r\n clearTimeout(timer);\r\n window.VtxMap[t.props.mapId].redrawText();\r\n },100)\r\n }\r\n // 添加先\r\n addLine(mapLines, type) {\r\n let t = this;\r\n let ls = [];\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n });\r\n let polyline = new ol.Feature({\r\n geometry: new ol.geom.LineString(item.paths),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n polyline.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polyline],\r\n name: 'polyline',\r\n id: item.id,\r\n })\r\n let lineLayer = new ol.layer.Vector({\r\n name: 'polyline',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(lineLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polyline).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: source,\r\n });\r\n ls.push(polyline);\r\n lsids.push(item.id);\r\n t.state.lineIds.push(item.id);\r\n });\r\n if (type !== 'defined') {\r\n t.state.lineIds = lsids;\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines) {\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let 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 let gc = this.GM.getGraphic(item.id);\r\n let gp = this.GM.getGraphicParam(item.id);\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n zIndex: cg.zIndex || 0,\r\n }),\r\n });\r\n gc.setStyle(() => {\r\n return style\r\n })\r\n gc.setGeometry(new ol.geom.LineString(pts));\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: gp.source,\r\n });\r\n } else {\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons) {\r\n let t = this;\r\n let pgs = [];\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let polygon = new ol.Feature({\r\n geometry: new ol.geom.Polygon([item.rings]),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'polygon',\r\n });\r\n polygon.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polygon],\r\n id: item.id,\r\n })\r\n let polygonLayer = new ol.layer.Vector({\r\n name: 'polygon',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(polygonLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polygon).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source\r\n });\r\n pgs.push(polygon);\r\n pgsids.push(item.id);\r\n });\r\n t.state.polygonIds = pgsids;\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons) {\r\n let t = this;\r\n mapPolygons.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(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 };\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n gc.setGeometry(new ol.geom.Polygon([pts]));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source: gp.source\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, type) {\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if (type) {\r\n ccsids = [...t.state.drawIds[type]];\r\n }\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 const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n let circle = new ol.Feature({\r\n geometry: new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'circle'\r\n });\r\n circle.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [circle],\r\n name: 'circle',\r\n id: item.id,\r\n });\r\n let circleLayer = new ol.layer.Vector({\r\n name: 'circle',\r\n id: item.id,\r\n source\r\n });\r\n t.state.gis.addLayer(circleLayer);\r\n ccsids.push(item.id);\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: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source\r\n });\r\n });\r\n //添加绘制点\r\n if (type) {\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n } else {\r\n t.state.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 } else {\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(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 metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n gc.setGeometry(new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\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: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source: gp.source,\r\n });\r\n });\r\n //刷新图元\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 let gp = t.GM.getGraphicParam(id);\r\n //刪除label\r\n if (t.Label[id]) {\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if (!!graphic) {\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n // const layers = t.state.gis.getLayers().getArray();\r\n // const layer = layers.filter(item => item.getProperties().name == type)[0];\r\n gp.source.removeFeature(graphic);\r\n // layer && layer.getSource().removeFeature(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n t.GM.removeGraphicParam(id);\r\n if(t.state.gis.getOverlayById(id)){\r\n t.state.gis.removeOverlay(t.state.gis.getOverlayById(id))\r\n }\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 //清空地图\r\n clearAll() {\r\n let t = this;\r\n const { gis } = t.state;\r\n const layers = gis.getLayers();\r\n //清空热力图\r\n if (t.heatmap) {\r\n let hMap = layers.filter(item => item.name == 'heatMap')[0];\r\n hMap.getSource().clear();\r\n gis.removeLayer(layer);\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n\r\n t.state.pointIds = [];\r\n t.pointLayers.map(item => {\r\n gis.removeLayer(item.layer)\r\n t.pointLayers = [];\r\n })\r\n\r\n t.clearAllPointCollection();\r\n t.closeDraw();\r\n if(t.clusterInfo.clusterHulls || t.clusterInfo.clusters || t.clusterInfo.clusterCircles){\r\n t.clusterHulls.getSource().clear();\r\n t.clusterInfo.clusterSource = null;\r\n gis.removeLayer(t.clusterInfo.clusterHulls);\r\n gis.removeLayer(t.clusterInfo.clusters);\r\n gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterHulls= null;\r\n t.clusterInfo.clusters = null;\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //循环所有id删除\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for (let i = 0; i < ps.length; i++) {\r\n t.removeGraphic(ps[i], 'point');\r\n }\r\n // 删除线\r\n for (let i = 0; i < ls.length; i++) {\r\n t.removeGraphic(ls[i], 'line');\r\n }\r\n // 删除面\r\n for (let i = 0; i < pgs.length; i++) {\r\n t.removeGraphic(pgs[i], 'polygon');\r\n }\r\n // 删除圆\r\n for (let i = 0; i < cs.length; i++) {\r\n t.removeGraphic(cs[i], 'circle');\r\n }\r\n //删除绘制的点\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n for (let i = 0; i < point.length; i++) {\r\n t.removeGraphic(point[i]);\r\n }\r\n for (let i = 0; i < polyline.length; i++) {\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for (let i = 0; i < polygon.length; i++) {\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for (let i = 0; i < circle.length; i++) {\r\n t.removeGraphic(circle[i]);\r\n }\r\n for (let i = 0; i < rectangle.length; i++) {\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(props) {\r\n let t = this;\r\n const { gis } = t.state;\r\n const config = props.showControl ;\r\n if (t.scaleControl) {\r\n gis.removeControl(t.scaleControl);\r\n }\r\n t.scaleControl = new ol.control.ScaleLine({\r\n units: 'metric',\r\n //设置度量单位\r\n className: `ol-scale-line-${config.location}`\r\n });\r\n gis.addControl(t.scaleControl);\r\n setTimeout(function (){\r\n if(config.location == 'tl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'bl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'tr'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'br'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }\r\n }, 20)\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction) {\r\n let t = this;\r\n let { _extent: _et } = t.dealData(areaRestriction);\r\n t.areaRestriction = t.state.gis.getView().setProperties({\r\n extent: [_et.xmax, _et.ymax, _et.xmin, _et.ymin],\r\n }, false);\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction() {\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e) {\r\n let t = this;\r\n //如果在区域内,不处理\r\n if (t.areaRestriction.contains(e.extent.getCenter())) {\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return;\r\n // }\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = t.areaRestriction;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e.extent;\r\n let x = e.extent.getCenter().x,\r\n y = e.extent.getCenter().y;\r\n if (x < xmin1) x = xmin1 + 0.1;\r\n if (x > xmax1) x = xmax1 - 0.1;\r\n if (y < ymin1) y = ymin1 + 0.1;\r\n if (y > ymax1) y = ymax1 - 0.1;\r\n t.state.gis.getView().setCenter([x, y]);\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n t.state.pointIds = [];\r\n t.pointLayers.map(item => {\r\n t.state.gis.removeLayer(item.layer);\r\n t.pointLayers=[];\r\n })\r\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n // return !item && item != 0 ? false : true;\r\n return item && item.getGeometry().getType() === 'Point' && !item.label;\r\n });\r\n const source = new ol.source.Vector({\r\n features: ms\r\n })\r\n t.clusterInfo.clusterSource = new ol.source.Cluster({\r\n distance: 80,\r\n minDistance: 0,\r\n source,\r\n });\r\n t.clusterInfo.clusterHulls = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterHullStyle,\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterHulls);\r\n t.clusterInfo.clusters = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterStyle,\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusters);\r\n t.clusterInfo.clusterCircles = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterCircleStyle,\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterCircles);\r\n function clusterMemberStyle(clusterMember) {\r\n let style = clusterMember.getStyle();\r\n let image = style&&style.getImage ? style.getImage() : null;\r\n return new ol.style.Style({\r\n geometry: clusterMember.getGeometry(),\r\n image: image\r\n });\r\n }\r\n function clusterCircleStyle(cluster, resolution) {\r\n if (cluster !== t.clusterInfo.clickFeature || resolution !== t.clusterInfo.clickResolution) {\r\n return;\r\n }\r\n const clusterMembers = cluster.get('features');\r\n const centerCoordinates = cluster.getGeometry().getCoordinates();\r\n return generatePointsCircle(\r\n clusterMembers.length,\r\n cluster.getGeometry().getCoordinates(),\r\n resolution,\r\n ).reduce((styles, coordinates, i) => {\r\n const point = new ol.geom.Point(coordinates);\r\n const line = new ol.geom.LineString([centerCoordinates, coordinates]);\r\n styles.unshift(\r\n new ol.style.Style({\r\n geometry: line,\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(204, 85, 0, 1)',\r\n width: 1.5,\r\n }),\r\n }),\r\n );\r\n styles.push(\r\n clusterMemberStyle(\r\n new ol.Feature({\r\n ...clusterMembers[i].getProperties(),\r\n geometry: point,\r\n }),\r\n ),\r\n );\r\n return styles;\r\n }, []);\r\n }\r\n function generatePointsCircle(count, clusterCenter, resolution) {\r\n const circumference = 1 * 28 * (2 + count);\r\n let legLength = circumference / (Math.PI * 2); //radius from circumference\r\n const angleStep = (Math.PI * 2) / count;\r\n const res = [];\r\n let angle;\r\n legLength = Math.max(legLength, 35) * resolution; // Minimum distance to get outside the cluster icon.\r\n for (let i = 0; i < count; ++i) {\r\n // Clockwise, like spiral.\r\n angle = Math.PI / 2 + i * angleStep;\r\n res.push([\r\n clusterCenter[0] + legLength * Math.cos(angle),\r\n clusterCenter[1] + legLength * Math.sin(angle),\r\n ]);\r\n }\r\n return res;\r\n }\r\n function clusterHullStyle(cluster) {\r\n if (cluster !== t.clusterInfo.hoverFeature) {\r\n return;\r\n }\r\n const originalFeatures = cluster.get('features');\r\n const points = originalFeatures.map(feature => feature.getGeometry().getCoordinates());\r\n return new ol.style.Style({\r\n geometry: new ol.geom.Polygon(points),\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 153, 0, 0.4)',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(204, 85, 0, 1)',\r\n width: 1.5,\r\n }),\r\n });\r\n }\r\n function clusterStyle(feature) {\r\n const size = feature.get('features').length;\r\n if (size > 1) {\r\n return [\r\n new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: 20,\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 153, 102, 0.3)',\r\n }),\r\n }),\r\n }),\r\n new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: 14,\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 165, 0, 0.7)',\r\n }),\r\n }),\r\n text: new ol.style.Text({\r\n text: size.toString(),\r\n fill: new ol.style.Fill({\r\n color: '#fff',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(0, 0, 0, 0.6)',\r\n width: 3,\r\n }),\r\n }),\r\n }),\r\n ];\r\n } else {\r\n const originalFeature = feature.get('features')[0];\r\n return clusterMemberStyle(originalFeature);\r\n }\r\n }\r\n }\r\n clearCluster(){\r\n const t = this;\r\n if(t.clusterInfo.clusterHulls){\r\n t.state.gis.removeLayer(t.clusterInfo.clusterHulls);\r\n t.clusterInfo.clusterHulls = null;\r\n }\r\n if(t.clusterInfo.clusters){\r\n t.state.gis.removeLayer(t.clusterInfo.clusters);\r\n t.clusterInfo.clusters = null;\r\n }\r\n if(t.clusterInfo.clusterCircles){\r\n t.state.gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n t.props.mapPoints.map(item=>{\r\n if(t.GM.getGraphic(item.id)){\r\n t.GM.removeGraphic(item.id);\r\n }\r\n })\r\n t.addPoint(t.props.mapPoints)\r\n t.refresh();\r\n }\r\n /*公共方法*/\r\n //判断extent1是否在extent2内部\r\n containsExtent(e1, e2) {\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = e1;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e2;\r\n return xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1;\r\n }\r\n //将图元z-index设置成最高\r\n czIndex(id) {\r\n let t = this;\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\r\n }\r\n equalsPoint(a, b) {\r\n return a.x == b.x && a.y == b.y;\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp, ep) {\r\n console.log(fp, ep)\r\n let distance = ol.sphere.getDistance(fp, ep);\r\n console.log(distance)\r\n return Math.round(distance);\r\n }\r\n //计算多个点的距离(常用于线计算)\r\n calculateDistance(ps) {\r\n let t = this,\r\n totalDistance = 0;\r\n if (ps.length < 0) {\r\n return 0;\r\n }\r\n for (let i = 0; i < ps.length; i++) {\r\n if (i < ps.length - 1) {\r\n const distance = t.calculatePointsDistance(ps[i], ps[i + 1])\r\n console.log(distance)\r\n totalDistance += distance;\r\n }\r\n }\r\n console.log(totalDistance)\r\n return Math.round(totalDistance * 100) / 100;\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(paths) {\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],\r\n _extent = { xmax: 0, xmin: 0, ymax: 0, ymin: 0 },\r\n path = [];\r\n path = paths.map((item, index) => {\r\n let lng = item[0],\r\n lat = item[1];\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 return { lnglatAry, _extent, path };\r\n }\r\n //处理点位图元的添加 和 更新\r\n dealLabelGraphics(id, label) {\r\n let t = this;\r\n if (label) {\r\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\r\n //经纬度转top和left\r\n let tl = t.state.gis.toScreen(position),\r\n lbl = { ...label };\r\n //渲染優化\r\n if (\r\n !(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)\r\n ) {\r\n //设置label的位置(通过定位来实现)\r\n label.html.css({\r\n position: 'absolute',\r\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x,\r\n });\r\n //添加点位到(地图)\r\n $(`#${t.htmlPointsId}`).append(label.html);\r\n lbl.add = true;\r\n } else {\r\n lbl.add = false;\r\n }\r\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\r\n t.Label[id] = lbl;\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id, marker) {\r\n let t = this;\r\n //null时关闭跳动\r\n if (!!marker) {\r\n if (t.animTimer[id]) {\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(() => {\r\n //点被隐藏时,没有执行,定时不关\r\n if (marker.symbol) {\r\n let shape = { ...marker.symbol };\r\n //初始数据 点位有变动,重新刷新数据\r\n if (!t.animCount[id] || shape.yoffset != t.animCount[id].now) {\r\n t.animCount[id] = {\r\n start: shape.yoffset,\r\n now: shape.yoffset,\r\n notation: -1,\r\n };\r\n }\r\n if (t.animCount[id].now - t.animCount[id].start == 20) {\r\n t.animCount[id].notation = -1;\r\n }\r\n if (t.animCount[id].now - t.animCount[id].start == 0) {\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.yoffset = t.animCount[id].now =\r\n t.animCount[id].now + t.animCount[id].notation * 2;\r\n marker.symbol.setOffset(shape.xoffset, shape.yoffset);\r\n t.state.gis.graphics.refresh();\r\n }\r\n }, 35);\r\n } else {\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation() {\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(() => {\r\n for (let i = 0; i < t.movePoints.length; i++) {\r\n t.movePoints[i].waitTime += 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),\r\n deleteIndex = [];\r\n for (let i = 0; i < nowMovePoints.length; i++) {\r\n let { id, rx, ry, waitTime, deleteTime, ddeg } = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if (!gc || !gc._graphicsLayer) {\r\n clearInterval(t.moveToTimer);\r\n } else {\r\n let gg = gc.getGeometry();\r\n let tx = gg[0] + rx, ty = gg[1] + ry;\r\n gc.setGeometry([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 //点位移动动画效果\r\n moveTo(id, lnglat, delay, autoRotation, urlright, urlleft) {\r\n delay = delay || 3;\r\n let t = this,\r\n timer = 10;\r\n delay = eval(delay) * 1000;\r\n let count = delay / timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.geometry,\r\n e = { x: lnglat[0], y: lnglat[1] };\r\n if (t.equalsPoint(s, e)) {\r\n return false;\r\n } else {\r\n let ddeg = 0,\r\n url = null;\r\n //计算角度,旋转\r\n if (autoRotation) {\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.geometry, 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 gc.setStyle(new ol.style.Style({\r\n image: new ol.style.Icon({\r\n src: url,\r\n rotation: Math.PI / 180 * ddeg,\r\n })\r\n }))\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.x - s.x) / count,\r\n ry = (e.y - s.y) / 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,\r\n rx,\r\n 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,\r\n rx,\r\n ry,\r\n waitTime: 0,\r\n deleteTime: delay,\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp, ep) {\r\n let t = this;\r\n let spLngLat = sp;\r\n if (Array.isArray(sp)) {\r\n spLngLat = new ol.geom.Point(sp[0], sp[1]);\r\n }\r\n let s = t.state.gis.getPixelFromCoordinate(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.getPixelFromCoordinate(new ol.geom.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 } 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) bias = -1;\r\n else bias = 1;\r\n if (disy == 0) bias = 0;\r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a, b) {\r\n return Immutable.is(Immutable.fromJS(a), Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData, newData, type) {\r\n let onlyOldData = Set(oldData)\r\n .subtract(Set(newData))\r\n .toJS();\r\n let onlyNewData = Set(newData)\r\n .subtract(Set(oldData))\r\n .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)\r\n .intersect(Set(onlyNewIDs))\r\n .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 = [],\r\n 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 = [],\r\n otherads = [];\r\n for (let i = 0; i < ary.length; i++) {\r\n if (ids.indexOf(ary[i].id) > -1) {\r\n upds.push(ary[i]);\r\n } else {\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return { upds, otherads };\r\n }\r\n\r\n render() {\r\n let t = this;\r\n let _map = this.props;\r\n return <div id={_map.mapId} style={{ width: '100%', height: '100%' }}></div>;\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 componentWillReceiveProps(nextProps, prevProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [], mapLines = [], mapPolygons = [], mapCircles = [], customizedBoundary = [],\r\n isOpenTrafficInfo, boundaryName, heatMapData,\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, olProps\r\n } = nextProps;\r\n // 等待地图加载\r\n if (!t.state.mapCreated) return;\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if (mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints, t.props.mapPoints)) {\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if (!!t.editId) {\r\n oldMapPoints = t.props.mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n newMapPoints = mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPoints, newMapPoints, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...pointIds, ...point]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...pointIds, ...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'point');\r\n }\r\n //增加\r\n t.addPoint([...ads, ...otherads]);\r\n //更新\r\n t.updatePoint([...upds, ...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines, t.props.mapLines)) {\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if (!!t.editId) {\r\n oldMapLines = t.props.mapLines.filter((item) => { return item.id !== editGraphicId });\r\n newMapLines = mapLines.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapLines, newMapLines, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...lineIds, ...polyline]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...lineIds, ...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'line');\r\n }\r\n //增加\r\n t.addLine([...ads, ...otherads]);\r\n //更新\r\n t.updateLine([...upds, ...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons, t.props.mapPolygons)) {\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if (!!t.editId) {\r\n oldMapPolygons = t.props.mapPolygons.filter((item) => { return item.id !== editGraphicId });\r\n newMapPolygons = mapPolygons.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPolygons, newMapPolygons, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...rectangle, ...polygon, ...polygonIds]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...rectangle, ...polygon, ...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads, ...otherads]);\r\n //更新\r\n t.updatePolygon([...upds, ...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles, t.props.mapCircles)) {\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if (!!t.editId) {\r\n oldMapCircles = t.props.mapCircles.filter((item) => { return item.id !== editGraphicId });\r\n newMapCircles = mapCircles.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapCircles, newMapCircles, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...circleIds, ...circle]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...circleIds, ...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads, ...otherads]);\r\n //更新\r\n t.updateCircle([...upds, ...otherupds]);\r\n }\r\n //图元编辑调用\r\n if ((typeof (isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)) {\r\n t.doEdit(editGraphicId);\r\n }\r\n // 获取热力图\r\n if (heatMapData && heatMapData.data && !t.deepEqual(heatMapData, t.props.heatMapData)) {\r\n t.heatMapOverlay(heatMapData);\r\n }else if(!t.deepEqual(heatMapData, t.props.heatMapData)){\r\n t.clearHeatMap(heatMapData);\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 (isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)) {\r\n t.vtxRangingTool(mapRangingTool);\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 (setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)) {\r\n // if (!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])) {\r\n // t.setCenter(mapCenter);\r\n // }\r\n // }\r\n if(nextProps.mapCenter &&nextProps.mapCenter.length>0 && JSON.stringify(nextProps.mapCenter)!==JSON.stringify(this.props.mapCenter)){\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 }else if(setCluster !== t.props.setCluster){\r\n t.clearCluster();\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 (isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)) {\r\n mapRemove.map((item, index) => {\r\n t.removeGraphic(item.id, item.type);\r\n });\r\n }\r\n //设置区域限制\r\n if ((typeof (isSetAreaRestriction) == 'boolean' && isSetAreaRestriction)\r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction)\r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if ((typeof (isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)) {\r\n t.clearAreaRestriction();\r\n }\r\n // 设置地图层级\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\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.olProps && JSON.stringify(nextProps.olProps) !== JSON.stringify(t.props.olProps)) {\r\n t.loadLayers(nextProps.olProps.olCoverage, t.props.olProps.olCoverage);\r\n }\r\n }\r\n // 地图事件\r\n //地图点击事件\r\n clickMap(e) {\r\n let t = this;\r\n if (typeof t.props.clickMap === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: e.coordinate ? e.coordinate[0] : undefined,\r\n lat: e.coordinate ? e.coordinate[1] : undefined,\r\n };\r\n obj.pixel = {\r\n x: e.pixel ? e.pixel[0] : undefined,\r\n y: e.pixel ? e.pixel[1] : undefined,\r\n };\r\n let temp = [];\r\n t.olLayers.map(item=>{\r\n if(item.layer){\r\n temp.push(t.getFeatureInfo(e,t.state.gis.getView(),item.layer.getSource()));\r\n }\r\n })\r\n if(temp.length){\r\n obj.features = temp;\r\n }\r\n t.props.clickMap(obj);\r\n }\r\n }\r\n // 获取geoServer要素\r\n getFeatureInfo(event, view, source) {\r\n let url = source.getFeatureInfoUrl(event.coordinate, view.getResolution(), view.getProjection(), {\r\n cql_filter: source.params_?.cql_filter,\r\n QUERY_LAYERS: source.params_?.layers,\r\n INFO_FORMAT: 'application/json',\r\n REQUEST: \"GetFeatureInfo\",\r\n FEATURE_COUNT: 50,\r\n });\r\n let {param, address} = this.formatUrl(url);\r\n // let temp = param.BBOX.split(\",\");\r\n // let BBOX = [temp[1],temp[0],temp[3],temp[2]].join(\",\");\r\n // param.BBOX = BBOX;\r\n param.QUERY_LAYERS = param.LAYERS;\r\n temp=[];\r\n for(let key in param){\r\n temp.push(`${key}=${param[key]}`);\r\n }\r\n address += `?${temp.join(\"&\")}`;\r\n const geoJsonFormat = new ol.format.GeoJSON();\r\n return fetch(address)\r\n .then(res => res.json())\r\n .then(data => {\r\n let features = [];\r\n if (data?.features?.length) {\r\n features = geoJsonFormat.readFeatures(data);\r\n features.map(item => {\r\n item.key = this?.key;\r\n });\r\n }\r\n return features;\r\n })\r\n .catch(() => {\r\n return [];\r\n });\r\n }\r\n // 要素鼠标悬浮事件\r\n mouseOverGraphic(id, e) {\r\n let t = this;\r\n if (t.state.editId == id) return false;\r\n if (typeof t.props.mouseOverGraphic === 'function') {\r\n let obj = {\r\n e,\r\n id,\r\n param: t.getGraphic(id),\r\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\r\n left: e.pixel ? e.pixel[1] : undefined,\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,\r\n id,\r\n param: t.getGraphic(id),\r\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\r\n left: e.pixel ? e.pixel[1] : undefined,\r\n };\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(e) {\r\n let t = this;\r\n if (typeof t.props.dragMapStart === 'function') {\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 dragMapEnd(e) {\r\n let t = this;\r\n if (typeof t.props.dragMapEnd === 'function') {\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 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 gradient: ['#00f', '#0ff', '#0f0', '#ff0', '#f00'],\r\n };\r\n if (d.config) {\r\n cg = { ...cg, ...d.config };\r\n }\r\n let gradient = [];\r\n if (cg.gradient) {\r\n for (let key in cg.gradient) {\r\n gradient.push(cg.gradient[key])\r\n }\r\n cg.gradient = gradient;\r\n }\r\n // if(d.data){\r\n // t.state.pointIds = [];\r\n // t.pointLayers.map(item => {\r\n // t.state.gis.removeLayer(item.layer);\r\n // t.pointLayers=[];\r\n // })\r\n // }\r\n const heatData = {\r\n type: 'FeatureCollection',\r\n features: (d.data || []).map(item => {\r\n return {\r\n type: 'Feature',\r\n properties: {\r\n weight: item.count ? item.count / 100 : 0.5,\r\n },\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [item.lng, item.lat],\r\n }\r\n }\r\n })\r\n }\r\n let heatSource = new ol.source.Vector({\r\n features: new ol.format.GeoJSON().readFeatures(heatData)\r\n })\r\n t.heatmap = new ol.layer.Heatmap({\r\n name: 'heatmap',\r\n source: heatSource,\r\n radius: cg.radius,\r\n visible: cg.visible,\r\n blur: eval(cg.opacity) * 100,\r\n gradient: gradient,\r\n weight: (e) => {\r\n return e.getProperties().count;//根据权重展示热力图!关键点,weight范围为:0-1!!!\r\n },\r\n });\r\n t.state.gis.addLayer(t.heatmap);\r\n\r\n }\r\n clearHeatMap(){\r\n const t = this;\r\n if(t.heatmap)\r\n t.state.gis.removeLayer(t.heatmap);\r\n t.heatmap = null;\r\n t.refresh();\r\n }\r\n //地图移动之前事件\r\n moveStart(e) {\r\n let t = this;\r\n if (typeof t.props.moveStart === 'function') {\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 moveEnd(e) {\r\n let t = this;\r\n if (typeof t.props.moveEnd === 'function') {\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 zoomStart(e) {\r\n let t = this;\r\n if (typeof (t.props.zoomStart) === 'function') {\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 zoomEnd(e) {\r\n let t = this;\r\n if (typeof (t.props.zoomEnd) === 'function') {\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 clickGraphic(id, e, target = {}) {\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if (t.editId == id) return false;\r\n if (typeof t.props.clickGraphic === 'function') {\r\n const [clientX, clientY] = e.pixel;\r\n let param = t.getGraphic(id, clientX, clientY);\r\n let obj = {\r\n param,\r\n info: target,\r\n type: param ? param.geometry.type : null, //图元类型\r\n attributes: param ? { ...param.attributes.other, ...{ config: param.attributes.config } } : null, //添加时图元信息\r\n top: clientY, //当前点所在的位置(屏幕)\r\n left: clientX,\r\n e: e,\r\n };\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for (let j in t.animTimer) {\r\n if (t.animTimer[j]) {\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\r\n }\r\n}\r\nexport default OlMap;\r\n\r\nclass Popup extends React.Component{\r\n constructor(props){\r\n super();\r\n this.map = props.map;\r\n this.position = props.position;\r\n this.overlay = null;\r\n this.container = null;\r\n this.innerHTML = props.innerHTML;\r\n this.closeble = props.close;\r\n }\r\n \r\n // 弹出框\r\n showPopup () {\r\n const t = this;\r\n this.removePopup()\r\n // 获取弹出层DOM\r\n t.container = document.createElement(\"div\");\r\n t.container['className'] = \"ol-popup\";\r\n if(t.closeble){\r\n let close = document.createElement(\"a\");\r\n close['className'] = \"ol-popup-closer\";\r\n close.addEventListener(\"click\",(e)=>{\r\n t.removePopup();\r\n })\r\n t.container.appendChild(close);\r\n }\r\n let content = document.createElement(\"div\");\r\n t.container.appendChild(content);\r\n if (t.overlay) {\r\n } else {\r\n // 创建Overlay弹出层绑定DOM\r\n t.overlay = new ol.Overlay({\r\n element: t.container,\r\n autoPan: {\r\n animation: {\r\n duration: 250\r\n }\r\n }\r\n })\r\n // 添加到map\r\n t.map.addOverlay(t.overlay)\r\n }\r\n // 弹出层内容\r\n content.innerHTML = t.innerHTML;\r\n // 设置弹出层位置即可出现\r\n t.overlay.setPosition(t.position)\r\n }\r\n // 清除弹出框\r\n removePopup () {\r\n if (this.overlay) {\r\n this.container.remove();\r\n // 设置位置undefined可达到隐藏清除弹出框\r\n this.overlay.setPosition(undefined);\r\n this.overlay = null;\r\n }\r\n }\r\n}\r\n\r\nfunction getRgbColor(color, opacity) {\r\n const reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;\r\n if (!reg.test(color) && typeof(color) !== 'string') {\r\n return;\r\n }\r\n let newStr = color.toLowerCase().replace(/\\#/g, '');\r\n let len = newStr.length;\r\n if (len == 3) {\r\n let t = '';\r\n for (var i = 0; i < len; i++) {\r\n t += newStr.slice(i, i + 1).concat(newStr.slice(i, i + 1));\r\n }\r\n newStr = t;\r\n }\r\n let arr = []; //将字符串分隔,两个两个的分隔\r\n for (var i = 0; i < 6; i = i + 2) {\r\n let s = newStr.slice(i, i + 2);\r\n arr.push(parseInt('0x' + s));\r\n }\r\n return 'rgba(' + arr.join(',') + ',' + opacity + ')';\r\n}\r\n\r\n// 压缩图片的方法\r\nfunction canvasDataURL(path, obj, callback) {\r\n var img = new Image();\r\n img.src = path;\r\n img.setAttribute(\"crossOrigin\", 'Anonymous')\r\n img.onload = function () {\r\n var that = this;\r\n // 默认按比例压缩\r\n var w = that.width,\r\n h = that.height,\r\n scale = w / h;\r\n w = obj.width || w;\r\n h = obj.height || (w / scale);\r\n var quality = 0.7; // 默认图片质量为0.7\r\n //生成canvas\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n // 创建属性节点\r\n var anw = document.createAttribute(\"width\");\r\n anw.nodeValue = w;\r\n var anh = document.createAttribute(\"height\");\r\n anh.nodeValue = h;\r\n canvas.setAttributeNode(anw);\r\n canvas.setAttributeNode(anh);\r\n ctx.drawImage(that, 0, 0, w, h);\r\n // 图像质量\r\n if (obj.quality && obj.quality <= 1 && obj.quality > 0) {\r\n quality = obj.quality;\r\n }\r\n // quality值越小,所绘制出的图像越模糊\r\n var base64 = canvas.toDataURL('image/png', quality);\r\n // 回调函数返回base64的值\r\n callback(base64);\r\n }\r\n}\r\n"],"mappings":"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"}
|