@vtx/map 1.2.23 → 1.2.24
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/AMap/AMap.js +658 -1035
- package/lib/VtxMap/AMap/AMap.js.map +1 -1
- package/lib/VtxMap/BMap/Map.js +781 -1227
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/GMap/Map.js +1063 -1583
- package/lib/VtxMap/GMap/Map.js.map +1 -1
- package/lib/VtxMap/Map.js +23 -59
- package/lib/VtxMap/Map.js.map +1 -1
- package/lib/VtxMap/MapToolFunction.js +30 -67
- package/lib/VtxMap/MapToolFunction.js.map +1 -1
- package/lib/VtxMap/OMap/Map.js +888 -1384
- package/lib/VtxMap/OMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +789 -1329
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/TMap/TMap.js +680 -1097
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxMap/index.js +2 -9
- package/lib/VtxMap/index.js.map +1 -1
- package/lib/VtxMap/mapPlayer.js +74 -131
- package/lib/VtxMap/mapPlayer.js.map +1 -1
- package/lib/VtxMap/optimizingPointMap.js +42 -101
- package/lib/VtxMap/optimizingPointMap.js.map +1 -1
- package/lib/VtxMap/style/css.js +0 -6
- package/lib/VtxMap/style/css.js.map +1 -1
- package/lib/VtxMap/style/index.js +0 -6
- package/lib/VtxMap/style/index.js.map +1 -1
- package/lib/VtxMap/zoomMap.js +25 -56
- package/lib/VtxMap/zoomMap.js.map +1 -1
- package/lib/VtxModal/VtxModal.js +34 -80
- package/lib/VtxModal/VtxModal.js.map +1 -1
- package/lib/VtxModal/draggableModal.js +30 -68
- package/lib/VtxModal/draggableModal.js.map +1 -1
- package/lib/VtxModal/index.js +2 -7
- package/lib/VtxModal/index.js.map +1 -1
- package/lib/VtxModal/style/css.js +0 -6
- package/lib/VtxModal/style/css.js.map +1 -1
- package/lib/VtxModal/style/index.js +0 -6
- package/lib/VtxModal/style/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +123 -259
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
- package/lib/VtxSearchCheckMap/index.js +1 -3
- package/lib/VtxSearchCheckMap/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/mapping.js +1 -2
- package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/css.js +0 -19
- package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/index.js +0 -19
- package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.js +140 -319
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/lib/VtxSearchMap/index.js +1 -3
- package/lib/VtxSearchMap/index.js.map +1 -1
- package/lib/VtxSearchMap/mapping.js +1 -2
- package/lib/VtxSearchMap/mapping.js.map +1 -1
- package/lib/VtxSearchMap/style/css.js +0 -19
- package/lib/VtxSearchMap/style/css.js.map +1 -1
- package/lib/VtxSearchMap/style/index.js +0 -19
- package/lib/VtxSearchMap/style/index.js.map +1 -1
- package/lib/default.js +4 -13
- package/lib/default.js.map +1 -1
- package/lib/index.js +0 -3
- package/lib/index.js.map +1 -1
- package/lib/utils/util.js +15 -40
- package/lib/utils/util.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","names":["Set","Immutable","defaultMarker","require","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","indexOf","addTileLayer","JSON","parse","layers","initLayer","isArray","state","gis","addLayer","OL_SCREEN","eval","tmap_normal","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","pointLayerZIndex","polylineLayerZIndex","polygonLayerZIndex","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","mapCreated","mapId","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","frameSelectProps","pointFeatureLayer","imgCache","ImgCache","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","pointsFeature","setCenter","Array","addPointLayer","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","event","status","overall_feature","dragAddMoveFlag","on","getTargetElement","classList","add","remove","evt","forEachFeatureAtPixel","pixel","target","getProperties","id","elementId","features","properties","element","clickGraphic","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","options","url","params","sourceOptions","matrixIds","resolutions","tilegrid","WMTS","extent","tileSize","origin","proj","Projection","code","units","axisOrientation","format","matrixSet","tileGrid","layerSource","getWMTS","XYZ","Tile","push","TileSuperMapRest","vectorSource","GeoJSON","join","strategy","loadingstrategy","bbox","el","A","icon","mapIcon","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","param","split","json","toUpperCase","decodeURIComponent","formatUrl","ImageWMS","serverType","crossOrigin","ratio","VERSION","Image","arr","fitView","getCenter","gt","getZoomLevel","obj","showInfoWindow","hideInfoWindow","callback","frameSelect","clearFrameSelect","clearFrameSelectById","refresh","c","lng","lat","getView","animate","duration","z","getZoom","setZoom","calculateExtent","getSize","xmin","ymin","xmax","ymax","gc","getGraphic","gp","getGraphicParam","endEdit","interaction","Modify","hitDetection","addInteraction","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","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","Function","Circle","createHelpTooltip","createMeasureTooltip","createDeleteTooltip","tooltipCoord","coordinate","geom","lngLats","output","formatLength","getLastCoordinate","lnglats","innerHTML","setPosition","setOffset","className","Observable","unByKey","parentNode","removeChild","document","createElement","Overlay","offset","positioning","addOverlay","stopEvent","insertFirst","addEventListener","removeOverlay","removeLayer","n","round","nowBounds","southWest","northEast","nowCenter","mapSize","arg","ary","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","size","shape","VotexpointCollection","GMapLib","value","ds","ind","reDraw","clear","message","warn","random","lineColor","lineOpacity","key","popupWindow","Popup","position","content","close","showPopup","removePopup","ps","psids","console","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","setState","dealPoint","overlay","getOverlayById","setElement","changed","rotation","setGeometry","requestIdleCallback","isEmpty","temp","get","log","set","setId","getPointStyle","getSource","oldFeatures","getFeatures","newFeatures","updateFeatureIds","feat","getId","stringify","getStyle","removeFeature","addFeatures","timer","clearTimeout","redrawText","ls","lsids","isHidden","LineString","lineLayer","itt","pgs","pgsids","Polygon","polygonLayer","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeGraphicParam","getLayers","hMap","clearAllPointCollection","closeDraw","clearAll","cs","removeControl","ScaleLine","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","setSource","clusterHullStyle","clusterStyle","clusterCircleStyle","clusterMemberStyle","clusterMember","getImage","getText","resolution","clusterMembers","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","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","clearCluster","clearAreaRestriction","getMapExtent","clickLngLat","getFeatureInfo","sourceParam","getParams","getFeatureInfoUrl","getResolution","cql_filter","QUERY_LAYERS","INFO_FORMAT","REQUEST","FEATURE_COUNT","LAYERS","geoJsonFormat","fetch","readFeatures","visible","gradient","heatData","weight","heatSource","Heatmap","blur","info","updateSize","j","React","Component","container","closeble","appendChild","animation","reg","test","newStr","toLowerCase","replace","parseInt","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL","imgs"],"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 { get, isArray, isEmpty } from 'lodash';\r\nconst { Set } = Immutable;\r\nconst defaultMarker = require(\"../images/defaultMarker.png\");\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 this.pointLayerZIndex = props.pointLayerZIndex || 7;\r\n this.polylineLayerZIndex = props.polylineLayerZIndex || 6;\r\n this.polygonLayerZIndex = props.polygonLayerZIndex || 5;\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.mapCreated = false;\r\n this.state = {\r\n gis: null, //地图对象\r\n mapId: props.mapId,\r\n pointIds: [], //地图上点的ids\r\n lineIds: [], //地图上线的ids\r\n polygonIds: [], //地图上面的ids\r\n circleIds: [], //地图上圆的ids\r\n 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.frameSelectProps = {};\r\n this.pointFeatureLayer = null;\r\n this.imgCache = new ImgCache();\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 pointsFeature\r\n } = t.props;\r\n // 初始化中心点\r\n t.setCenter();\r\n // 添加点\r\n if (pointsFeature instanceof Array) {\r\n t.addPointLayer(pointsFeature);\r\n }\r\n // 添加点\r\n if (mapPoints instanceof Array) {\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if (mapLines instanceof Array) {\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if (mapPolygons instanceof Array) {\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if (mapCircles instanceof Array) {\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if (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 this.mapCreated = true;\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 if(gis.getTargetElement()){\r\n gis.getTargetElement().classList.add('spinner');\r\n }\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n if(gis.getTargetElement()){\r\n gis.getTargetElement().classList.remove('spinner');\r\n }\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 let id = ''\r\n let elementId = ''\r\n if (isArray(target.features)) { // 处理聚合点击\r\n const properties = target.features[0].getProperties();\r\n id = properties.id;\r\n elementId = properties.id;\r\n target = target.features\r\n } else {\r\n id = target.id;\r\n elementId = target.element\r\n }\r\n // top: e.clientY,//当前点所在的位置(屏幕)\r\n // left: e.clientX,\r\n t.clickGraphic(id || 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 if(gis.getTargetElement()){\r\n gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\r\n }\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(\r\n item.coverage.startsWith(\"http\") || \r\n item.coverage.startsWith('/')\r\n ){\r\n switch(item.type) {\r\n // 超图\r\n case 'superMap':\r\n t.addSuperMapLayer(item.coverage);\r\n break;\r\n case 'geoServer':\r\n t.addGeoServerLayer(item.coverage);\r\n break;\r\n case 'geoServer_image':\r\n t.addGeoServerImageLayer(item);\r\n break;\r\n default:\r\n break;\r\n }\r\n }else if(item.coverage.indexOf(\"WMTS\")>-1){\r\n t.addTileLayer(JSON.parse(item.coverage));\r\n }else if(item.coverage == 'customLayer'){\r\n let layers = item.initLayer();\r\n if(layers){\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 }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 layers = eval(OL_SCREEN.tmap_normal.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\r\n // wmts图层资源\r\n getWMTS(options) {\r\n const { url, params, sourceOptions } = options;\r\n \r\n //切片名\r\n let matrixIds = [\r\n 'EPSG:4326:0',\r\n 'EPSG:4326:1',\r\n 'EPSG:4326:2',\r\n 'EPSG:4326:3',\r\n 'EPSG:4326:4',\r\n 'EPSG:4326:5',\r\n 'EPSG:4326:6',\r\n 'EPSG:4326:7',\r\n 'EPSG:4326:8',\r\n 'EPSG:4326:9',\r\n 'EPSG:4326:10',\r\n 'EPSG:4326:11',\r\n 'EPSG:4326:12',\r\n 'EPSG:4326:13',\r\n 'EPSG:4326:14',\r\n 'EPSG:4326:15',\r\n 'EPSG:4326:16',\r\n 'EPSG:4326:17',\r\n 'EPSG:4326:18',\r\n ];\r\n \r\n //分辨率\r\n let resolutions = [\r\n 0.703125,\r\n 0.3515625,\r\n 0.17578125,\r\n 0.087890625,\r\n 0.0439453125,\r\n 0.02197265625,\r\n 0.010986328125,\r\n 0.0054931640625,\r\n 0.00274658203125,\r\n 0.001373291015625,\r\n 6.866455078125e-4,\r\n 3.4332275390625e-4,\r\n 1.71661376953125e-4,\r\n 8.58306884765625e-5,\r\n 4.291534423828125e-5,\r\n 2.1457672119140625e-5,\r\n 1.0728836059570312e-5,\r\n 5.364418029785156e-6,\r\n 2.682209014892578e-6,\r\n ];\r\n \r\n //切片策略\r\n let tilegrid = new ol.tilegrid.WMTS({\r\n extent: [-180.0, -90.0, 180.0, 90.0], //范围\r\n tileSize: [256, 256],\r\n origin: [-180.0, 90.0], //切片原点\r\n resolutions: resolutions, //分辨率\r\n matrixIds: matrixIds, //层级标识列表,与地图级数保持一致\r\n });\r\n \r\n //设置地图投影\r\n let projection = new ol.proj.Projection({\r\n code: 'EPSG:4326',\r\n units: 'degrees',\r\n axisOrientation: 'neu',\r\n });\r\n \r\n return new ol.source.WMTS({\r\n url: url,\r\n layer: params?.layer,\r\n format: 'image/png',\r\n matrixSet: 'EPSG:4326',\r\n projection: projection,\r\n tileGrid: tilegrid,\r\n ...sourceOptions,\r\n });\r\n }\r\n \r\n // 添加普通图层\r\n addTileLayer({url,params={}, sourceOptions={}, type, source}){\r\n if(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 layerSource = source || (type==='WMTS'?\r\n this.getWMTS({url,params,sourceOptions})\r\n : new ol.source.XYZ({\r\n url,\r\n ...sourceOptions,\r\n })\r\n )\r\n const layer = new ol.layer.Tile({\r\n source: layerSource\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 // 添加超图图层\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(item) {\r\n let url = item.coverage;\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 ...(item.param||{}),\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[\"fitView\"] = (arr) => {\r\n t.fitView(arr);\r\n }\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[\"frameSelect\"] = (obj={},callback) => {\r\n return t.frameSelect(obj,callback);\r\n }\r\n t.state.gis[\"clearFrameSelect\"] = () => {\r\n return t.clearFrameSelect();\r\n }\r\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\r\n return t.clearFrameSelectById(id);\r\n }\r\n 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(!t.state.gis){\r\n return;\r\n }\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 hitDetection: true\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 if(t.frameSelectProps[param.attributes.id]?.callback instanceof Function){\r\n t.frameSelectProps[param.attributes.id].callback(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 fitView(arr=[]){\r\n const t= this;\r\n if(arr?.length >0){\r\n let displayRange = new ol.extent.boundingExtent(arr);\r\n t.state.gis.getView().fit(displayRange, t.state.gis.getSize());\r\n }\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 frameSelect({geometryType,parameter={},data={}},callback){\r\n if(!['polygon','circle','rectangle'].includes(geometryType)){\r\n message.warn(\"传入的类型不支持框选!\")\r\n return false;\r\n }\r\n const t = this;\r\n let params = {},\r\n type = geometryType||'polygon',\r\n id = data.id || `frameSelectFeature_${Math.random()}`;\r\n\r\n params.color = parameter.color||'#FF0000';\r\n params.lineColor = parameter.lineColor||'#FF0000';\r\n params.lineOpacity = parameter.lineOpacity||1;\r\n params.lineWidth = parameter.lineWidth||2;\r\n params.pellucidity = parameter.pellucidity||0.6;\r\n params.lineType = parameter.lineType||'solid';\r\n\r\n t.draw({\r\n geometryType: type,\r\n parameter: {\r\n ...parameter,\r\n ...params\r\n },\r\n data:{\r\n id: id\r\n }\r\n });\r\n\r\n t.frameSelectProps[id] = {\r\n callback,\r\n id,\r\n type: geometryType\r\n } \r\n }\r\n // 清除框选\r\n clearFrameSelect(){\r\n for(let key in this.frameSelectProps){\r\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\r\n }\r\n this.frameSelectProps = {};\r\n }\r\n // 清除框选ById\r\n clearFrameSelectById(id){\r\n let obj = this.frameSelectProps[id];\r\n this.removeGraphic(obj.id, obj.type);\r\n delete this.frameSelectProps[id];\r\n }\r\n /*\r\n * 添加信息窗口\r\n * 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 zIndex: t.pointLayerZIndex\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 let index = 0;\r\n const dealPoint = (item) => {\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 if (index < mapPoints.length - 1) {\r\n requestIdleCallback(() => dealPoint(mapPoints[++index]))\r\n } else {\r\n t.refresh();\r\n }\r\n }\r\n if (!isEmpty(mapPoints)) {\r\n requestIdleCallback(() => dealPoint(mapPoints[index]))\r\n }\r\n }\r\n // 点位样式\r\n getPointStyle(item){\r\n let t = this;\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\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 attributes: { ...item, other: item }\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 let url = item.url || defaultMarker;\r\n let temp = t.imgCache.get(url);\r\n if(temp){\r\n console.log(item.id);\r\n myImage.src = temp;\r\n }else {\r\n // myImage.src = url;\r\n // t.imgCache.set(url, url);\r\n canvasDataURL(\r\n url,\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n t.imgCache.set(url, base64);\r\n }\r\n )\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 return style;\r\n }\r\n // 添加点位图层\r\n addPointLayer(points){\r\n let t = this;\r\n \r\n let features = [];\r\n points?.map(item=>{\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 feature.setId(item.id);\r\n\r\n let style = t.getPointStyle(item);\r\n\r\n feature.setStyle(style);\r\n features.push(feature);\r\n t.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 });\r\n })\r\n if(t.pointFeatureLayer){\r\n let source = t.pointFeatureLayer.getSource();\r\n console.log(source);\r\n \r\n let oldFeatures = source.getFeatures();\r\n let newFeatures = [], updateFeatureIds = [];\r\n oldFeatures.map(feat=>{\r\n let obj = features.find(p=>p.getId() == feat.getId())\r\n if(obj){\r\n if(JSON.stringify(obj.getStyle()) !== JSON.stringify(feat.getStyle())){\r\n feat.setStyle(obj.getStyle());\r\n }\r\n if(JSON.stringify(obj.getGeometry()) !== JSON.stringify(feat.getGeometry())){\r\n feat.setGeometry(obj.getGeometry());\r\n }\r\n updateFeatureIds.push(feat.getId());\r\n }else {\r\n source.removeFeature(feat);\r\n }\r\n })\r\n newFeatures = features.filter(p=>!updateFeatureIds.includes(p.getId()));\r\n if(newFeatures.length>0){\r\n t.pointFeatureLayer.getSource().addFeatures(newFeatures);\r\n }\r\n // t.pointFeatureLayer.getSource().clear();\r\n // t.pointFeatureLayer.getSource().addFeatures(features);\r\n }else {\r\n let source = new ol.source.Vector({\r\n features: features,\r\n });\r\n let pointLayer = new ol.layer.Vector({\r\n name: 'point_layer',\r\n source,\r\n id: 'point_layer',\r\n zIndex: t.pointLayerZIndex\r\n });\r\n t.state.gis.addLayer(pointLayer);\r\n t.pointFeatureLayer = pointLayer;\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 zIndex: t.polylineLayerZIndex\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 zIndex: t.polygonLayerZIndex\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 zIndex: t.polygonLayerZIndex\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.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 if (t.clusterInfo.clusterHulls) {\r\n t.clusterInfo.clusterHulls.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusterHulls = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterHullStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterHulls);\r\n }\r\n \r\n if (t.clusterInfo.clusters) {\r\n t.clusterInfo.clusters.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusters = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusters);\r\n }\r\n if (t.clusterInfo.clusterCircles) {\r\n t.clusterInfo.clusterCircles.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusterCircles = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterCircleStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterCircles);\r\n }\r\n\r\n \r\n function clusterMemberStyle(clusterMember) {\r\n let style = clusterMember.getStyle();\r\n let image = style&&style.getImage ? style.getImage() : null;\r\n let text = style&&style.getText ? style.getText() : null;\r\n return new ol.style.Style({\r\n image: image,\r\n text: text\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 > 2) {\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 return feature.get('features').map(originalFeature => clusterMemberStyle(originalFeature))\r\n }\r\n }\r\n }\r\n clearCluster(arg){\r\n const t = this;\r\n let ids = (arg && arg?.length>0) ? arg : t.state.pointIds;\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 ids.map(id=>{\r\n if(t.GM.getGraphic(id)){\r\n t.GM.removeGraphic(id);\r\n }\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1)\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 UNSAFE_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, pointsFeature=[]\r\n } = nextProps;\r\n // 等待地图加载\r\n if (!t.mapCreated) return;\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if (pointsFeature instanceof Array && !t.deepEqual(pointsFeature, t.props.pointsFeature)){\r\n t.addPointLayer(pointsFeature);\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 let index = 0;\r\n const removeGraphic = (id) => {\r\n t.removeGraphic(id, 'point');\r\n if (index < deletedDataIDs.length -1) {\r\n requestIdleCallback(() => removeGraphic(deletedDataIDs[++index]))\r\n }\r\n }\r\n if (!isEmpty(deletedDataIDs)) {\r\n removeGraphic(deletedDataIDs[index])\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 }\r\n\r\n if(!setCluster && setCluster !== t.props.setCluster){\r\n t.clearCluster(mapCluster);\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 sourceParam = source.getParams();\r\n let url = source.getFeatureInfoUrl(event.coordinate, view.getResolution(), view.getProjection(), {\r\n cql_filter: sourceParam?.cql_filter,\r\n QUERY_LAYERS: sourceParam?.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 let 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 } } : (e.attributes||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 // 地图重新渲染大小\r\n updateSize(){\r\n const t = this;\r\n t.state.gis.updateSize();\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\r\nclass ImgCache{\r\n constructor(props){\r\n this.imgs = {};\r\n }\r\n\r\n set(key, value){\r\n this.imgs[key] = value;\r\n }\r\n\r\n get(key){\r\n return this.imgs[key];\r\n }\r\n\r\n remove(key){\r\n let obj = {...this.imgs};\r\n delete obj[key];\r\n this.imgs = obj;\r\n }\r\n\r\n clear(){\r\n this.imgs = {};\r\n }\r\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_default2","_MapToolFunction","_immutable","_lodash","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","name","test","l","i","Object","push","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","_defineProperties","configurable","writable","_toPropertyKey","key","_createClass","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","Set","Immutable","defaultMarker","OlMap","_React$Component","props","_this","nextLayers","undefined","currentLayers","first","addLayers","item","map","coverage","includes","removeLayers","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","addGeoServerImageLayer","indexOf","addTileLayer","JSON","parse","layers","initLayer","state","gis","addLayer","OL_SCREEN","eval","tmap_normal","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","pointLayerZIndex","polylineLayerZIndex","polygonLayerZIndex","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","mapCreated","mapId","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","frameSelectProps","pointFeatureLayer","imgCache","ImgCache","loadMapJs","loadMapComplete","Promise","resolve","reject","window","$","getScript","concat","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","then","attr","rel","href","appendTo","init","_this2","createMap","ol","source","Vector","wrapX","initData","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","pointsFeature","setCenter","addPointLayer","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","event","status","overall_feature","dragAddMoveFlag","on","getTargetElement","classList","add","remove","evt","forEachFeatureAtPixel","pixel","target","getProperties","id","elementId","features","properties","element","clickGraphic","clickMap","getEventPixel","originalEvent","hit","hasFeatureAtPixel","style","cursor","values","mouseOverGraphic","dispatchEvent","mouseOutGraphic","dragMapStart","moveStart","zoom","dragMapEnd","moveEnd","zoomStart","setTimeout","zoomEnd","center","_t$props2","_t$props2$olProps","olProps","_t$props2$mapCenter","mapCenter","mapZoomLevel","minZoom","maxZoom","projection","olCoverage","VtxMap","parseFloat","Map","view","View","controls","control","defaults","rotate","attribution","loadLayers","initPropsForUser","getWMTS","options","url","params","sourceOptions","matrixIds","resolutions","tilegrid","WMTS","extent","tileSize","origin","proj","Projection","code","units","axisOrientation","format","matrixSet","tileGrid","_ref","_ref$params","_ref$sourceOptions","layerSource","XYZ","Tile","TileSuperMapRest","vectorSource","GeoJSON","join","strategy","loadingstrategy","bbox","_icon$","el","A","icon","mapIcon","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","formatUrl","param","split","json","toUpperCase","decodeURIComponent","_this$formatUrl","_this$formatUrl$param","ImageWMS","serverType","crossOrigin","ratio","VERSION","Image","arr","fitView","getCenter","gt","getZoomLevel","obj","showInfoWindow","hideInfoWindow","callback","frameSelect","clearFrameSelect","clearFrameSelectById","refresh","c","lng","lat","getView","animate","duration","setZoomLevel","z","getZoom","setZoom","_gis$getView$calculat","calculateExtent","getSize","_gis$getView$calculat2","xmin","ymin","xmax","ymax","doEdit","gc","getGraphic","gp","getGraphicParam","endEdit","interaction","Modify","hitDetection","addInteraction","geometry","cur","_cur$flatCoordinates","flatCoordinates","attributes","longitude","latitude","other","geometryType","mapLayer","oddList","evenList","index","path","_t$dealData","dealData","lnglatAry","_extent","paths","calculateDistance","_t$dealData2","rings","area","sketchCoords_","sketchCoords_2","radius","sphere","getDistance","Math","PI","pow","editGraphicChange","setGraphic","setGraphicParam","removeInteraction","parameter","data","Date","getTime","len","removeGraphic","splice","anchor","markerContentX","markerContentY","anchorXUnits","anchorYUnits","opacity","geometryFunction","stoke","lineWidth","lineDash","lineType","pellucidity","getRgbColor","Draw","createBox","_t$frameSelectProps$p","finishDrawing","getGeometry","_gc$flatCoordinates","isRepetition","updatePoint","config","height","updateLine","_t$dealData3","updatePolygon","_t$dealData4","getCoordinates","_t$dealData5","updateCircle","drawEnd","Function","closeDraw","vtxRangingTool","Circle","createHelpTooltip","createMeasureTooltip","createDeleteTooltip","tooltipCoord","coordinate","geom","lngLats","output","formatLength","getLastCoordinate","lnglats","innerHTML","setPosition","setOffset","className","Observable","unByKey","parentNode","removeChild","document","createElement","Overlay","offset","positioning","addOverlay","stopEvent","insertFirst","addEventListener","removeOverlay","removeLayer","round","getMapExtent","nowBounds","southWest","northEast","nowCenter","_gis$getSize","_gis$getSize2","mapSize","arg","ary","g","displayRange","boundingExtent","fit","getFitView","ids","maxX","maxY","minX","minY","coord","boundsArry","getExtent","min","max","bounds","getCurrentCenter","gg","p","pts","parseDom","domStr","domObj","childNodes","d","getPixelFromCoordinate","_t$state$gis$getSize","_t$state$gis$getSize2","size","shape","VotexpointCollection","GMapLib","updatePointCollection","ds","ind","_t$state$gis$getSize3","_t$state$gis$getSize4","reDraw","clearPointCollection","clear","clearAllPointCollection","_ref2","_ref2$parameter","_ref2$data","message","warn","random","lineColor","lineOpacity","popupWindow","Popup","position","content","close","showPopup","removePopup","_this3","ps","psids","console","Feature","Point","cg","labelContent","labelPixelX","labelPixelY","zIndex","deg","txt","myImage","markerContent","nodes","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","setState","_this4","dealPoint","overlay","getOverlayById","setElement","changed","rotation","setGeometry","requestIdleCallback","isEmpty","getPointStyle","temp","get","log","set","setId","getSource","oldFeatures","getFeatures","newFeatures","updateFeatureIds","feat","getId","stringify","getStyle","removeFeature","addFeatures","timer","clearTimeout","redrawText","_this5","ls","lsids","isHidden","LineString","lineLayer","itt","_this6","_this7","pgs","pgsids","Polygon","polygonLayer","_this8","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeGraphicParam","clearAll","getLayers","hMap","_t$state","cs","removeControl","ScaleLine","location","addControl","css","left","top","bottom","right","_t$dealData6","_et","setProperties","clearAreaRestriction","dealAreaRestriction","contains","_t$areaRestriction","xmin1","xmax1","ymin1","ymax1","_e$extent","xmin2","xmax2","ymin2","ymax2","ms","getMoreGraphic","getType","label","Cluster","minDistance","setSource","clusterHullStyle","clusterStyle","clusterCircleStyle","clusterMemberStyle","clusterMember","getImage","getText","resolution","clusterMembers","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","res","angle","cos","sin","originalFeatures","originalFeature","clearCluster","containsExtent","e1","e2","czIndex","append","getNode","equalsPoint","b","calculatePointsDistance","fp","ep","totalDistance","lngX","latX","dealLabelGraphics","tl","toScreen","lbl","pointAnimation","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","moveAnimation","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","ddeg","_graphicsLayer","tx","ty","moveTo","lnglat","delay","autoRotation","urlright","urlleft","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","componentDidMount","UNSAFE_componentWillReceiveProps","nextProps","prevProps","_t$state2","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","customizedBoundary","isOpenTrafficInfo","boundaryName","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","_nextProps$pointsFeat","oldMapPoints","newMapPoints","_t$dataMatch","_t$dealAdd","_t$dealUpdate","oldMapLines","newMapLines","_t$dataMatch2","_t$dealAdd2","_t$dealUpdate2","_iterator","_step","err","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd3","_t$dealUpdate3","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd4","_t$dealUpdate4","_iterator3","_step3","clearHeatMap","clickLngLat","getFeatureInfo","_this9","sourceParam","getParams","getFeatureInfoUrl","getResolution","cql_filter","QUERY_LAYERS","INFO_FORMAT","REQUEST","FEATURE_COUNT","_this$formatUrl2","LAYERS","geoJsonFormat","fetch","_data$features","readFeatures","visible","gradient","heatData","weight","heatSource","Heatmap","blur","_e$pixel","info","updateSize","componentWillUnmount","j","React","Component","_default","exports","_React$Component2","_this0","container","closeble","appendChild","animation","reg","newStr","toLowerCase","replace","parseInt","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL","imgs","module"],"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 { get, isArray, isEmpty } from 'lodash';\r\nconst { Set } = Immutable;\r\nconst defaultMarker = require(\"../images/defaultMarker.png\");\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 this.pointLayerZIndex = props.pointLayerZIndex || 7;\r\n this.polylineLayerZIndex = props.polylineLayerZIndex || 6;\r\n this.polygonLayerZIndex = props.polygonLayerZIndex || 5;\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.mapCreated = false;\r\n this.state = {\r\n gis: null, //地图对象\r\n mapId: props.mapId,\r\n pointIds: [], //地图上点的ids\r\n lineIds: [], //地图上线的ids\r\n polygonIds: [], //地图上面的ids\r\n circleIds: [], //地图上圆的ids\r\n 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.frameSelectProps = {};\r\n this.pointFeatureLayer = null;\r\n this.imgCache = new ImgCache();\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 pointsFeature\r\n } = t.props;\r\n // 初始化中心点\r\n t.setCenter();\r\n // 添加点\r\n if (pointsFeature instanceof Array) {\r\n t.addPointLayer(pointsFeature);\r\n }\r\n // 添加点\r\n if (mapPoints instanceof Array) {\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if (mapLines instanceof Array) {\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if (mapPolygons instanceof Array) {\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if (mapCircles instanceof Array) {\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if (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 this.mapCreated = true;\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 if(gis.getTargetElement()){\r\n gis.getTargetElement().classList.add('spinner');\r\n }\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n if(gis.getTargetElement()){\r\n gis.getTargetElement().classList.remove('spinner');\r\n }\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 let id = ''\r\n let elementId = ''\r\n if (isArray(target.features)) { // 处理聚合点击\r\n const properties = target.features[0].getProperties();\r\n id = properties.id;\r\n elementId = properties.id;\r\n target = target.features\r\n } else {\r\n id = target.id;\r\n elementId = target.element\r\n }\r\n // top: e.clientY,//当前点所在的位置(屏幕)\r\n // left: e.clientX,\r\n t.clickGraphic(id || 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 if(gis.getTargetElement()){\r\n gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\r\n }\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(\r\n item.coverage.startsWith(\"http\") || \r\n item.coverage.startsWith('/')\r\n ){\r\n switch(item.type) {\r\n // 超图\r\n case 'superMap':\r\n t.addSuperMapLayer(item.coverage);\r\n break;\r\n case 'geoServer':\r\n t.addGeoServerLayer(item.coverage);\r\n break;\r\n case 'geoServer_image':\r\n t.addGeoServerImageLayer(item);\r\n break;\r\n default:\r\n break;\r\n }\r\n }else if(item.coverage.indexOf(\"WMTS\")>-1){\r\n t.addTileLayer(JSON.parse(item.coverage));\r\n }else if(item.coverage == 'customLayer'){\r\n let layers = item.initLayer();\r\n if(layers){\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 }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 layers = eval(OL_SCREEN.tmap_normal.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\r\n // wmts图层资源\r\n getWMTS(options) {\r\n const { url, params, sourceOptions } = options;\r\n \r\n //切片名\r\n let matrixIds = [\r\n 'EPSG:4326:0',\r\n 'EPSG:4326:1',\r\n 'EPSG:4326:2',\r\n 'EPSG:4326:3',\r\n 'EPSG:4326:4',\r\n 'EPSG:4326:5',\r\n 'EPSG:4326:6',\r\n 'EPSG:4326:7',\r\n 'EPSG:4326:8',\r\n 'EPSG:4326:9',\r\n 'EPSG:4326:10',\r\n 'EPSG:4326:11',\r\n 'EPSG:4326:12',\r\n 'EPSG:4326:13',\r\n 'EPSG:4326:14',\r\n 'EPSG:4326:15',\r\n 'EPSG:4326:16',\r\n 'EPSG:4326:17',\r\n 'EPSG:4326:18',\r\n ];\r\n \r\n //分辨率\r\n let resolutions = [\r\n 0.703125,\r\n 0.3515625,\r\n 0.17578125,\r\n 0.087890625,\r\n 0.0439453125,\r\n 0.02197265625,\r\n 0.010986328125,\r\n 0.0054931640625,\r\n 0.00274658203125,\r\n 0.001373291015625,\r\n 6.866455078125e-4,\r\n 3.4332275390625e-4,\r\n 1.71661376953125e-4,\r\n 8.58306884765625e-5,\r\n 4.291534423828125e-5,\r\n 2.1457672119140625e-5,\r\n 1.0728836059570312e-5,\r\n 5.364418029785156e-6,\r\n 2.682209014892578e-6,\r\n ];\r\n \r\n //切片策略\r\n let tilegrid = new ol.tilegrid.WMTS({\r\n extent: [-180.0, -90.0, 180.0, 90.0], //范围\r\n tileSize: [256, 256],\r\n origin: [-180.0, 90.0], //切片原点\r\n resolutions: resolutions, //分辨率\r\n matrixIds: matrixIds, //层级标识列表,与地图级数保持一致\r\n });\r\n \r\n //设置地图投影\r\n let projection = new ol.proj.Projection({\r\n code: 'EPSG:4326',\r\n units: 'degrees',\r\n axisOrientation: 'neu',\r\n });\r\n \r\n return new ol.source.WMTS({\r\n url: url,\r\n layer: params?.layer,\r\n format: 'image/png',\r\n matrixSet: 'EPSG:4326',\r\n projection: projection,\r\n tileGrid: tilegrid,\r\n ...sourceOptions,\r\n });\r\n }\r\n \r\n // 添加普通图层\r\n addTileLayer({url,params={}, sourceOptions={}, type, source}){\r\n if(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 layerSource = source || (type==='WMTS'?\r\n this.getWMTS({url,params,sourceOptions})\r\n : new ol.source.XYZ({\r\n url,\r\n ...sourceOptions,\r\n })\r\n )\r\n const layer = new ol.layer.Tile({\r\n source: layerSource\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 // 添加超图图层\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(item) {\r\n let url = item.coverage;\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 ...(item.param||{}),\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[\"fitView\"] = (arr) => {\r\n t.fitView(arr);\r\n }\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[\"frameSelect\"] = (obj={},callback) => {\r\n return t.frameSelect(obj,callback);\r\n }\r\n t.state.gis[\"clearFrameSelect\"] = () => {\r\n return t.clearFrameSelect();\r\n }\r\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\r\n return t.clearFrameSelectById(id);\r\n }\r\n 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(!t.state.gis){\r\n return;\r\n }\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 hitDetection: true\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 if(t.frameSelectProps[param.attributes.id]?.callback instanceof Function){\r\n t.frameSelectProps[param.attributes.id].callback(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 fitView(arr=[]){\r\n const t= this;\r\n if(arr?.length >0){\r\n let displayRange = new ol.extent.boundingExtent(arr);\r\n t.state.gis.getView().fit(displayRange, t.state.gis.getSize());\r\n }\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 frameSelect({geometryType,parameter={},data={}},callback){\r\n if(!['polygon','circle','rectangle'].includes(geometryType)){\r\n message.warn(\"传入的类型不支持框选!\")\r\n return false;\r\n }\r\n const t = this;\r\n let params = {},\r\n type = geometryType||'polygon',\r\n id = data.id || `frameSelectFeature_${Math.random()}`;\r\n\r\n params.color = parameter.color||'#FF0000';\r\n params.lineColor = parameter.lineColor||'#FF0000';\r\n params.lineOpacity = parameter.lineOpacity||1;\r\n params.lineWidth = parameter.lineWidth||2;\r\n params.pellucidity = parameter.pellucidity||0.6;\r\n params.lineType = parameter.lineType||'solid';\r\n\r\n t.draw({\r\n geometryType: type,\r\n parameter: {\r\n ...parameter,\r\n ...params\r\n },\r\n data:{\r\n id: id\r\n }\r\n });\r\n\r\n t.frameSelectProps[id] = {\r\n callback,\r\n id,\r\n type: geometryType\r\n } \r\n }\r\n // 清除框选\r\n clearFrameSelect(){\r\n for(let key in this.frameSelectProps){\r\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\r\n }\r\n this.frameSelectProps = {};\r\n }\r\n // 清除框选ById\r\n clearFrameSelectById(id){\r\n let obj = this.frameSelectProps[id];\r\n this.removeGraphic(obj.id, obj.type);\r\n delete this.frameSelectProps[id];\r\n }\r\n /*\r\n * 添加信息窗口\r\n * 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 zIndex: t.pointLayerZIndex\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 let index = 0;\r\n const dealPoint = (item) => {\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 if (index < mapPoints.length - 1) {\r\n requestIdleCallback(() => dealPoint(mapPoints[++index]))\r\n } else {\r\n t.refresh();\r\n }\r\n }\r\n if (!isEmpty(mapPoints)) {\r\n requestIdleCallback(() => dealPoint(mapPoints[index]))\r\n }\r\n }\r\n // 点位样式\r\n getPointStyle(item){\r\n let t = this;\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\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 attributes: { ...item, other: item }\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 let url = item.url || defaultMarker;\r\n let temp = t.imgCache.get(url);\r\n if(temp){\r\n console.log(item.id);\r\n myImage.src = temp;\r\n }else {\r\n // myImage.src = url;\r\n // t.imgCache.set(url, url);\r\n canvasDataURL(\r\n url,\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n t.imgCache.set(url, base64);\r\n }\r\n )\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 return style;\r\n }\r\n // 添加点位图层\r\n addPointLayer(points){\r\n let t = this;\r\n \r\n let features = [];\r\n points?.map(item=>{\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 feature.setId(item.id);\r\n\r\n let style = t.getPointStyle(item);\r\n\r\n feature.setStyle(style);\r\n features.push(feature);\r\n t.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 });\r\n })\r\n if(t.pointFeatureLayer){\r\n let source = t.pointFeatureLayer.getSource();\r\n console.log(source);\r\n \r\n let oldFeatures = source.getFeatures();\r\n let newFeatures = [], updateFeatureIds = [];\r\n oldFeatures.map(feat=>{\r\n let obj = features.find(p=>p.getId() == feat.getId())\r\n if(obj){\r\n if(JSON.stringify(obj.getStyle()) !== JSON.stringify(feat.getStyle())){\r\n feat.setStyle(obj.getStyle());\r\n }\r\n if(JSON.stringify(obj.getGeometry()) !== JSON.stringify(feat.getGeometry())){\r\n feat.setGeometry(obj.getGeometry());\r\n }\r\n updateFeatureIds.push(feat.getId());\r\n }else {\r\n source.removeFeature(feat);\r\n }\r\n })\r\n newFeatures = features.filter(p=>!updateFeatureIds.includes(p.getId()));\r\n if(newFeatures.length>0){\r\n t.pointFeatureLayer.getSource().addFeatures(newFeatures);\r\n }\r\n // t.pointFeatureLayer.getSource().clear();\r\n // t.pointFeatureLayer.getSource().addFeatures(features);\r\n }else {\r\n let source = new ol.source.Vector({\r\n features: features,\r\n });\r\n let pointLayer = new ol.layer.Vector({\r\n name: 'point_layer',\r\n source,\r\n id: 'point_layer',\r\n zIndex: t.pointLayerZIndex\r\n });\r\n t.state.gis.addLayer(pointLayer);\r\n t.pointFeatureLayer = pointLayer;\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 zIndex: t.polylineLayerZIndex\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 zIndex: t.polygonLayerZIndex\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 zIndex: t.polygonLayerZIndex\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.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 if (t.clusterInfo.clusterHulls) {\r\n t.clusterInfo.clusterHulls.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusterHulls = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterHullStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterHulls);\r\n }\r\n \r\n if (t.clusterInfo.clusters) {\r\n t.clusterInfo.clusters.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusters = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusters);\r\n }\r\n if (t.clusterInfo.clusterCircles) {\r\n t.clusterInfo.clusterCircles.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusterCircles = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterCircleStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterCircles);\r\n }\r\n\r\n \r\n function clusterMemberStyle(clusterMember) {\r\n let style = clusterMember.getStyle();\r\n let image = style&&style.getImage ? style.getImage() : null;\r\n let text = style&&style.getText ? style.getText() : null;\r\n return new ol.style.Style({\r\n image: image,\r\n text: text\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 > 2) {\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 return feature.get('features').map(originalFeature => clusterMemberStyle(originalFeature))\r\n }\r\n }\r\n }\r\n clearCluster(arg){\r\n const t = this;\r\n let ids = (arg && arg?.length>0) ? arg : t.state.pointIds;\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 ids.map(id=>{\r\n if(t.GM.getGraphic(id)){\r\n t.GM.removeGraphic(id);\r\n }\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1)\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 UNSAFE_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, pointsFeature=[]\r\n } = nextProps;\r\n // 等待地图加载\r\n if (!t.mapCreated) return;\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if (pointsFeature instanceof Array && !t.deepEqual(pointsFeature, t.props.pointsFeature)){\r\n t.addPointLayer(pointsFeature);\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 let index = 0;\r\n const removeGraphic = (id) => {\r\n t.removeGraphic(id, 'point');\r\n if (index < deletedDataIDs.length -1) {\r\n requestIdleCallback(() => removeGraphic(deletedDataIDs[++index]))\r\n }\r\n }\r\n if (!isEmpty(deletedDataIDs)) {\r\n removeGraphic(deletedDataIDs[index])\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 }\r\n\r\n if(!setCluster && setCluster !== t.props.setCluster){\r\n t.clearCluster(mapCluster);\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 sourceParam = source.getParams();\r\n let url = source.getFeatureInfoUrl(event.coordinate, view.getResolution(), view.getProjection(), {\r\n cql_filter: sourceParam?.cql_filter,\r\n QUERY_LAYERS: sourceParam?.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 let 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 } } : (e.attributes||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 // 地图重新渲染大小\r\n updateSize(){\r\n const t = this;\r\n t.state.gis.updateSize();\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\r\nclass ImgCache{\r\n constructor(props){\r\n this.imgs = {};\r\n }\r\n\r\n set(key, value){\r\n this.imgs[key] = value;\r\n }\r\n\r\n get(key){\r\n return this.imgs[key];\r\n }\r\n\r\n remove(key){\r\n let obj = {...this.imgs};\r\n delete obj[key];\r\n this.imgs = obj;\r\n }\r\n\r\n clear(){\r\n this.imgs = {};\r\n }\r\n}"],"mappings":"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","ignoreList":[]}
|