@vtx/map 1.1.54 → 1.2.1
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 +19 -0
- package/lib/VtxMap/AMap/AMap.js.map +1 -1
- package/lib/VtxMap/BMap/Map.js +18 -0
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +16 -0
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/TMap/TMap.js +17 -0
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.js +12 -0
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.js","names":["Set","Immutable","OlMap","props","nextLayers","currentLayers","first","t","addLayers","filter","item","map","e","coverage","includes","removeLayers","length","forEach","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","addGeoServerImageLayer","indexOf","addTileLayer","JSON","parse","layers","initLayer","isArray","state","gis","addLayer","OL_SCREEN","eval","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapCreated","mapId","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","frameSelectProps","loadMapJs","loadMapComplete","Promise","resolve","reject","window","$","getScript","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","then","attr","rel","href","appendTo","createMap","ol","source","Vector","wrapX","initData","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","setCenter","Array","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","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","require","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","param","split","json","toUpperCase","decodeURIComponent","formatUrl","ImageWMS","serverType","crossOrigin","ratio","VERSION","Image","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","fitView","concat","i","g","displayRange","boundingExtent","fit","ids","maxX","maxY","minX","minY","coord","boundsArry","getExtent","min","max","bounds","gg","p","pts","domStr","domObj","childNodes","d","getPixelFromCoordinate","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","timer","clearTimeout","redrawText","ls","lsids","isHidden","LineString","lineLayer","itt","pgs","pgsids","Polygon","polygonLayer","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeFeature","removeGraphicParam","getLayers","hMap","getSource","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","getStyle","getImage","getText","resolution","clusterMembers","get","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","res","angle","cos","sin","originalFeatures","originalFeature","e1","e2","append","getNode","a","b","fp","ep","log","totalDistance","calculatePointsDistance","lngX","latX","tl","toScreen","lbl","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","ddeg","_graphicsLayer","tx","ty","lnglat","delay","autoRotation","urlright","urlleft","s","equalsPoint","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","init","nextProps","prevProps","customizedBoundary","isOpenTrafficInfo","boundaryName","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","oldMapPoints","newMapPoints","dataMatch","dealAdd","dealUpdate","oldMapLines","newMapLines","oldMapPolygons","newMapPolygons","oldMapCircles","newMapCircles","doEdit","clearHeatMap","vtxRangingTool","stringify","clearCluster","clearAreaRestriction","getMapExtent","clickLngLat","temp","getFeatureInfo","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","j","React","Component","container","closeble","appendChild","animation","reg","test","newStr","toLowerCase","replace","arr","parseInt","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL"],"sources":["VtxMap/OlMap/Map.js"],"sourcesContent":["import React from 'react';\r\n\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\nimport { graphicManage, getPolygonArea } from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport { isArray, isEmpty } from 'lodash';\r\nconst { Set } = Immutable;\r\n\r\nclass OlMap extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.zIndexGraphics = []; //需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points'; //html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection'; //海量点canvas点位容器id class管理\r\n this.Label = {}; //所有label 集合\r\n this.labelLayer = { x: 0, y: 0 }; //label图层 位置管理\r\n this.viewer = null;\r\n this.GM = new graphicManage(); //初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.layer = null; //保存地图图层数据\r\n this.loadTimer = null; //初始化地图 load时延缓数据处理\r\n this.animTimer = {}; //点位跳动动画 定时集合\r\n this.animCount = {}; //点位跳动动画 定时计数\r\n this.moveToTimer = null; //moveTo时间对象\r\n this.drawToolbar = null; //地图绘制对象即interaction\r\n this.drawParam = {}; //缓存 绘制的数据\r\n this.editToolbar = null; //编辑对象\r\n this.editId = ''; //当前编辑的图元id\r\n this.drawSource = null;\r\n this.drawVector = null;\r\n // 图元绘制保存\r\n this.drawInfo = {\r\n sketch: null,\r\n listener: null,\r\n };\r\n this.scaleControl = null;\r\n this.pointLayers = [];\r\n this.mouseNowPosition = { x: 0, y: 0, px: 0, py: 0, isCount: false };\r\n this.heatmap = null; //热力图对象\r\n this.clusterMarkers = []; //聚合点位id数组\r\n this.clusterPs = []; //聚合集合点\r\n this.clusterPt = []; //地图中聚合点集合\r\n this.morepoints = []; //海量点集合\r\n this.areaRestriction = null; //区域限制数据\r\n this.movePoints = [];\r\n this.olLayers = []; // ol图层集合 {address:'', layer: ''}\r\n this.baseLayer = null; // 地图图层\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false, //是否开启状态\r\n line: {}, //线\r\n points: [], //点\r\n distance: 0, //测距长度\r\n mapRangingTool: null, //测距回调\r\n };\r\n this.rangingTools = {}; //测距点线缓存\r\n this.rangingInfo = {\r\n sketch: null,\r\n helpTooltipElement: null,\r\n helpTooltip: null,\r\n measureTooltipElement: null,\r\n measureTooltip: null,\r\n deleteToolTipElement: null,\r\n deleteToolTip: null,\r\n continuePolygonMsg: '点击继续绘制图形',\r\n continueLineMsg: '点击继续绘制线',\r\n listener: null,\r\n drawElements: [],\r\n drawLayer: null,\r\n feature: null,\r\n draw: null,\r\n }\r\n this.clusterInfo = {\r\n clickFeature: null,\r\n clickResolution: null,\r\n hoverFeature: null,\r\n clusterSource: null,\r\n clusterHulls: null,\r\n clusters: null,\r\n clusterCircles: null,\r\n };\r\n this.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.loadMapJs();\r\n }\r\n // 引入ol样式\r\n loadMapJs() {\r\n this.loadMapComplete = new Promise((resolve, reject) => {\r\n if (window.OlMap) {\r\n resolve(window.OlMap);\r\n } else {\r\n $.getScript(`${configUrl.openlayerServerURL}/ol.js`, () => {\r\n let PointCollection = new Promise((resolve, reject) => {\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`, () => {\r\n resolve();\r\n });\r\n });\r\n let Client9 = new Promise(function (resolve, reject) {\r\n $.getScript(`${configUrl.openlayerServerURL}/iclient-openlayers.min.js`, function () {\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection,Client9]).then(() => {\r\n resolve(window.OlMap);\r\n })\r\n });\r\n $.getScript(`${configUrl.openlayerServerURL}/bd09.js`);\r\n $.getScript(`${configUrl.openlayerServerURL}/olScreen.js`);\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href:\r\n `${configUrl.openlayerServerURL}/ol.css`,\r\n })\r\n .appendTo('head');\r\n }\r\n });\r\n }\r\n // 初始化地圖\r\n init() {\r\n let t = this;\r\n // 创建地图\r\n t.createMap();\r\n t.drawSource = new ol.source.Vector({ wrapX: false });\r\n t.drawVector = new ol.layer.Vector({ source: t.drawSource });\r\n let initData = () => {\r\n const {\r\n mapPoints,\r\n mapLines,\r\n mapPolygons,\r\n mapCircles,\r\n mapVisiblePoints,\r\n mapCluster,\r\n mapPointCollection,\r\n areaRestriction,\r\n heatMapData\r\n } = t.props;\r\n // 初始化中心点\r\n t.setCenter();\r\n // 添加点\r\n if (mapPoints instanceof Array) {\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if (mapLines instanceof Array) {\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if (mapPolygons instanceof Array) {\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if (mapCircles instanceof Array) {\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if (t.props.showControl) {\r\n t.showControl(t.props);\r\n }\r\n // 画热力图\r\n if (heatMapData) {\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if (mapCluster instanceof Array) {\r\n t.cluster(mapCluster);\r\n }\r\n /*设置指定图元展示*/\r\n if (mapVisiblePoints) {\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //添加海量点\r\n if (mapPointCollection instanceof Array) {\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if (areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n 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 gis.getTargetElement().classList.add('spinner');\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n gis.getTargetElement().classList.remove('spinner');\r\n });\r\n // 地图双击事件\r\n gis.on('dbclick', evt => { });\r\n // 地图点击事件\r\n gis.on('singleclick', evt => {\r\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\r\n if (feature) {\r\n let target = feature.getProperties();\r\n 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 gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\r\n // 获取到当前鼠标移动下的feature\r\n let feature = gis.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n return feature;\r\n });\r\n if (feature) {\r\n overall_feature = feature;\r\n let values = feature.getProperties();\r\n t.mouseOverGraphic(values.id, evt);\r\n } else {\r\n if (overall_feature) {\r\n overall_feature.dispatchEvent({ type: 'mousein', event: evt });\r\n let values = overall_feature.getProperties();\r\n t.mouseOutGraphic(values.id, evt);\r\n overall_feature = null;\r\n }\r\n }\r\n });\r\n // 鼠标拖拽事件 - 拖拽开始即是地图移动开始\r\n gis.on('pointerdrag', evt => {\r\n dragAddMoveFlag = true;\r\n t.dragMapStart(evt);\r\n t.moveStart(evt);\r\n });\r\n let zoom = 0;\r\n // 地图移动事件 - 移动结束即是拖拽事件结束 也是地图缩放事件(无开始和结束事件)的监听\r\n gis.on('moveend', evt => {\r\n t.dragMapEnd(evt);\r\n t.moveEnd(evt);\r\n t.zoomStart(evt);\r\n setTimeout(() => {\r\n t.zoomEnd(evt);\r\n }, 300);\r\n dragAddMoveFlag = false;\r\n });\r\n // gis.getViewport().addEventListener('mouseout', function () {\r\n // helpTooltipElement.classList.add('hidden');\r\n // });\r\n };\r\n event();\r\n t.setCenter(t.props.center);\r\n initData();\r\n }\r\n // 创建地图\r\n createMap() {\r\n let t = this;\r\n let {\r\n olProps={},\r\n mapCenter = [],\r\n mapId,\r\n mapZoomLevel,\r\n minZoom,\r\n maxZoom,\r\n } = t.props;\r\n let {\r\n projection, // 坐标投影类型 EPSG:4326和EPSG:3857,百度图层使用自定义的'BD:09'\r\n olCoverage\r\n } = olProps;\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n if(!minZoom){\r\n minZoom = 2\r\n }\r\n if(!maxZoom){\r\n maxZoom = 19\r\n }\r\n if(!projection){\r\n projection = 'EPSG:4326'\r\n }\r\n //中心点\r\n let center = mapCenter && mapCenter instanceof Array && mapCenter.length == 2\r\n ? mapCenter\r\n : [116.400433, 39.906705];\r\n center = [parseFloat(center[0]), parseFloat(center[1])];\r\n window.VtxMap[mapId] = t.state.gis = new ol.Map({\r\n target: mapId.toString(),\r\n view: new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n }),\r\n controls: ol.control.defaults({\r\n zoom: false,\r\n rotate: false,\r\n attribution: false\r\n }),\r\n });\r\n // 基本地图视图\r\n t.viewer = new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n })\r\n t.loadLayers(olCoverage, [], true);\r\n t.initPropsForUser();\r\n }\r\n\r\n // 加载图层\r\n loadLayers = (nextLayers = [], currentLayers = [], first = false) => {\r\n const t = this;\r\n // 对比图层的变化,找出需要新增和需要删除的。\r\n const addLayers = nextLayers.filter(item => {\r\n return !currentLayers.map(e => e.coverage).includes(item.coverage)\r\n });\r\n const removeLayers = currentLayers.filter(item => {\r\n return !nextLayers.map(e => e.coverage).includes(item.coverage)\r\n })\r\n if(removeLayers.length > 0) {\r\n removeLayers.forEach(item => {\r\n const exist = t.olLayers.find(e => e.address === item.coverage);\r\n exist && exist.layer.setVisible(false);\r\n })\r\n }\r\n if (addLayers.length > 0) {\r\n addLayers.map(item => {\r\n if(\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 layer = eval(OL_SCREEN.default.initLayer);\r\n t.state.gis.addLayer(layer);\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[\"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 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 });\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 refresh(){\r\n const t = this;\r\n let timer = setTimeout(()=>{\r\n clearTimeout(timer);\r\n window.VtxMap[t.props.mapId].redrawText();\r\n },100)\r\n }\r\n // 添加先\r\n addLine(mapLines, type) {\r\n let t = this;\r\n let ls = [];\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n });\r\n let polyline = new ol.Feature({\r\n geometry: new ol.geom.LineString(item.paths),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n polyline.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polyline],\r\n name: 'polyline',\r\n id: item.id,\r\n })\r\n let lineLayer = new ol.layer.Vector({\r\n name: 'polyline',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(lineLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polyline).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: source,\r\n });\r\n ls.push(polyline);\r\n lsids.push(item.id);\r\n t.state.lineIds.push(item.id);\r\n });\r\n if (type !== 'defined') {\r\n t.state.lineIds = lsids;\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines) {\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = this.GM.getGraphicParam(item.id);\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n zIndex: cg.zIndex || 0,\r\n }),\r\n });\r\n gc.setStyle(() => {\r\n return style\r\n })\r\n gc.setGeometry(new ol.geom.LineString(pts));\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: gp.source,\r\n });\r\n } else {\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons) {\r\n let t = this;\r\n let pgs = [];\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let polygon = new ol.Feature({\r\n geometry: new ol.geom.Polygon([item.rings]),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'polygon',\r\n });\r\n polygon.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polygon],\r\n id: item.id,\r\n })\r\n let polygonLayer = new ol.layer.Vector({\r\n name: 'polygon',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(polygonLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polygon).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source\r\n });\r\n pgs.push(polygon);\r\n pgsids.push(item.id);\r\n });\r\n t.state.polygonIds = pgsids;\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons) {\r\n let t = this;\r\n mapPolygons.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n };\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n gc.setGeometry(new ol.geom.Polygon([pts]));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source: gp.source\r\n });\r\n } else {\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles, type) {\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if (type) {\r\n ccsids = [...t.state.drawIds[type]];\r\n }\r\n mapCircles.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n let circle = new ol.Feature({\r\n geometry: new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'circle'\r\n });\r\n circle.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [circle],\r\n name: 'circle',\r\n id: item.id,\r\n });\r\n let circleLayer = new ol.layer.Vector({\r\n name: 'circle',\r\n id: item.id,\r\n source\r\n });\r\n t.state.gis.addLayer(circleLayer);\r\n ccsids.push(item.id);\r\n t.GM.setGraphic(item.id, circle)\r\n .setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source\r\n });\r\n });\r\n //添加绘制点\r\n if (type) {\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n } else {\r\n t.state.circleIds = ccsids;\r\n }\r\n }\r\n //更新圆\r\n updateCircle(mapCircles) {\r\n let t = this;\r\n mapCircles.map((item, index) => {\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n } else {\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n gc.setGeometry(new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n t.GM.setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source: gp.source,\r\n });\r\n });\r\n //刷新图元\r\n }\r\n // 工具方法\r\n //删除图元\r\n removeGraphic(id, type) {\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n //刪除label\r\n if (t.Label[id]) {\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if (!!graphic) {\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n // const layers = t.state.gis.getLayers().getArray();\r\n // const layer = layers.filter(item => item.getProperties().name == type)[0];\r\n gp.source.removeFeature(graphic);\r\n // layer && layer.getSource().removeFeature(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n t.GM.removeGraphicParam(id);\r\n if(t.state.gis.getOverlayById(id)){\r\n t.state.gis.removeOverlay(t.state.gis.getOverlayById(id))\r\n }\r\n } else {\r\n return false;\r\n }\r\n for (let i = 0; i < t.movePoints.length; i++) {\r\n if (t.movePoints[i].id == id) {\r\n t.movePoints.splice(i, 1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch (type) {\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if (t.state.drawIds.point.indexOf(id) > -1) {\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.polyline.indexOf(id) > -1) {\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.polygon.indexOf(id) > -1) {\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.circle.indexOf(id) > -1) {\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.rectangle.indexOf(id) > -1) {\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id), 1);\r\n }\r\n break;\r\n default:\r\n if (t.state.pointIds.indexOf(id) > -1) {\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id), 1);\r\n }\r\n if (t.state.lineIds.indexOf(id) > -1) {\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id), 1);\r\n }\r\n if (t.state.polygonIds.indexOf(id) > -1) {\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id), 1);\r\n }\r\n if (t.state.circleIds.indexOf(id) > -1) {\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id), 1);\r\n }\r\n break;\r\n }\r\n if (id == t.state.editId) {\r\n t.state.editId = '';\r\n }\r\n if (ids.indexOf(id) != -1) {\r\n ids.splice(ids.indexOf(id), 1);\r\n }\r\n }\r\n //清空地图\r\n clearAll() {\r\n let t = this;\r\n const { gis } = t.state;\r\n const layers = gis.getLayers();\r\n //清空热力图\r\n if (t.heatmap) {\r\n let hMap = layers.filter(item => item.name == 'heatMap')[0];\r\n hMap.getSource().clear();\r\n gis.removeLayer(layer);\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n\r\n t.state.pointIds = [];\r\n t.pointLayers.map(item => {\r\n gis.removeLayer(item.layer)\r\n t.pointLayers = [];\r\n })\r\n\r\n t.clearAllPointCollection();\r\n t.closeDraw();\r\n if(t.clusterInfo.clusterHulls || t.clusterInfo.clusters || t.clusterInfo.clusterCircles){\r\n t.clusterHulls.getSource().clear();\r\n t.clusterInfo.clusterSource = null;\r\n gis.removeLayer(t.clusterInfo.clusterHulls);\r\n gis.removeLayer(t.clusterInfo.clusters);\r\n gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterHulls= null;\r\n t.clusterInfo.clusters = null;\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //循环所有id删除\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for (let i = 0; i < ps.length; i++) {\r\n t.removeGraphic(ps[i], 'point');\r\n }\r\n // 删除线\r\n for (let i = 0; i < ls.length; i++) {\r\n t.removeGraphic(ls[i], 'line');\r\n }\r\n // 删除面\r\n for (let i = 0; i < pgs.length; i++) {\r\n t.removeGraphic(pgs[i], 'polygon');\r\n }\r\n // 删除圆\r\n for (let i = 0; i < cs.length; i++) {\r\n t.removeGraphic(cs[i], 'circle');\r\n }\r\n //删除绘制的点\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n for (let i = 0; i < point.length; i++) {\r\n t.removeGraphic(point[i]);\r\n }\r\n for (let i = 0; i < polyline.length; i++) {\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for (let i = 0; i < polygon.length; i++) {\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for (let i = 0; i < circle.length; i++) {\r\n t.removeGraphic(circle[i]);\r\n }\r\n for (let i = 0; i < rectangle.length; i++) {\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(props) {\r\n let t = this;\r\n const { gis } = t.state;\r\n const config = props.showControl ;\r\n if (t.scaleControl) {\r\n gis.removeControl(t.scaleControl);\r\n }\r\n t.scaleControl = new ol.control.ScaleLine({\r\n units: 'metric',\r\n //设置度量单位\r\n className: `ol-scale-line-${config.location}`\r\n });\r\n gis.addControl(t.scaleControl);\r\n setTimeout(function (){\r\n if(config.location == 'tl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'bl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'tr'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'br'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }\r\n }, 20)\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction) {\r\n let t = this;\r\n let { _extent: _et } = t.dealData(areaRestriction);\r\n t.areaRestriction = t.state.gis.getView().setProperties({\r\n extent: [_et.xmax, _et.ymax, _et.xmin, _et.ymin],\r\n }, false);\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction() {\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e) {\r\n let t = this;\r\n //如果在区域内,不处理\r\n if (t.areaRestriction.contains(e.extent.getCenter())) {\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return;\r\n // }\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = t.areaRestriction;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e.extent;\r\n let x = e.extent.getCenter().x,\r\n y = e.extent.getCenter().y;\r\n if (x < xmin1) x = xmin1 + 0.1;\r\n if (x > xmax1) x = xmax1 - 0.1;\r\n if (y < ymin1) y = ymin1 + 0.1;\r\n if (y > ymax1) y = ymax1 - 0.1;\r\n t.state.gis.getView().setCenter([x, y]);\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n t.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 });\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 });\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 });\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\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 (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 } } : null, //添加时图元信息\r\n top: clientY, //当前点所在的位置(屏幕)\r\n left: clientX,\r\n e: e,\r\n };\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for (let j in t.animTimer) {\r\n if (t.animTimer[j]) {\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\r\n }\r\n}\r\nexport default OlMap;\r\n\r\nclass Popup extends React.Component{\r\n constructor(props){\r\n super();\r\n this.map = props.map;\r\n this.position = props.position;\r\n this.overlay = null;\r\n this.container = null;\r\n this.innerHTML = props.innerHTML;\r\n this.closeble = props.close;\r\n }\r\n \r\n // 弹出框\r\n showPopup () {\r\n const t = this;\r\n this.removePopup()\r\n // 获取弹出层DOM\r\n t.container = document.createElement(\"div\");\r\n t.container['className'] = \"ol-popup\";\r\n if(t.closeble){\r\n let close = document.createElement(\"a\");\r\n close['className'] = \"ol-popup-closer\";\r\n close.addEventListener(\"click\",(e)=>{\r\n t.removePopup();\r\n })\r\n t.container.appendChild(close);\r\n }\r\n let content = document.createElement(\"div\");\r\n t.container.appendChild(content);\r\n if (t.overlay) {\r\n } else {\r\n // 创建Overlay弹出层绑定DOM\r\n t.overlay = new ol.Overlay({\r\n element: t.container,\r\n autoPan: {\r\n animation: {\r\n duration: 250\r\n }\r\n }\r\n })\r\n // 添加到map\r\n t.map.addOverlay(t.overlay)\r\n }\r\n // 弹出层内容\r\n content.innerHTML = t.innerHTML;\r\n // 设置弹出层位置即可出现\r\n t.overlay.setPosition(t.position)\r\n }\r\n // 清除弹出框\r\n removePopup () {\r\n if (this.overlay) {\r\n this.container.remove();\r\n // 设置位置undefined可达到隐藏清除弹出框\r\n this.overlay.setPosition(undefined);\r\n this.overlay = null;\r\n }\r\n }\r\n}\r\n\r\nfunction getRgbColor(color, opacity) {\r\n const reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;\r\n if (!reg.test(color) && typeof(color) !== 'string') {\r\n return;\r\n }\r\n let newStr = color.toLowerCase().replace(/\\#/g, '');\r\n let len = newStr.length;\r\n if (len == 3) {\r\n let t = '';\r\n for (var i = 0; i < len; i++) {\r\n t += newStr.slice(i, i + 1).concat(newStr.slice(i, i + 1));\r\n }\r\n newStr = t;\r\n }\r\n let arr = []; //将字符串分隔,两个两个的分隔\r\n for (var i = 0; i < 6; i = i + 2) {\r\n let s = newStr.slice(i, i + 2);\r\n arr.push(parseInt('0x' + s));\r\n }\r\n return 'rgba(' + arr.join(',') + ',' + opacity + ')';\r\n}\r\n\r\n// 压缩图片的方法\r\nfunction canvasDataURL(path, obj, callback) {\r\n var img = new Image();\r\n img.src = path;\r\n img.setAttribute(\"crossOrigin\", 'Anonymous')\r\n img.onload = function () {\r\n var that = this;\r\n // 默认按比例压缩\r\n var w = that.width,\r\n h = that.height,\r\n scale = w / h;\r\n w = obj.width || w;\r\n h = obj.height || (w / scale);\r\n var quality = 0.7; // 默认图片质量为0.7\r\n //生成canvas\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n // 创建属性节点\r\n var anw = document.createAttribute(\"width\");\r\n anw.nodeValue = w;\r\n var anh = document.createAttribute(\"height\");\r\n anh.nodeValue = h;\r\n canvas.setAttributeNode(anw);\r\n canvas.setAttributeNode(anh);\r\n ctx.drawImage(that, 0, 0, w, h);\r\n // 图像质量\r\n if (obj.quality && obj.quality <= 1 && obj.quality > 0) {\r\n quality = obj.quality;\r\n }\r\n // quality值越小,所绘制出的图像越模糊\r\n var base64 = canvas.toDataURL('image/png', quality);\r\n // 回调函数返回base64的值\r\n callback(base64);\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Map.js","names":["Set","Immutable","OlMap","props","nextLayers","currentLayers","first","t","addLayers","filter","item","map","e","coverage","includes","removeLayers","length","forEach","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","addGeoServerImageLayer","indexOf","addTileLayer","JSON","parse","layers","initLayer","isArray","state","gis","addLayer","OL_SCREEN","eval","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapCreated","mapId","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","frameSelectProps","loadMapJs","loadMapComplete","Promise","resolve","reject","window","$","getScript","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","then","attr","rel","href","appendTo","createMap","ol","source","Vector","wrapX","initData","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","setCenter","Array","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","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","require","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","timer","clearTimeout","redrawText","ls","lsids","isHidden","LineString","lineLayer","itt","pgs","pgsids","Polygon","polygonLayer","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeFeature","removeGraphicParam","getLayers","hMap","getSource","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","getStyle","getImage","getText","resolution","clusterMembers","get","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","res","angle","cos","sin","originalFeatures","originalFeature","e1","e2","append","getNode","a","b","fp","ep","log","totalDistance","calculatePointsDistance","lngX","latX","tl","toScreen","lbl","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","waitTime","deleteTime","sort","nowMovePoints","slice","deleteIndex","rx","ry","ddeg","_graphicsLayer","tx","ty","lnglat","delay","autoRotation","urlright","urlleft","s","equalsPoint","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","is","fromJS","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","ads","otherupds","upds","otherads","_map","init","nextProps","prevProps","customizedBoundary","isOpenTrafficInfo","boundaryName","setZoomLevel","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","deepEqual","oldMapPoints","newMapPoints","dataMatch","dealAdd","dealUpdate","oldMapLines","newMapLines","oldMapPolygons","newMapPolygons","oldMapCircles","newMapCircles","doEdit","clearHeatMap","vtxRangingTool","stringify","clearCluster","clearAreaRestriction","getMapExtent","clickLngLat","temp","getFeatureInfo","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","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"],"sources":["VtxMap/OlMap/Map.js"],"sourcesContent":["import React from 'react';\r\n\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\nimport { graphicManage, getPolygonArea } from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport { isArray, isEmpty } from 'lodash';\r\nconst { Set } = Immutable;\r\n\r\nclass OlMap extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.zIndexGraphics = []; //需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points'; //html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection'; //海量点canvas点位容器id class管理\r\n this.Label = {}; //所有label 集合\r\n this.labelLayer = { x: 0, y: 0 }; //label图层 位置管理\r\n this.viewer = null;\r\n this.GM = new graphicManage(); //初始化 图元管理方法\r\n this.getPolygonArea = getPolygonArea;\r\n this.layer = null; //保存地图图层数据\r\n this.loadTimer = null; //初始化地图 load时延缓数据处理\r\n this.animTimer = {}; //点位跳动动画 定时集合\r\n this.animCount = {}; //点位跳动动画 定时计数\r\n this.moveToTimer = null; //moveTo时间对象\r\n this.drawToolbar = null; //地图绘制对象即interaction\r\n this.drawParam = {}; //缓存 绘制的数据\r\n this.editToolbar = null; //编辑对象\r\n this.editId = ''; //当前编辑的图元id\r\n this.drawSource = null;\r\n this.drawVector = null;\r\n // 图元绘制保存\r\n this.drawInfo = {\r\n sketch: null,\r\n listener: null,\r\n };\r\n this.scaleControl = null;\r\n this.pointLayers = [];\r\n this.mouseNowPosition = { x: 0, y: 0, px: 0, py: 0, isCount: false };\r\n this.heatmap = null; //热力图对象\r\n this.clusterMarkers = []; //聚合点位id数组\r\n this.clusterPs = []; //聚合集合点\r\n this.clusterPt = []; //地图中聚合点集合\r\n this.morepoints = []; //海量点集合\r\n this.areaRestriction = null; //区域限制数据\r\n this.movePoints = [];\r\n this.olLayers = []; // ol图层集合 {address:'', layer: ''}\r\n this.baseLayer = null; // 地图图层\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false, //是否开启状态\r\n line: {}, //线\r\n points: [], //点\r\n distance: 0, //测距长度\r\n mapRangingTool: null, //测距回调\r\n };\r\n this.rangingTools = {}; //测距点线缓存\r\n this.rangingInfo = {\r\n sketch: null,\r\n helpTooltipElement: null,\r\n helpTooltip: null,\r\n measureTooltipElement: null,\r\n measureTooltip: null,\r\n deleteToolTipElement: null,\r\n deleteToolTip: null,\r\n continuePolygonMsg: '点击继续绘制图形',\r\n continueLineMsg: '点击继续绘制线',\r\n listener: null,\r\n drawElements: [],\r\n drawLayer: null,\r\n feature: null,\r\n draw: null,\r\n }\r\n this.clusterInfo = {\r\n clickFeature: null,\r\n clickResolution: null,\r\n hoverFeature: null,\r\n clusterSource: null,\r\n clusterHulls: null,\r\n clusters: null,\r\n clusterCircles: null,\r\n };\r\n this.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.loadMapJs();\r\n }\r\n // 引入ol样式\r\n loadMapJs() {\r\n this.loadMapComplete = new Promise((resolve, reject) => {\r\n if (window.OlMap) {\r\n resolve(window.OlMap);\r\n } else {\r\n $.getScript(`${configUrl.openlayerServerURL}/ol.js`, () => {\r\n let PointCollection = new Promise((resolve, reject) => {\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`, () => {\r\n resolve();\r\n });\r\n });\r\n let Client9 = new Promise(function (resolve, reject) {\r\n $.getScript(`${configUrl.openlayerServerURL}/iclient-openlayers.min.js`, function () {\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection,Client9]).then(() => {\r\n resolve(window.OlMap);\r\n })\r\n });\r\n $.getScript(`${configUrl.openlayerServerURL}/bd09.js`);\r\n $.getScript(`${configUrl.openlayerServerURL}/olScreen.js`);\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href:\r\n `${configUrl.openlayerServerURL}/ol.css`,\r\n })\r\n .appendTo('head');\r\n }\r\n });\r\n }\r\n // 初始化地圖\r\n init() {\r\n let t = this;\r\n // 创建地图\r\n t.createMap();\r\n t.drawSource = new ol.source.Vector({ wrapX: false });\r\n t.drawVector = new ol.layer.Vector({ source: t.drawSource });\r\n let initData = () => {\r\n const {\r\n mapPoints,\r\n mapLines,\r\n mapPolygons,\r\n mapCircles,\r\n mapVisiblePoints,\r\n mapCluster,\r\n mapPointCollection,\r\n areaRestriction,\r\n heatMapData\r\n } = t.props;\r\n // 初始化中心点\r\n t.setCenter();\r\n // 添加点\r\n if (mapPoints instanceof Array) {\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if (mapLines instanceof Array) {\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if (mapPolygons instanceof Array) {\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if (mapCircles instanceof Array) {\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if (t.props.showControl) {\r\n t.showControl(t.props);\r\n }\r\n // 画热力图\r\n if (heatMapData) {\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if (mapCluster instanceof Array) {\r\n t.cluster(mapCluster);\r\n }\r\n /*设置指定图元展示*/\r\n if (mapVisiblePoints) {\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //添加海量点\r\n if (mapPointCollection instanceof Array) {\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if (areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n 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 gis.getTargetElement().classList.add('spinner');\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n gis.getTargetElement().classList.remove('spinner');\r\n });\r\n // 地图双击事件\r\n gis.on('dbclick', evt => { });\r\n // 地图点击事件\r\n gis.on('singleclick', evt => {\r\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\r\n if (feature) {\r\n let target = feature.getProperties();\r\n 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 gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\r\n // 获取到当前鼠标移动下的feature\r\n let feature = gis.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n return feature;\r\n });\r\n if (feature) {\r\n overall_feature = feature;\r\n let values = feature.getProperties();\r\n t.mouseOverGraphic(values.id, evt);\r\n } else {\r\n if (overall_feature) {\r\n overall_feature.dispatchEvent({ type: 'mousein', event: evt });\r\n let values = overall_feature.getProperties();\r\n t.mouseOutGraphic(values.id, evt);\r\n overall_feature = null;\r\n }\r\n }\r\n });\r\n // 鼠标拖拽事件 - 拖拽开始即是地图移动开始\r\n gis.on('pointerdrag', evt => {\r\n dragAddMoveFlag = true;\r\n t.dragMapStart(evt);\r\n t.moveStart(evt);\r\n });\r\n let zoom = 0;\r\n // 地图移动事件 - 移动结束即是拖拽事件结束 也是地图缩放事件(无开始和结束事件)的监听\r\n gis.on('moveend', evt => {\r\n t.dragMapEnd(evt);\r\n t.moveEnd(evt);\r\n t.zoomStart(evt);\r\n setTimeout(() => {\r\n t.zoomEnd(evt);\r\n }, 300);\r\n dragAddMoveFlag = false;\r\n });\r\n // gis.getViewport().addEventListener('mouseout', function () {\r\n // helpTooltipElement.classList.add('hidden');\r\n // });\r\n };\r\n event();\r\n t.setCenter(t.props.center);\r\n initData();\r\n }\r\n // 创建地图\r\n createMap() {\r\n let t = this;\r\n let {\r\n olProps={},\r\n mapCenter = [],\r\n mapId,\r\n mapZoomLevel,\r\n minZoom,\r\n maxZoom,\r\n } = t.props;\r\n let {\r\n projection, // 坐标投影类型 EPSG:4326和EPSG:3857,百度图层使用自定义的'BD:09'\r\n olCoverage\r\n } = olProps;\r\n if(window.VtxMap){\r\n window.VtxMap[mapId]= null;\r\n }else{\r\n window.VtxMap = {};\r\n }\r\n if(!minZoom){\r\n minZoom = 2\r\n }\r\n if(!maxZoom){\r\n maxZoom = 19\r\n }\r\n if(!projection){\r\n projection = 'EPSG:4326'\r\n }\r\n //中心点\r\n let center = mapCenter && mapCenter instanceof Array && mapCenter.length == 2\r\n ? mapCenter\r\n : [116.400433, 39.906705];\r\n center = [parseFloat(center[0]), parseFloat(center[1])];\r\n window.VtxMap[mapId] = t.state.gis = new ol.Map({\r\n target: mapId.toString(),\r\n view: new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n }),\r\n controls: ol.control.defaults({\r\n zoom: false,\r\n rotate: false,\r\n attribution: false\r\n }),\r\n });\r\n // 基本地图视图\r\n t.viewer = new ol.View({\r\n center: center, \r\n zoom: mapZoomLevel || 10,\r\n projection,\r\n minZoom,\r\n maxZoom,\r\n })\r\n t.loadLayers(olCoverage, [], true);\r\n t.initPropsForUser();\r\n }\r\n\r\n // 加载图层\r\n loadLayers = (nextLayers = [], currentLayers = [], first = false) => {\r\n const t = this;\r\n // 对比图层的变化,找出需要新增和需要删除的。\r\n const addLayers = nextLayers.filter(item => {\r\n return !currentLayers.map(e => e.coverage).includes(item.coverage)\r\n });\r\n const removeLayers = currentLayers.filter(item => {\r\n return !nextLayers.map(e => e.coverage).includes(item.coverage)\r\n })\r\n if(removeLayers.length > 0) {\r\n removeLayers.forEach(item => {\r\n const exist = t.olLayers.find(e => e.address === item.coverage);\r\n exist && exist.layer.setVisible(false);\r\n })\r\n }\r\n if (addLayers.length > 0) {\r\n addLayers.map(item => {\r\n if(\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 layer = eval(OL_SCREEN.default.initLayer);\r\n t.state.gis.addLayer(layer);\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 });\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 refresh(){\r\n const t = this;\r\n let timer = setTimeout(()=>{\r\n clearTimeout(timer);\r\n window.VtxMap[t.props.mapId].redrawText();\r\n },100)\r\n }\r\n // 添加先\r\n addLine(mapLines, type) {\r\n let t = this;\r\n let ls = [];\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n });\r\n let polyline = new ol.Feature({\r\n geometry: new ol.geom.LineString(item.paths),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n polyline.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polyline],\r\n name: 'polyline',\r\n id: item.id,\r\n })\r\n let lineLayer = new ol.layer.Vector({\r\n name: 'polyline',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(lineLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polyline).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: source,\r\n });\r\n ls.push(polyline);\r\n lsids.push(item.id);\r\n t.state.lineIds.push(item.id);\r\n });\r\n if (type !== 'defined') {\r\n t.state.lineIds = lsids;\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines) {\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = this.GM.getGraphicParam(item.id);\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n zIndex: cg.zIndex || 0,\r\n }),\r\n });\r\n gc.setStyle(() => {\r\n return style\r\n })\r\n gc.setGeometry(new ol.geom.LineString(pts));\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: gp.source,\r\n });\r\n } else {\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons) {\r\n let t = this;\r\n let pgs = [];\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let polygon = new ol.Feature({\r\n geometry: new ol.geom.Polygon([item.rings]),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'polygon',\r\n });\r\n polygon.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polygon],\r\n id: item.id,\r\n })\r\n let polygonLayer = new ol.layer.Vector({\r\n name: 'polygon',\r\n id: item.id,\r\n source,\r\n });\r\n t.state.gis.addLayer(polygonLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polygon).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source\r\n });\r\n pgs.push(polygon);\r\n pgsids.push(item.id);\r\n });\r\n t.state.polygonIds = pgsids;\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons) {\r\n let t = this;\r\n mapPolygons.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n };\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n gc.setGeometry(new ol.geom.Polygon([pts]));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source: gp.source\r\n });\r\n } else {\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles, type) {\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if (type) {\r\n ccsids = [...t.state.drawIds[type]];\r\n }\r\n mapCircles.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n let circle = new ol.Feature({\r\n geometry: new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'circle'\r\n });\r\n circle.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [circle],\r\n name: 'circle',\r\n id: item.id,\r\n });\r\n let circleLayer = new ol.layer.Vector({\r\n name: 'circle',\r\n id: item.id,\r\n source\r\n });\r\n t.state.gis.addLayer(circleLayer);\r\n ccsids.push(item.id);\r\n t.GM.setGraphic(item.id, circle)\r\n .setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source\r\n });\r\n });\r\n //添加绘制点\r\n if (type) {\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n } else {\r\n t.state.circleIds = ccsids;\r\n }\r\n }\r\n //更新圆\r\n updateCircle(mapCircles) {\r\n let t = this;\r\n mapCircles.map((item, index) => {\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n } else {\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n gc.setGeometry(new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n t.GM.setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source: gp.source,\r\n });\r\n });\r\n //刷新图元\r\n }\r\n // 工具方法\r\n //删除图元\r\n removeGraphic(id, type) {\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n //刪除label\r\n if (t.Label[id]) {\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if (!!graphic) {\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n // const layers = t.state.gis.getLayers().getArray();\r\n // const layer = layers.filter(item => item.getProperties().name == type)[0];\r\n gp.source.removeFeature(graphic);\r\n // layer && layer.getSource().removeFeature(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n t.GM.removeGraphicParam(id);\r\n if(t.state.gis.getOverlayById(id)){\r\n t.state.gis.removeOverlay(t.state.gis.getOverlayById(id))\r\n }\r\n } else {\r\n return false;\r\n }\r\n for (let i = 0; i < t.movePoints.length; i++) {\r\n if (t.movePoints[i].id == id) {\r\n t.movePoints.splice(i, 1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch (type) {\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if (t.state.drawIds.point.indexOf(id) > -1) {\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.polyline.indexOf(id) > -1) {\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.polygon.indexOf(id) > -1) {\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.circle.indexOf(id) > -1) {\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.rectangle.indexOf(id) > -1) {\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id), 1);\r\n }\r\n break;\r\n default:\r\n if (t.state.pointIds.indexOf(id) > -1) {\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id), 1);\r\n }\r\n if (t.state.lineIds.indexOf(id) > -1) {\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id), 1);\r\n }\r\n if (t.state.polygonIds.indexOf(id) > -1) {\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id), 1);\r\n }\r\n if (t.state.circleIds.indexOf(id) > -1) {\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id), 1);\r\n }\r\n break;\r\n }\r\n if (id == t.state.editId) {\r\n t.state.editId = '';\r\n }\r\n if (ids.indexOf(id) != -1) {\r\n ids.splice(ids.indexOf(id), 1);\r\n }\r\n }\r\n //清空地图\r\n clearAll() {\r\n let t = this;\r\n const { gis } = t.state;\r\n const layers = gis.getLayers();\r\n //清空热力图\r\n if (t.heatmap) {\r\n let hMap = layers.filter(item => item.name == 'heatMap')[0];\r\n hMap.getSource().clear();\r\n gis.removeLayer(layer);\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n\r\n t.state.pointIds = [];\r\n t.pointLayers.map(item => {\r\n gis.removeLayer(item.layer)\r\n t.pointLayers = [];\r\n })\r\n\r\n t.clearAllPointCollection();\r\n t.closeDraw();\r\n if(t.clusterInfo.clusterHulls || t.clusterInfo.clusters || t.clusterInfo.clusterCircles){\r\n t.clusterHulls.getSource().clear();\r\n t.clusterInfo.clusterSource = null;\r\n gis.removeLayer(t.clusterInfo.clusterHulls);\r\n gis.removeLayer(t.clusterInfo.clusters);\r\n gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterHulls= null;\r\n t.clusterInfo.clusters = null;\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //循环所有id删除\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for (let i = 0; i < ps.length; i++) {\r\n t.removeGraphic(ps[i], 'point');\r\n }\r\n // 删除线\r\n for (let i = 0; i < ls.length; i++) {\r\n t.removeGraphic(ls[i], 'line');\r\n }\r\n // 删除面\r\n for (let i = 0; i < pgs.length; i++) {\r\n t.removeGraphic(pgs[i], 'polygon');\r\n }\r\n // 删除圆\r\n for (let i = 0; i < cs.length; i++) {\r\n t.removeGraphic(cs[i], 'circle');\r\n }\r\n //删除绘制的点\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n for (let i = 0; i < point.length; i++) {\r\n t.removeGraphic(point[i]);\r\n }\r\n for (let i = 0; i < polyline.length; i++) {\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for (let i = 0; i < polygon.length; i++) {\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for (let i = 0; i < circle.length; i++) {\r\n t.removeGraphic(circle[i]);\r\n }\r\n for (let i = 0; i < rectangle.length; i++) {\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(props) {\r\n let t = this;\r\n const { gis } = t.state;\r\n const config = props.showControl ;\r\n if (t.scaleControl) {\r\n gis.removeControl(t.scaleControl);\r\n }\r\n t.scaleControl = new ol.control.ScaleLine({\r\n units: 'metric',\r\n //设置度量单位\r\n className: `ol-scale-line-${config.location}`\r\n });\r\n gis.addControl(t.scaleControl);\r\n setTimeout(function (){\r\n if(config.location == 'tl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'bl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'tr'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'br'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }\r\n }, 20)\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction) {\r\n let t = this;\r\n let { _extent: _et } = t.dealData(areaRestriction);\r\n t.areaRestriction = t.state.gis.getView().setProperties({\r\n extent: [_et.xmax, _et.ymax, _et.xmin, _et.ymin],\r\n }, false);\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction() {\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e) {\r\n let t = this;\r\n //如果在区域内,不处理\r\n if (t.areaRestriction.contains(e.extent.getCenter())) {\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return;\r\n // }\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = t.areaRestriction;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e.extent;\r\n let x = e.extent.getCenter().x,\r\n y = e.extent.getCenter().y;\r\n if (x < xmin1) x = xmin1 + 0.1;\r\n if (x > xmax1) x = xmax1 - 0.1;\r\n if (y < ymin1) y = ymin1 + 0.1;\r\n if (y > ymax1) y = ymax1 - 0.1;\r\n t.state.gis.getView().setCenter([x, y]);\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n t.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 });\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 });\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 });\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\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 (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 } } : null, //添加时图元信息\r\n top: clientY, //当前点所在的位置(屏幕)\r\n left: clientX,\r\n e: e,\r\n };\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for (let j in t.animTimer) {\r\n if (t.animTimer[j]) {\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\r\n }\r\n}\r\nexport default OlMap;\r\n\r\nclass Popup extends React.Component{\r\n constructor(props){\r\n super();\r\n this.map = props.map;\r\n this.position = props.position;\r\n this.overlay = null;\r\n this.container = null;\r\n this.innerHTML = props.innerHTML;\r\n this.closeble = props.close;\r\n }\r\n \r\n // 弹出框\r\n showPopup () {\r\n const t = this;\r\n this.removePopup()\r\n // 获取弹出层DOM\r\n t.container = document.createElement(\"div\");\r\n t.container['className'] = \"ol-popup\";\r\n if(t.closeble){\r\n let close = document.createElement(\"a\");\r\n close['className'] = \"ol-popup-closer\";\r\n close.addEventListener(\"click\",(e)=>{\r\n t.removePopup();\r\n })\r\n t.container.appendChild(close);\r\n }\r\n let content = document.createElement(\"div\");\r\n t.container.appendChild(content);\r\n if (t.overlay) {\r\n } else {\r\n // 创建Overlay弹出层绑定DOM\r\n t.overlay = new ol.Overlay({\r\n element: t.container,\r\n autoPan: {\r\n animation: {\r\n duration: 250\r\n }\r\n }\r\n })\r\n // 添加到map\r\n t.map.addOverlay(t.overlay)\r\n }\r\n // 弹出层内容\r\n content.innerHTML = t.innerHTML;\r\n // 设置弹出层位置即可出现\r\n t.overlay.setPosition(t.position)\r\n }\r\n // 清除弹出框\r\n removePopup () {\r\n if (this.overlay) {\r\n this.container.remove();\r\n // 设置位置undefined可达到隐藏清除弹出框\r\n this.overlay.setPosition(undefined);\r\n this.overlay = null;\r\n }\r\n }\r\n}\r\n\r\nfunction getRgbColor(color, opacity) {\r\n const reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;\r\n if (!reg.test(color) && typeof(color) !== 'string') {\r\n return;\r\n }\r\n let newStr = color.toLowerCase().replace(/\\#/g, '');\r\n let len = newStr.length;\r\n if (len == 3) {\r\n let t = '';\r\n for (var i = 0; i < len; i++) {\r\n t += newStr.slice(i, i + 1).concat(newStr.slice(i, i + 1));\r\n }\r\n newStr = t;\r\n }\r\n let arr = []; //将字符串分隔,两个两个的分隔\r\n for (var i = 0; i < 6; i = i + 2) {\r\n let s = newStr.slice(i, i + 2);\r\n arr.push(parseInt('0x' + s));\r\n }\r\n return 'rgba(' + arr.join(',') + ',' + opacity + ')';\r\n}\r\n\r\n// 压缩图片的方法\r\nfunction canvasDataURL(path, obj, callback) {\r\n var img = new Image();\r\n img.src = path;\r\n img.setAttribute(\"crossOrigin\", 'Anonymous')\r\n img.onload = function () {\r\n var that = this;\r\n // 默认按比例压缩\r\n var w = that.width,\r\n h = that.height,\r\n scale = w / h;\r\n w = obj.width || w;\r\n h = obj.height || (w / scale);\r\n var quality = 0.7; // 默认图片质量为0.7\r\n //生成canvas\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n // 创建属性节点\r\n var anw = document.createAttribute(\"width\");\r\n anw.nodeValue = w;\r\n var anh = document.createAttribute(\"height\");\r\n anh.nodeValue = h;\r\n canvas.setAttributeNode(anw);\r\n canvas.setAttributeNode(anh);\r\n ctx.drawImage(that, 0, 0, w, h);\r\n // 图像质量\r\n if (obj.quality && obj.quality <= 1 && obj.quality > 0) {\r\n quality = obj.quality;\r\n }\r\n // quality值越小,所绘制出的图像越模糊\r\n var base64 = canvas.toDataURL('image/png', quality);\r\n // 回调函数返回base64的值\r\n callback(base64);\r\n }\r\n}\r\n"],"mappings":"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"}
|