@vtx/map 1.1.41 → 1.1.43

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.
Files changed (63) hide show
  1. package/lib/VtxMap/AMap/AMap.js +630 -1000
  2. package/lib/VtxMap/AMap/AMap.js.map +1 -1
  3. package/lib/VtxMap/BMap/Map.js +747 -1195
  4. package/lib/VtxMap/BMap/Map.js.map +1 -1
  5. package/lib/VtxMap/GMap/Map.js +1046 -1564
  6. package/lib/VtxMap/GMap/Map.js.map +1 -1
  7. package/lib/VtxMap/Map.js +8 -42
  8. package/lib/VtxMap/Map.js.map +1 -1
  9. package/lib/VtxMap/MapToolFunction.js +26 -63
  10. package/lib/VtxMap/MapToolFunction.js.map +1 -1
  11. package/lib/VtxMap/OMap/Map.js +867 -1361
  12. package/lib/VtxMap/OMap/Map.js.map +1 -1
  13. package/lib/VtxMap/OlMap/Map.js +696 -1204
  14. package/lib/VtxMap/OlMap/Map.js.map +1 -1
  15. package/lib/VtxMap/TMap/TMap.js +651 -1058
  16. package/lib/VtxMap/TMap/TMap.js.map +1 -1
  17. package/lib/VtxMap/index.js +1 -8
  18. package/lib/VtxMap/index.js.map +1 -1
  19. package/lib/VtxMap/mapPlayer.js +67 -123
  20. package/lib/VtxMap/mapPlayer.js.map +1 -1
  21. package/lib/VtxMap/optimizingPointMap.js +21 -77
  22. package/lib/VtxMap/optimizingPointMap.js.map +1 -1
  23. package/lib/VtxMap/style/css.js +0 -6
  24. package/lib/VtxMap/style/css.js.map +1 -1
  25. package/lib/VtxMap/style/index.js +0 -6
  26. package/lib/VtxMap/style/index.js.map +1 -1
  27. package/lib/VtxMap/zoomMap.js +12 -41
  28. package/lib/VtxMap/zoomMap.js.map +1 -1
  29. package/lib/VtxModal/VtxModal.js +19 -63
  30. package/lib/VtxModal/VtxModal.js.map +1 -1
  31. package/lib/VtxModal/draggableModal.js +12 -48
  32. package/lib/VtxModal/draggableModal.js.map +1 -1
  33. package/lib/VtxModal/index.js +1 -6
  34. package/lib/VtxModal/index.js.map +1 -1
  35. package/lib/VtxModal/style/css.js +0 -6
  36. package/lib/VtxModal/style/css.js.map +1 -1
  37. package/lib/VtxModal/style/index.js +0 -6
  38. package/lib/VtxModal/style/index.js.map +1 -1
  39. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +105 -238
  40. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
  41. package/lib/VtxSearchCheckMap/index.js +0 -2
  42. package/lib/VtxSearchCheckMap/index.js.map +1 -1
  43. package/lib/VtxSearchCheckMap/mapping.js +1 -2
  44. package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
  45. package/lib/VtxSearchCheckMap/style/css.js +0 -19
  46. package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
  47. package/lib/VtxSearchCheckMap/style/index.js +0 -19
  48. package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
  49. package/lib/VtxSearchMap/VtxSearchMap.js +91 -219
  50. package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
  51. package/lib/VtxSearchMap/index.js +0 -2
  52. package/lib/VtxSearchMap/index.js.map +1 -1
  53. package/lib/VtxSearchMap/mapping.js +1 -2
  54. package/lib/VtxSearchMap/mapping.js.map +1 -1
  55. package/lib/VtxSearchMap/style/css.js +0 -19
  56. package/lib/VtxSearchMap/style/css.js.map +1 -1
  57. package/lib/VtxSearchMap/style/index.js +0 -19
  58. package/lib/VtxSearchMap/style/index.js.map +1 -1
  59. package/lib/default.js +4 -13
  60. package/lib/default.js.map +1 -1
  61. package/lib/index.js +0 -3
  62. package/lib/index.js.map +1 -1
  63. package/package.json +3 -3
@@ -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","OL_SCREEN","layers","eval","initLayer","isArray","state","gis","addLayer","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","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","setState","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","url","Tile","TileSuperMapRest","push","vectorSource","format","GeoJSON","extent","join","strategy","loadingstrategy","bbox","el","A","icon","JSON","parse","mapIcon","require","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","param","split","json","toUpperCase","decodeURIComponent","formatUrl","ImageWMS","serverType","crossOrigin","ratio","params","VERSION","Image","getCenter","gt","getZoomLevel","obj","showInfoWindow","hideInfoWindow","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","indexOf","removeGraphic","splice","anchor","markerContentX","markerContentY","anchorXUnits","anchorYUnits","opacity","geometryFunction","stoke","lineWidth","lineDash","lineType","undefined","pellucidity","getRgbColor","Draw","createBox","finishDrawing","getGeometry","isRepetition","updatePoint","config","height","updateLine","updatePolygon","getCoordinates","updateCircle","drawEnd","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","options","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","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","units","location","addControl","css","left","top","bottom","right","_et","setProperties","contains","xmin1","xmax1","ymin1","ymax1","xmin2","xmax2","ymin2","ymax2","Object","prototype","apply","ms","getMoreGraphic","getType","label","Cluster","minDistance","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.state = {\r\n gis: null, //地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds: [], //地图上点的ids\r\n lineIds: [], //地图上线的ids\r\n polygonIds: [], //地图上面的ids\r\n circleIds: [], //地图上圆的ids\r\n editGraphic: '', //当前编辑完后图元所有数据\r\n boundaryInfo: [], //当前画出的边界线的id和区域名\r\n drawIds: {\r\n //绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: [],\r\n },\r\n };\r\n this.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 t.setState({\r\n mapCreated: true,\r\n });\r\n };\r\n let event = (e, status) => {\r\n const { gis } = t.state;\r\n let overall_feature = null; //鼠标移入事件时记录当前的feature,为鼠标移出要素时保存操作的要素对象\r\n let dragAddMoveFlag = false; //记录地图拖拽和移动事件\r\n // 地图开始加载时\r\n gis.on('loadstart', function () {\r\n gis.getTargetElement().classList.add('spinner');\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n gis.getTargetElement().classList.remove('spinner');\r\n });\r\n // 地图双击事件\r\n gis.on('dbclick', evt => { });\r\n // 地图点击事件\r\n gis.on('singleclick', evt => {\r\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\r\n if (feature) {\r\n let target = feature.getProperties();\r\n 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(item.coverage.startsWith(\"http\") || item.coverage.startsWith('/')){\r\n switch(item.type) {\r\n // 超图\r\n case 'superMap':\r\n t.addSuperMapLayer(item.coverage);\r\n break;\r\n // geoServer_geoJSON\r\n case 'geoServer':\r\n t.addGeoServerLayer(item.coverage);\r\n // geoServer_image\r\n case 'geoServer_image':\r\n t.addGeoServerImageLayer(item);\r\n default:\r\n break;\r\n }\r\n }else if (OL_SCREEN[item.coverage]) {\r\n if(first) {\r\n let layers = eval(OL_SCREEN[item.coverage].initLayer);\r\n if(isArray(layers)){\r\n layers.map(layer=>{\r\n t.state.gis.addLayer(layer);\r\n })\r\n }else {\r\n t.state.gis.addLayer(layers);\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n if(first) {\r\n let layer = eval(OL_SCREEN.default.initLayer);\r\n t.state.gis.addLayer(layer);\r\n }\r\n }\r\n }\r\n\r\n // 添加超图图层\r\n addSuperMapLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n const layer = new ol.layer.Tile({\r\n source: new ol.source.TileSuperMapRest({\r\n url\r\n })\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n // 添加geoServer_geoJSON图层\r\n addGeoServerLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n // 矢量数据源\r\n const vectorSource = new ol.source.Vector({\r\n // 设置格式化类型\r\n format: new ol.format.GeoJSON(),\r\n\r\n // url(extent) 在地图范围变化时调用,返回当前的地图范围\r\n url: function (extent) {\r\n return `${url}&bbox=${extent.join(',')}`;\r\n },\r\n strategy: ol.loadingstrategy.bbox,\r\n });\r\n\r\n // 矢量图层\r\n const layer = new ol.layer.Vector({\r\n // 设置数据源\r\n source: vectorSource,\r\n // 设置图层样式也可以 function (feature) { /** 根据内容动态加载样式 **/ return Style}\r\n style: function(feature) {\r\n const el = feature.A || {};\r\n const icon = JSON.parse(el.icon || '[]');\r\n let mapIcon = icon[0]?.id\r\n ? `/cloudFile/common/downloadFile?id=${icon[0].id}`\r\n : require(\"../images/defaultMarker.png\");\r\n return new ol.style.Style({\r\n // 点位图标\r\n image: new ol.style.Icon({\r\n scale: 1,\r\n src: mapIcon,\r\n }),\r\n // 线样式\r\n stroke: new ol.style.Stroke({\r\n color: el.color || '#1890ff',\r\n width: 4\r\n }),\r\n // 面样式\r\n fill: new ol.style.Fill({\r\n color: el.color || 'rgba(255,255,255, 0.5)'\r\n })\r\n })\r\n },\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n formatUrl(url){\r\n let param = {},address=url.split(\"?\")[0];\r\n url.split(\"?\")[1].split(\"&\").map(item=>{\r\n let json = item.split(\"=\")\r\n param[json[0].toUpperCase()] = json[1]?decodeURIComponent(json[1]):'';\r\n })\r\n return {param,address}\r\n }\r\n // 添加geoServer_image图层\r\n addGeoServerImageLayer(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 componentWillReceiveProps(nextProps, prevProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [], mapLines = [], mapPolygons = [], mapCircles = [], customizedBoundary = [],\r\n isOpenTrafficInfo, boundaryName, heatMapData,\r\n mapVisiblePoints, setVisiblePoints,\r\n setCenter, mapCenter,\r\n setZoomLevel, mapZoomLevel,\r\n setCluster, mapCluster,\r\n isRangingTool, mapRangingTool,\r\n isRemove, mapRemove,\r\n mapDraw, isDraw, isCloseDraw,\r\n editGraphicId, isDoEdit, isEndEdit,\r\n mapPointCollection, isclearAllPointCollection,\r\n isSetAreaRestriction, areaRestriction, isClearAreaRestriction,\r\n isClearAll, olProps\r\n } = nextProps;\r\n // 等待地图加载\r\n if (!t.state.mapCreated) return;\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if (mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints, t.props.mapPoints)) {\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if (!!t.editId) {\r\n oldMapPoints = t.props.mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n newMapPoints = mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPoints, newMapPoints, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...pointIds, ...point]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...pointIds, ...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n 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":["_react","_interopRequireDefault","require","_default2","_MapToolFunction","_immutable","_lodash","obj","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","minLen","Object","toString","slice","name","test","len","arr2","r","l","t","u","a","push","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","configurable","writable","_toPropertyKey","key","_createClass","protoProps","staticProps","_inherits","subClass","superClass","create","_setPrototypeOf","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","getPrototypeOf","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","Set","Immutable","OlMap","_React$Component","_super","_this","nextLayers","currentLayers","first","addLayers","item","map","coverage","includes","removeLayers","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","addGeoServerImageLayer","OL_SCREEN","layers","eval","initLayer","state","gis","addLayer","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapId","mapCreated","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","frameSelectProps","loadMapJs","loadMapComplete","Promise","resolve","reject","window","$","getScript","concat","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","then","attr","rel","href","appendTo","init","createMap","ol","source","Vector","wrapX","initData","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","setCenter","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","setState","event","status","overall_feature","dragAddMoveFlag","on","getTargetElement","classList","add","remove","evt","forEachFeatureAtPixel","pixel","getProperties","id","elementId","features","properties","element","clickGraphic","clickMap","getEventPixel","originalEvent","hit","hasFeatureAtPixel","style","cursor","values","mouseOverGraphic","dispatchEvent","mouseOutGraphic","dragMapStart","moveStart","zoom","dragMapEnd","moveEnd","zoomStart","setTimeout","zoomEnd","center","_t$props2","_t$props2$olProps","olProps","_t$props2$mapCenter","mapCenter","mapZoomLevel","minZoom","maxZoom","projection","olCoverage","VtxMap","parseFloat","Map","view","View","controls","control","defaults","rotate","attribution","loadLayers","initPropsForUser","url","Tile","TileSuperMapRest","vectorSource","format","GeoJSON","extent","join","strategy","loadingstrategy","bbox","_icon$","el","A","icon","JSON","parse","mapIcon","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","formatUrl","param","split","json","toUpperCase","decodeURIComponent","_this$formatUrl","_this$formatUrl$param","ImageWMS","serverType","crossOrigin","ratio","params","VERSION","Image","getCenter","gt","getZoomLevel","showInfoWindow","hideInfoWindow","callback","frameSelect","clearFrameSelect","clearFrameSelectById","refresh","c","lng","lat","getView","animate","duration","setZoomLevel","z","getZoom","setZoom","_gis$getView$calculat","calculateExtent","getSize","_gis$getView$calculat2","xmin","ymin","xmax","ymax","doEdit","gc","getGraphic","gp","getGraphicParam","endEdit","interaction","Modify","hitDetection","addInteraction","geometry","cur","_cur$flatCoordinates","flatCoordinates","attributes","longitude","latitude","other","geometryType","mapLayer","oddList","evenList","index","path","_t$dealData","dealData","lnglatAry","_extent","paths","calculateDistance","_t$dealData2","rings","area","sketchCoords_","sketchCoords_2","radius","sphere","getDistance","Math","PI","pow","editGraphicChange","setGraphic","setGraphicParam","removeInteraction","parameter","data","Date","getTime","indexOf","removeGraphic","splice","anchor","markerContentX","markerContentY","anchorXUnits","anchorYUnits","opacity","geometryFunction","stoke","lineWidth","lineDash","lineType","pellucidity","getRgbColor","Draw","createBox","_t$frameSelectProps$p","finishDrawing","getGeometry","_gc$flatCoordinates","isRepetition","updatePoint","config","height","updateLine","_t$dealData3","updatePolygon","_t$dealData4","getCoordinates","_t$dealData5","updateCircle","drawEnd","Function","closeDraw","vtxRangingTool","Circle","createHelpTooltip","createMeasureTooltip","createDeleteTooltip","tooltipCoord","coordinate","geom","lngLats","output","formatLength","getLastCoordinate","lnglats","innerHTML","setPosition","setOffset","className","Observable","unByKey","parentNode","removeChild","document","createElement","Overlay","offset","positioning","addOverlay","stopEvent","insertFirst","addEventListener","removeOverlay","removeLayer","round","getMapExtent","nowBounds","southWest","northEast","nowCenter","_gis$getSize","_gis$getSize2","mapSize","ary","fitView","g","displayRange","boundingExtent","fit","getFitView","ids","maxX","maxY","minX","minY","coord","boundsArry","getExtent","min","max","bounds","getCurrentCenter","gg","pts","parseDom","domStr","domObj","childNodes","d","getPixelFromCoordinate","_t$state$gis$getSize","_t$state$gis$getSize2","options","size","shape","VotexpointCollection","GMapLib","updatePointCollection","ds","ind","_t$state$gis$getSize3","_t$state$gis$getSize4","reDraw","clearPointCollection","clear","clearAllPointCollection","_ref","_ref$parameter","_ref$data","message","warn","random","lineColor","lineOpacity","popupWindow","Popup","position","content","close","showPopup","removePopup","_this2","ps","psids","console","Feature","Point","cg","labelContent","labelPixelX","labelPixelY","zIndex","deg","txt","myImage","markerContent","nodes","clientX","clientY","pop","autoPanMargin","autoPan","canvasDataURL","base64","img","imgSize","canShowLabel","textStyle","textAlign","textBaseline","font","text","offsetX","offsetY","backgroundFill","padding","labelStyle","Text","setStyle","pointLayer","BAnimationType","marker","setAnimation","BMAP_ANIMATION_BOUNCE","BMAP_ANIMATION_DROP","_this3","dealPoint","overlay","getOverlayById","setElement","changed","rotation","setGeometry","requestIdleCallback","isEmpty","timer","clearTimeout","redrawText","_this4","ls","lsids","isHidden","LineString","lineLayer","itt","_this5","_this6","pgs","pgsids","Polygon","polygonLayer","_this7","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeFeature","removeGraphicParam","clearAll","getLayers","hMap","getSource","_t$state","cs","removeControl","ScaleLine","units","location","addControl","css","left","top","bottom","right","_t$dealData6","_et","setProperties","clearAreaRestriction","dealAreaRestriction","contains","_t$areaRestriction","xmin1","xmax1","ymin1","ymax1","_e$extent","xmin2","xmax2","ymin2","ymax2","ms","getMoreGraphic","getType","label","Cluster","minDistance","setSource","clusterHullStyle","clusterStyle","clusterCircleStyle","clusterMemberStyle","clusterMember","getStyle","getImage","getText","resolution","clusterMembers","get","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","angle","cos","sin","originalFeatures","originalFeature","clearCluster","containsExtent","e1","e2","czIndex","append","getNode","equalsPoint","b","calculatePointsDistance","fp","ep","log","totalDistance","lngX","latX","dealLabelGraphics","tl","toScreen","lbl","pointAnimation","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","moveAnimation","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","ddeg","_graphicsLayer","tx","ty","moveTo","lnglat","delay","autoRotation","urlright","urlleft","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","componentDidMount","componentWillReceiveProps","nextProps","prevProps","_t$state2","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","customizedBoundary","isOpenTrafficInfo","boundaryName","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","oldMapPoints","newMapPoints","_t$dataMatch","_t$dealAdd","_t$dealUpdate","oldMapLines","newMapLines","_t$dataMatch2","_t$dealAdd2","_t$dealUpdate2","_iterator","_step","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd3","_t$dealUpdate3","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd4","_t$dealUpdate4","_iterator3","_step3","clearHeatMap","stringify","clickLngLat","temp","getFeatureInfo","_this8","sourceParam","getParams","getFeatureInfoUrl","getResolution","cql_filter","QUERY_LAYERS","INFO_FORMAT","REQUEST","FEATURE_COUNT","_this$formatUrl2","LAYERS","geoJsonFormat","fetch","_data$features","readFeatures","visible","gradient","heatData","weight","heatSource","Heatmap","blur","_e$pixel","info","componentWillUnmount","j","React","Component","_default","exports","_React$Component2","_super2","_this9","container","closeble","appendChild","animation","reg","newStr","toLowerCase","replace","parseInt","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL","module"],"sources":["VtxMap/OlMap/Map.js"],"sourcesContent":["import React from 'react';\r\n\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\nimport { graphicManage, getPolygonArea } from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport { 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.state = {\r\n gis: null, //地图对象\r\n mapId: props.mapId,\r\n mapCreated: false,\r\n pointIds: [], //地图上点的ids\r\n lineIds: [], //地图上线的ids\r\n polygonIds: [], //地图上面的ids\r\n circleIds: [], //地图上圆的ids\r\n editGraphic: '', //当前编辑完后图元所有数据\r\n boundaryInfo: [], //当前画出的边界线的id和区域名\r\n drawIds: {\r\n //绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: [],\r\n },\r\n };\r\n this.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 t.setState({\r\n mapCreated: true,\r\n });\r\n };\r\n let event = (e, status) => {\r\n const { gis } = t.state;\r\n let overall_feature = null; //鼠标移入事件时记录当前的feature,为鼠标移出要素时保存操作的要素对象\r\n let dragAddMoveFlag = false; //记录地图拖拽和移动事件\r\n // 地图开始加载时\r\n gis.on('loadstart', function () {\r\n gis.getTargetElement().classList.add('spinner');\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n gis.getTargetElement().classList.remove('spinner');\r\n });\r\n // 地图双击事件\r\n gis.on('dbclick', evt => { });\r\n // 地图点击事件\r\n gis.on('singleclick', evt => {\r\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\r\n if (feature) {\r\n let target = feature.getProperties();\r\n 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(item.coverage.startsWith(\"http\") || item.coverage.startsWith('/')){\r\n switch(item.type) {\r\n // 超图\r\n case 'superMap':\r\n t.addSuperMapLayer(item.coverage);\r\n break;\r\n // geoServer_geoJSON\r\n case 'geoServer':\r\n t.addGeoServerLayer(item.coverage);\r\n // geoServer_image\r\n case 'geoServer_image':\r\n t.addGeoServerImageLayer(item);\r\n default:\r\n break;\r\n }\r\n }else if (OL_SCREEN[item.coverage]) {\r\n if(first) {\r\n let layers = eval(OL_SCREEN[item.coverage].initLayer);\r\n if(isArray(layers)){\r\n layers.map(layer=>{\r\n t.state.gis.addLayer(layer);\r\n })\r\n }else {\r\n t.state.gis.addLayer(layers);\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n if(first) {\r\n let layer = eval(OL_SCREEN.default.initLayer);\r\n t.state.gis.addLayer(layer);\r\n }\r\n }\r\n }\r\n\r\n // 添加超图图层\r\n addSuperMapLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n const layer = new ol.layer.Tile({\r\n source: new ol.source.TileSuperMapRest({\r\n url\r\n })\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n // 添加geoServer_geoJSON图层\r\n addGeoServerLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n // 矢量数据源\r\n const vectorSource = new ol.source.Vector({\r\n // 设置格式化类型\r\n format: new ol.format.GeoJSON(),\r\n\r\n // url(extent) 在地图范围变化时调用,返回当前的地图范围\r\n url: function (extent) {\r\n return `${url}&bbox=${extent.join(',')}`;\r\n },\r\n strategy: ol.loadingstrategy.bbox,\r\n });\r\n\r\n // 矢量图层\r\n const layer = new ol.layer.Vector({\r\n // 设置数据源\r\n source: vectorSource,\r\n // 设置图层样式也可以 function (feature) { /** 根据内容动态加载样式 **/ return Style}\r\n style: function(feature) {\r\n const el = feature.A || {};\r\n const icon = JSON.parse(el.icon || '[]');\r\n let mapIcon = icon[0]?.id\r\n ? `/cloudFile/common/downloadFile?id=${icon[0].id}`\r\n : require(\"../images/defaultMarker.png\");\r\n return new ol.style.Style({\r\n // 点位图标\r\n image: new ol.style.Icon({\r\n scale: 1,\r\n src: mapIcon,\r\n }),\r\n // 线样式\r\n stroke: new ol.style.Stroke({\r\n color: el.color || '#1890ff',\r\n width: 4\r\n }),\r\n // 面样式\r\n fill: new ol.style.Fill({\r\n color: el.color || 'rgba(255,255,255, 0.5)'\r\n })\r\n })\r\n },\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n formatUrl(url){\r\n let param = {},address=url.split(\"?\")[0];\r\n url.split(\"?\")[1].split(\"&\").map(item=>{\r\n let json = item.split(\"=\")\r\n param[json[0].toUpperCase()] = json[1]?decodeURIComponent(json[1]):'';\r\n })\r\n return {param,address}\r\n }\r\n // 添加geoServer_image图层\r\n addGeoServerImageLayer(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 componentWillReceiveProps(nextProps, prevProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [], mapLines = [], mapPolygons = [], mapCircles = [], customizedBoundary = [],\r\n isOpenTrafficInfo, boundaryName, heatMapData,\r\n mapVisiblePoints, setVisiblePoints,\r\n setCenter, mapCenter,\r\n setZoomLevel, mapZoomLevel,\r\n setCluster, mapCluster,\r\n isRangingTool, mapRangingTool,\r\n isRemove, mapRemove,\r\n mapDraw, isDraw, isCloseDraw,\r\n editGraphicId, isDoEdit, isEndEdit,\r\n mapPointCollection, isclearAllPointCollection,\r\n isSetAreaRestriction, areaRestriction, isClearAreaRestriction,\r\n isClearAll, olProps\r\n } = nextProps;\r\n // 等待地图加载\r\n if (!t.state.mapCreated) return;\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if (mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints, t.props.mapPoints)) {\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if (!!t.editId) {\r\n oldMapPoints = t.props.mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n newMapPoints = mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPoints, newMapPoints, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...pointIds, ...point]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...pointIds, ...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n 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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"}