@vtx/map 1.2.38 → 2.0.0-beta.2

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 (60) hide show
  1. package/README.md +44 -44
  2. package/lib/VtxMap/AMap/AMap.js +37 -35
  3. package/lib/VtxMap/AMap/AMap.js.map +1 -1
  4. package/lib/VtxMap/BMap/Map.js +60 -57
  5. package/lib/VtxMap/BMap/Map.js.map +1 -1
  6. package/lib/VtxMap/GMap/Map.js +38 -39
  7. package/lib/VtxMap/GMap/Map.js.map +1 -1
  8. package/lib/VtxMap/MapToolFunction.js +0 -9
  9. package/lib/VtxMap/MapToolFunction.js.map +1 -1
  10. package/lib/VtxMap/OMap/Map.js +65 -62
  11. package/lib/VtxMap/OMap/Map.js.map +1 -1
  12. package/lib/VtxMap/OMap/Map.less +70 -70
  13. package/lib/VtxMap/OlMap/Map.js +77 -101
  14. package/lib/VtxMap/OlMap/Map.js.map +1 -1
  15. package/lib/VtxMap/OlMap/Map.less +230 -230
  16. package/lib/VtxMap/TMap/TMap.js +58 -56
  17. package/lib/VtxMap/TMap/TMap.js.map +1 -1
  18. package/lib/VtxMap/index.js +0 -18
  19. package/lib/VtxMap/index.js.map +1 -1
  20. package/lib/VtxMap/optimizingPointMap.js +21 -23
  21. package/lib/VtxMap/optimizingPointMap.js.map +1 -1
  22. package/lib/VtxModal/VtxModal.css +76 -18
  23. package/lib/VtxModal/VtxModal.js +16 -13
  24. package/lib/VtxModal/VtxModal.js.map +1 -1
  25. package/lib/VtxModal/VtxModal.less +117 -50
  26. package/lib/VtxModal/style/css.js +1 -12
  27. package/lib/VtxModal/style/css.js.map +1 -1
  28. package/lib/VtxModal/style/index.js +1 -12
  29. package/lib/VtxModal/style/index.js.map +1 -1
  30. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.css +45 -63
  31. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +35 -36
  32. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
  33. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.less +73 -68
  34. package/lib/VtxSearchCheckMap/index.js.map +1 -1
  35. package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
  36. package/lib/VtxSearchCheckMap/style/css.js +2 -18
  37. package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
  38. package/lib/VtxSearchCheckMap/style/index.js +2 -18
  39. package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
  40. package/lib/VtxSearchMap/VtxSearchMap.css +44 -60
  41. package/lib/VtxSearchMap/VtxSearchMap.js +59 -68
  42. package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
  43. package/lib/VtxSearchMap/VtxSearchMap.less +156 -174
  44. package/lib/VtxSearchMap/index.js.map +1 -1
  45. package/lib/VtxSearchMap/mapping.js.map +1 -1
  46. package/lib/VtxSearchMap/style/css.js +3 -25
  47. package/lib/VtxSearchMap/style/css.js.map +1 -1
  48. package/lib/VtxSearchMap/style/index.js +3 -25
  49. package/lib/VtxSearchMap/style/index.js.map +1 -1
  50. package/lib/default.js +37 -13
  51. package/lib/default.js.map +1 -1
  52. package/lib/utils/util.js +0 -53
  53. package/lib/utils/util.js.map +1 -1
  54. package/package.json +67 -65
  55. package/lib/VtxModal/VtxModalAntd3.css +0 -62
  56. package/lib/VtxModal/VtxModalAntd3.less +0 -67
  57. package/lib/VtxSearchCheckMap/VtxSearchCheckMapAntd3.css +0 -0
  58. package/lib/VtxSearchCheckMap/VtxSearchCheckMapAntd3.less +0 -1
  59. package/lib/VtxSearchMap/VtxSearchMapAntd3.css +0 -0
  60. package/lib/VtxSearchMap/VtxSearchMapAntd3.less +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_default2","_MapToolFunction","_immutable","_lodash","_proj","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","name","test","l","i","Object","push","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","_defineProperties","configurable","writable","_toPropertyKey","key","_createClass","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","Set","Immutable","defaultMarker","OlMap","_React$Component","props","_this","nextLayers","undefined","currentLayers","first","addLayers","item","map","coverage","includes","removeLayers","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","addGeoServerImageLayer","indexOf","addTileLayer","JSON","parse","layers","initLayer","state","gis","addLayer","OL_SCREEN","eval","tmap_normal","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","pointLayerZIndex","polylineLayerZIndex","polygonLayerZIndex","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapCreated","mapId","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","frameSelectProps","pointFeatureLayer","imgCache","ImgCache","loadMapJs","loadMapComplete","Promise","resolve","reject","window","$","getScript","concat","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","then","attr","rel","href","appendTo","init","_this2","createMap","ol","source","Vector","wrapX","initData","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","pointsFeature","setCenter","addPointLayer","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","event","status","overall_feature","dragAddMoveFlag","on","getTargetElement","classList","add","remove","evt","forEachFeatureAtPixel","pixel","target","getProperties","id","elementId","features","properties","element","clickGraphic","clickMap","getEventPixel","originalEvent","hit","hasFeatureAtPixel","style","cursor","values","mouseOverGraphic","dispatchEvent","mouseOutGraphic","dragMapStart","moveStart","zoom","dragMapEnd","moveEnd","zoomStart","setTimeout","zoomEnd","center","_t$props2","_t$props2$olProps","olProps","_t$props2$mapCenter","mapCenter","mapZoomLevel","minZoom","maxZoom","epsg","proj4","projection","olCoverage","VtxMap","console","log","proj4Lib","defs","proj","register","parseFloat","Map","view","View","controls","control","defaults","rotate","attribution","loadLayers","initPropsForUser","projectToWGS84","eg","getPolygonArea","temp","v","getWMTS","options","url","params","sourceOptions","matrixIds","resolutions","tilegrid","WMTS","extent","tileSize","origin","Projection","code","units","axisOrientation","format","matrixSet","tileGrid","_ref","_ref$params","_ref$sourceOptions","layerSource","XYZ","Tile","TileSuperMapRest","vectorSource","GeoJSON","join","strategy","loadingstrategy","bbox","_icon$","el","A","icon","mapIcon","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","formatUrl","param","split","json","toUpperCase","decodeURIComponent","_this$formatUrl","_this$formatUrl$param","ImageWMS","serverType","crossOrigin","ratio","VERSION","Image","arr","fitView","getCenter","gt","getZoomLevel","obj","showInfoWindow","hideInfoWindow","callback","frameSelect","clearFrameSelect","clearFrameSelectById","refresh","c","lng","lat","getView","animate","duration","setZoomLevel","z","getZoom","setZoom","_gis$getView$calculat","calculateExtent","getSize","_gis$getView$calculat2","xmin","ymin","xmax","ymax","doEdit","gc","getGraphic","gp","getGraphicParam","endEdit","interaction","Modify","hitDetection","addInteraction","geometry","cur","_cur$flatCoordinates","flatCoordinates","attributes","longitude","latitude","other","geometryType","mapLayer","oddList","evenList","index","path","_t$dealData","dealData","lnglatAry","_extent","paths","calculateDistance","_t$dealData2","rings","area","sketchCoords_","sketchCoords_2","radius","sphere","getDistance","Math","PI","pow","editGraphicChange","setGraphic","setGraphicParam","removeInteraction","parameter","data","Date","getTime","len","removeGraphic","splice","anchor","markerContentX","markerContentY","anchorXUnits","anchorYUnits","opacity","geometryFunction","stoke","lineWidth","lineDash","lineType","pellucidity","getRgbColor","Draw","createBox","_t$frameSelectProps$p","finishDrawing","getGeometry","_gc$flatCoordinates","isRepetition","updatePoint","config","height","updateLine","_t$dealData3","updatePolygon","_t$dealData4","getCoordinates","_t$dealData5","updateCircle","drawEnd","Function","closeDraw","vtxRangingTool","Circle","createHelpTooltip","createMeasureTooltip","createDeleteTooltip","tooltipCoord","coordinate","geom","lngLats","output","formatLength","getLastCoordinate","lnglats","innerHTML","setPosition","setOffset","className","Observable","unByKey","parentNode","removeChild","document","createElement","Overlay","offset","positioning","addOverlay","stopEvent","insertFirst","addEventListener","removeOverlay","removeLayer","round","getMapExtent","nowBounds","southWest","northEast","nowCenter","_gis$getSize","_gis$getSize2","mapSize","arg","ary","g","displayRange","boundingExtent","fit","getFitView","ids","maxX","maxY","minX","minY","coord","boundsArry","getExtent","min","max","bounds","getCurrentCenter","gg","p","pts","parseDom","domStr","domObj","childNodes","d","getPixelFromCoordinate","_t$state$gis$getSize","_t$state$gis$getSize2","size","shape","VotexpointCollection","GMapLib","updatePointCollection","ds","ind","_t$state$gis$getSize3","_t$state$gis$getSize4","reDraw","clearPointCollection","clear","clearAllPointCollection","_ref2","_ref2$parameter","_ref2$data","message","warn","random","lineColor","lineOpacity","popupWindow","Popup","position","content","close","showPopup","removePopup","_this3","ps","psids","Feature","Point","cg","labelContent","labelPixelX","labelPixelY","zIndex","deg","txt","myImage","markerContent","nodes","clientX","clientY","pop","autoPanMargin","autoPan","canvasDataURL","base64","img","imgSize","canShowLabel","textStyle","textAlign","textBaseline","font","text","offsetX","offsetY","backgroundFill","padding","labelStyle","Text","setStyle","pointLayer","BAnimationType","marker","setAnimation","BMAP_ANIMATION_BOUNCE","BMAP_ANIMATION_DROP","setState","_this4","dealPoint","overlay","getOverlayById","setElement","changed","rotation","setGeometry","requestIdleCallback","isEmpty","getPointStyle","get","set","setId","getSource","oldFeatures","getFeatures","newFeatures","updateFeatureIds","feat","getId","stringify","getStyle","removeFeature","addFeatures","timer","_window$VtxMap$t$prop","clearTimeout","redrawText","_this5","ls","lsids","isHidden","LineString","lineLayer","itt","_this6","_this7","pgs","pgsids","Polygon","polygonLayer","_this8","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeGraphicParam","clearAll","getLayers","hMap","_t$state","cs","removeControl","ScaleLine","location","addControl","css","left","top","bottom","right","_t$dealData6","_et","setProperties","clearAreaRestriction","dealAreaRestriction","contains","_t$areaRestriction","xmin1","xmax1","ymin1","ymax1","_e$extent","xmin2","xmax2","ymin2","ymax2","ms","getMoreGraphic","getType","label","Cluster","minDistance","setSource","clusterHullStyle","clusterStyle","clusterCircleStyle","clusterMemberStyle","clusterMember","getImage","getText","resolution","clusterMembers","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","res","angle","cos","sin","originalFeatures","originalFeature","clearCluster","containsExtent","e1","e2","czIndex","append","getNode","equalsPoint","b","calculatePointsDistance","fp","ep","totalDistance","lngX","latX","dealLabelGraphics","tl","toScreen","lbl","pointAnimation","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","moveAnimation","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","ddeg","_graphicsLayer","tx","ty","moveTo","lnglat","delay","autoRotation","urlright","urlleft","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","componentDidMount","UNSAFE_componentWillReceiveProps","nextProps","prevProps","_t$state2","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","customizedBoundary","isOpenTrafficInfo","boundaryName","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","_nextProps$pointsFeat","oldMapPoints","newMapPoints","_t$dataMatch","_t$dealAdd","_t$dealUpdate","oldMapLines","newMapLines","_t$dataMatch2","_t$dealAdd2","_t$dealUpdate2","_iterator","_step","err","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd3","_t$dealUpdate3","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd4","_t$dealUpdate4","_iterator3","_step3","clearHeatMap","clickLngLat","getFeatureInfo","_this9","sourceParam","getParams","getFeatureInfoUrl","getResolution","cql_filter","QUERY_LAYERS","INFO_FORMAT","REQUEST","FEATURE_COUNT","_this$formatUrl2","LAYERS","geoJsonFormat","fetch","_data$features","readFeatures","visible","gradient","heatData","weight","heatSource","Heatmap","blur","_e$pixel","info","updateSize","componentWillUnmount","j","React","Component","_default","exports","_React$Component2","_this0","container","closeble","appendChild","animation","reg","newStr","toLowerCase","replace","parseInt","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL","imgs","module"],"sources":["VtxMap/OlMap/Map.js"],"sourcesContent":["import React from 'react';\r\n\r\n//公共地址配置\r\nimport configUrl from '../../default';\r\n\r\nimport { graphicManage, getPolygonArea } from '../MapToolFunction';\r\nimport Immutable from 'immutable';\r\nimport { get, isArray, isEmpty } from 'lodash';\r\nconst { Set } = Immutable;\r\nconst defaultMarker = require(\"../images/defaultMarker.png\");\r\nimport proj4Lib from 'proj4';\r\n\r\nclass OlMap extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.zIndexGraphics = []; //需要放在最后的图元,zoom和pan时刷新dom到最后\r\n this.htmlPointsId = 'vtx_gmap_html_points'; //html点位容器id class管理\r\n this.pointCollectionId = 'vtx_gmap_html_pointCollection'; //海量点canvas点位容器id class管理\r\n this.Label = {}; //所有label 集合\r\n this.labelLayer = { x: 0, y: 0 }; //label图层 位置管理\r\n this.viewer = null;\r\n this.GM = new graphicManage(); //初始化 图元管理方法\r\n // this.getPolygonArea = getPolygonArea;\r\n this.layer = null; //保存地图图层数据\r\n this.loadTimer = null; //初始化地图 load时延缓数据处理\r\n this.animTimer = {}; //点位跳动动画 定时集合\r\n this.animCount = {}; //点位跳动动画 定时计数\r\n this.moveToTimer = null; //moveTo时间对象\r\n this.drawToolbar = null; //地图绘制对象即interaction\r\n this.drawParam = {}; //缓存 绘制的数据\r\n this.editToolbar = null; //编辑对象\r\n this.editId = ''; //当前编辑的图元id\r\n this.drawSource = null;\r\n this.drawVector = null;\r\n // 图元绘制保存\r\n this.drawInfo = {\r\n sketch: null,\r\n listener: null,\r\n };\r\n this.scaleControl = null;\r\n this.pointLayers = [];\r\n this.mouseNowPosition = { x: 0, y: 0, px: 0, py: 0, isCount: false };\r\n this.heatmap = null; //热力图对象\r\n this.clusterMarkers = []; //聚合点位id数组\r\n this.clusterPs = []; //聚合集合点\r\n this.clusterPt = []; //地图中聚合点集合\r\n this.morepoints = []; //海量点集合\r\n this.areaRestriction = null; //区域限制数据\r\n this.movePoints = [];\r\n this.olLayers = []; // ol图层集合 {address:'', layer: ''}\r\n this.baseLayer = null; // 地图图层\r\n this.pointLayerZIndex = props.pointLayerZIndex || 7;\r\n this.polylineLayerZIndex = props.polylineLayerZIndex || 6;\r\n this.polygonLayerZIndex = props.polygonLayerZIndex || 5;\r\n //是否绘制测距\r\n this.rangingTool = {\r\n isRanging: false, //是否开启状态\r\n line: {}, //线\r\n points: [], //点\r\n distance: 0, //测距长度\r\n mapRangingTool: null, //测距回调\r\n };\r\n this.rangingTools = {}; //测距点线缓存\r\n this.rangingInfo = {\r\n sketch: null,\r\n helpTooltipElement: null,\r\n helpTooltip: null,\r\n measureTooltipElement: null,\r\n measureTooltip: null,\r\n deleteToolTipElement: null,\r\n deleteToolTip: null,\r\n continuePolygonMsg: '点击继续绘制图形',\r\n continueLineMsg: '点击继续绘制线',\r\n listener: null,\r\n drawElements: [],\r\n drawLayer: null,\r\n feature: null,\r\n draw: null,\r\n }\r\n this.clusterInfo = {\r\n clickFeature: null,\r\n clickResolution: null,\r\n hoverFeature: null,\r\n clusterSource: null,\r\n clusterHulls: null,\r\n clusters: null,\r\n clusterCircles: null,\r\n };\r\n this.mapCreated = false;\r\n this.state = {\r\n gis: null, //地图对象\r\n mapId: props.mapId,\r\n pointIds: [], //地图上点的ids\r\n lineIds: [], //地图上线的ids\r\n polygonIds: [], //地图上面的ids\r\n circleIds: [], //地图上圆的ids\r\n editGraphic: '', //当前编辑完后图元所有数据\r\n boundaryInfo: [], //当前画出的边界线的id和区域名\r\n drawIds: {\r\n //绘制工具id集合\r\n point: [],\r\n polyline: [],\r\n polygon: [],\r\n circle: [],\r\n rectangle: [],\r\n },\r\n };\r\n this.frameSelectProps = {};\r\n this.pointFeatureLayer = null;\r\n this.imgCache = new ImgCache();\r\n this.loadMapJs();\r\n }\r\n // 引入ol样式\r\n loadMapJs() {\r\n this.loadMapComplete = new Promise((resolve, reject) => {\r\n if (window.OlMap) {\r\n resolve(window.OlMap);\r\n } else {\r\n $.getScript(`${configUrl.openlayerServerURL}/ol.js`, () => {\r\n let PointCollection = new Promise((resolve, reject) => {\r\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`, () => {\r\n resolve();\r\n });\r\n });\r\n let Client9 = new Promise(function (resolve, reject) {\r\n $.getScript(`${configUrl.openlayerServerURL}/iclient-openlayers.min.js`, function () {\r\n resolve();\r\n });\r\n });\r\n Promise.all([PointCollection,Client9]).then(() => {\r\n resolve(window.OlMap);\r\n })\r\n });\r\n $.getScript(`${configUrl.openlayerServerURL}/bd09.js`);\r\n $.getScript(`${configUrl.openlayerServerURL}/olScreen.js`);\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href:\r\n `${configUrl.openlayerServerURL}/ol.css`,\r\n })\r\n .appendTo('head');\r\n }\r\n });\r\n }\r\n // 初始化地圖\r\n init() {\r\n let t = this;\r\n // 创建地图\r\n t.createMap();\r\n t.drawSource = new ol.source.Vector({ wrapX: false });\r\n t.drawVector = new ol.layer.Vector({ source: t.drawSource });\r\n let initData = () => {\r\n const {\r\n mapPoints,\r\n mapLines,\r\n mapPolygons,\r\n mapCircles,\r\n mapVisiblePoints,\r\n mapCluster,\r\n mapPointCollection,\r\n areaRestriction,\r\n heatMapData,\r\n pointsFeature\r\n } = t.props;\r\n // 初始化中心点\r\n t.setCenter();\r\n // 添加点\r\n if (pointsFeature instanceof Array) {\r\n t.addPointLayer(pointsFeature);\r\n }\r\n // 添加点\r\n if (mapPoints instanceof Array) {\r\n t.addPoint(mapPoints);\r\n }\r\n //添加线\r\n if (mapLines instanceof Array) {\r\n t.addLine(mapLines);\r\n }\r\n //添加面\r\n if (mapPolygons instanceof Array) {\r\n t.addPolygon(mapPolygons);\r\n }\r\n //添加圆\r\n if (mapCircles instanceof Array) {\r\n t.addCircle(mapCircles);\r\n }\r\n //是否设置比例尺\r\n if (t.props.showControl) {\r\n t.showControl(t.props);\r\n }\r\n // 画热力图\r\n if (heatMapData) {\r\n t.heatMapOverlay(heatMapData);\r\n }\r\n //设置点聚合\r\n if (mapCluster instanceof Array) {\r\n t.cluster(mapCluster);\r\n }\r\n /*设置指定图元展示*/\r\n if (mapVisiblePoints) {\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //添加海量点\r\n if (mapPointCollection instanceof Array) {\r\n t.addPointCollection(mapPointCollection);\r\n }\r\n //设置区域限制\r\n if (areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n this.mapCreated = true;\r\n };\r\n let event = (e, status) => {\r\n const { gis } = t.state;\r\n let overall_feature = null; //鼠标移入事件时记录当前的feature,为鼠标移出要素时保存操作的要素对象\r\n let dragAddMoveFlag = false; //记录地图拖拽和移动事件\r\n // 地图开始加载时\r\n gis.on('loadstart', function () {\r\n if(gis.getTargetElement()){\r\n gis.getTargetElement().classList.add('spinner');\r\n }\r\n });\r\n // 地图加载结束时\r\n gis.on('loadend', function () {\r\n if(gis.getTargetElement()){\r\n gis.getTargetElement().classList.remove('spinner');\r\n }\r\n });\r\n // 地图双击事件\r\n gis.on('dbclick', evt => { });\r\n // 地图点击事件\r\n gis.on('singleclick', evt => {\r\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\r\n if (feature) {\r\n let target = feature.getProperties();\r\n let id = ''\r\n let elementId = ''\r\n if (isArray(target.features)) { // 处理聚合点击\r\n const properties = target.features[0].getProperties();\r\n id = properties.id;\r\n elementId = properties.id;\r\n target = target.features\r\n } else {\r\n id = target.id;\r\n elementId = target.element\r\n }\r\n // top: e.clientY,//当前点所在的位置(屏幕)\r\n // left: e.clientX,\r\n t.clickGraphic(id || elementId, evt, target);\r\n } else {\r\n t.clickMap(evt);\r\n }\r\n });\r\n // 鼠标移动事件 - 当鼠标指向要素时改变光标状态\r\n gis.on('pointermove', evt => {\r\n let pixel = gis.getEventPixel(evt.originalEvent);\r\n let hit = gis.hasFeatureAtPixel(pixel);\r\n if(gis.getTargetElement()){\r\n gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\r\n }\r\n // 获取到当前鼠标移动下的feature\r\n let feature = gis.forEachFeatureAtPixel(pixel, function (feature, layer) {\r\n return feature;\r\n });\r\n if (feature) {\r\n overall_feature = feature;\r\n let values = feature.getProperties();\r\n t.mouseOverGraphic(values.id, evt);\r\n } else {\r\n if (overall_feature) {\r\n overall_feature.dispatchEvent({ type: 'mousein', event: evt });\r\n let values = overall_feature.getProperties();\r\n t.mouseOutGraphic(values.id, evt);\r\n overall_feature = null;\r\n }\r\n }\r\n });\r\n // 鼠标拖拽事件 - 拖拽开始即是地图移动开始\r\n gis.on('pointerdrag', evt => {\r\n dragAddMoveFlag = true;\r\n t.dragMapStart(evt);\r\n t.moveStart(evt);\r\n });\r\n let zoom = 0;\r\n // 地图移动事件 - 移动结束即是拖拽事件结束 也是地图缩放事件(无开始和结束事件)的监听\r\n gis.on('moveend', evt => {\r\n t.dragMapEnd(evt);\r\n t.moveEnd(evt);\r\n t.zoomStart(evt);\r\n setTimeout(() => {\r\n t.zoomEnd(evt);\r\n }, 300);\r\n dragAddMoveFlag = false;\r\n });\r\n // gis.getViewport().addEventListener('mouseout', function () {\r\n // helpTooltipElement.classList.add('hidden');\r\n // });\r\n };\r\n event();\r\n t.setCenter(t.props.center);\r\n initData();\r\n }\r\n // 创建地图\r\n createMap() {\r\n let t = this;\r\n let {\r\n olProps={},\r\n mapCenter = [],\r\n mapId,\r\n mapZoomLevel,\r\n minZoom,\r\n maxZoom,\r\n } = t.props;\r\n let {\r\n epsg,\r\n proj4,\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 \r\n if(epsg){\r\n console.log('epsg', epsg, proj4);\r\n projection = `EPSG:${epsg}`;\r\n proj4Lib.defs(`EPSG:${epsg}`, proj4);\r\n ol.proj.proj4.register(proj4Lib);\r\n }else {\r\n projection = 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 projectToWGS84(point, eg) {\r\n const t = this;\r\n const { epsg } = t.props.olProps;\r\n return proj4Lib(`EPSG:${eg || epsg}`, 'EPSG:4326', point);\r\n }\r\n\r\n // 计算面积\r\n getPolygonArea(polygon){\r\n const t = this;\r\n const { epsg } = t.props.olProps;\r\n if(epsg){\r\n let temp = polygon.map(v=>t.projectToWGS84(v, epsg));\r\n return getPolygonArea(temp);\r\n }\r\n return getPolygonArea(polygon);\r\n }\r\n\r\n // 加载图层\r\n loadLayers = (nextLayers = [], currentLayers = [], first = false) => {\r\n const t = this;\r\n // 对比图层的变化,找出需要新增和需要删除的。\r\n const addLayers = nextLayers.filter(item => {\r\n return !currentLayers.map(e => e.coverage).includes(item.coverage)\r\n });\r\n const removeLayers = currentLayers.filter(item => {\r\n return !nextLayers.map(e => e.coverage).includes(item.coverage)\r\n })\r\n if(removeLayers.length > 0) {\r\n removeLayers.forEach(item => {\r\n const exist = t.olLayers.find(e => e.address === item.coverage);\r\n exist && exist.layer.setVisible(false);\r\n })\r\n }\r\n if (addLayers.length > 0) {\r\n addLayers.map(item => {\r\n if(\r\n item.coverage.startsWith(\"http\") || \r\n item.coverage.startsWith('/')\r\n ){\r\n switch(item.type) {\r\n // 超图\r\n case 'superMap':\r\n t.addSuperMapLayer(item.coverage);\r\n break;\r\n case 'geoServer':\r\n t.addGeoServerLayer(item.coverage);\r\n break;\r\n case 'geoServer_image':\r\n t.addGeoServerImageLayer(item);\r\n break;\r\n default:\r\n break;\r\n }\r\n }else if(item.coverage.indexOf(\"WMTS\")>-1){\r\n t.addTileLayer(JSON.parse(item.coverage));\r\n }else if(item.coverage == 'customLayer'){\r\n let layers = item.initLayer();\r\n if(layers){\r\n if(isArray(layers)){\r\n layers.map(layer=>{\r\n t.state.gis.addLayer(layer);\r\n })\r\n }else {\r\n t.state.gis.addLayer(layers);\r\n }\r\n }\r\n }else if (OL_SCREEN[item.coverage]) {\r\n if(first) {\r\n let layers = eval(OL_SCREEN[item.coverage].initLayer);\r\n if(isArray(layers)){\r\n layers.map(layer=>{\r\n t.state.gis.addLayer(layer);\r\n })\r\n }else {\r\n t.state.gis.addLayer(layers);\r\n }\r\n }\r\n }\r\n })\r\n } else {\r\n if(first) {\r\n let layers = eval(OL_SCREEN.tmap_normal.initLayer);\r\n if(isArray(layers)){\r\n layers.map(layer=>{\r\n t.state.gis.addLayer(layer);\r\n })\r\n }else {\r\n t.state.gis.addLayer(layers);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // wmts图层资源\r\n getWMTS(options) {\r\n const { url, params, sourceOptions } = options;\r\n \r\n //切片名\r\n let matrixIds = [\r\n 'EPSG:4326:0',\r\n 'EPSG:4326:1',\r\n 'EPSG:4326:2',\r\n 'EPSG:4326:3',\r\n 'EPSG:4326:4',\r\n 'EPSG:4326:5',\r\n 'EPSG:4326:6',\r\n 'EPSG:4326:7',\r\n 'EPSG:4326:8',\r\n 'EPSG:4326:9',\r\n 'EPSG:4326:10',\r\n 'EPSG:4326:11',\r\n 'EPSG:4326:12',\r\n 'EPSG:4326:13',\r\n 'EPSG:4326:14',\r\n 'EPSG:4326:15',\r\n 'EPSG:4326:16',\r\n 'EPSG:4326:17',\r\n 'EPSG:4326:18',\r\n ];\r\n \r\n //分辨率\r\n let resolutions = [\r\n 0.703125,\r\n 0.3515625,\r\n 0.17578125,\r\n 0.087890625,\r\n 0.0439453125,\r\n 0.02197265625,\r\n 0.010986328125,\r\n 0.0054931640625,\r\n 0.00274658203125,\r\n 0.001373291015625,\r\n 6.866455078125e-4,\r\n 3.4332275390625e-4,\r\n 1.71661376953125e-4,\r\n 8.58306884765625e-5,\r\n 4.291534423828125e-5,\r\n 2.1457672119140625e-5,\r\n 1.0728836059570312e-5,\r\n 5.364418029785156e-6,\r\n 2.682209014892578e-6,\r\n ];\r\n \r\n //切片策略\r\n let tilegrid = new ol.tilegrid.WMTS({\r\n extent: [-180.0, -90.0, 180.0, 90.0], //范围\r\n tileSize: [256, 256],\r\n origin: [-180.0, 90.0], //切片原点\r\n resolutions: resolutions, //分辨率\r\n matrixIds: matrixIds, //层级标识列表,与地图级数保持一致\r\n });\r\n \r\n //设置地图投影\r\n let projection = new ol.proj.Projection({\r\n code: 'EPSG:4326',\r\n units: 'degrees',\r\n axisOrientation: 'neu',\r\n });\r\n \r\n return new ol.source.WMTS({\r\n url: url,\r\n layer: params?.layer,\r\n format: 'image/png',\r\n matrixSet: 'EPSG:4326',\r\n projection: projection,\r\n tileGrid: tilegrid,\r\n ...sourceOptions,\r\n });\r\n }\r\n \r\n // 添加普通图层\r\n addTileLayer({url,params={}, sourceOptions={}, type, source}){\r\n if(url){\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n let layerSource = source || (type==='WMTS'?\r\n this.getWMTS({url,params,sourceOptions})\r\n : new ol.source.XYZ({\r\n url,\r\n ...sourceOptions,\r\n })\r\n )\r\n const layer = new ol.layer.Tile({\r\n source: layerSource\r\n });\r\n\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n }\r\n // 添加超图图层\r\n addSuperMapLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n const layer = new ol.layer.Tile({\r\n source: new ol.source.TileSuperMapRest({\r\n url\r\n })\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n // 添加geoServer_geoJSON图层\r\n addGeoServerLayer(url) {\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n\r\n // 矢量数据源\r\n const vectorSource = new ol.source.Vector({\r\n // 设置格式化类型\r\n format: new ol.format.GeoJSON(),\r\n\r\n // url(extent) 在地图范围变化时调用,返回当前的地图范围\r\n url: function (extent) {\r\n return `${url}&bbox=${extent.join(',')}`;\r\n },\r\n strategy: ol.loadingstrategy.bbox,\r\n });\r\n\r\n // 矢量图层\r\n const layer = new ol.layer.Vector({\r\n // 设置数据源\r\n source: vectorSource,\r\n // 设置图层样式也可以 function (feature) { /** 根据内容动态加载样式 **/ return Style}\r\n style: function(feature) {\r\n const el = feature.A || {};\r\n const icon = JSON.parse(el.icon || '[]');\r\n let mapIcon = icon[0]?.id\r\n ? `/cloudFile/common/downloadFile?id=${icon[0].id}`\r\n : require(\"../images/defaultMarker.png\");\r\n return new ol.style.Style({\r\n // 点位图标\r\n image: new ol.style.Icon({\r\n scale: 1,\r\n src: mapIcon,\r\n }),\r\n // 线样式\r\n stroke: new ol.style.Stroke({\r\n color: el.color || '#1890ff',\r\n width: 4\r\n }),\r\n // 面样式\r\n fill: new ol.style.Fill({\r\n color: el.color || 'rgba(255,255,255, 0.5)'\r\n })\r\n })\r\n },\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer\r\n });\r\n }\r\n formatUrl(url){\r\n let param = {},address=url.split(\"?\")[0];\r\n url.split(\"?\")[1].split(\"&\").map(item=>{\r\n let json = item.split(\"=\")\r\n param[json[0].toUpperCase()] = json[1]?decodeURIComponent(json[1]):'';\r\n })\r\n return {param,address}\r\n }\r\n // 添加geoServer_image图层\r\n addGeoServerImageLayer(item) {\r\n let url = item.coverage;\r\n const exist = this.olLayers.find(item => item.address === url);\r\n if(exist) {\r\n exist.layer.setVisible(true);\r\n return;\r\n }\r\n let {param={},address} = this.formatUrl(url);\r\n // 矢量数据源\r\n const vectorSource = new ol.source.ImageWMS({\r\n url: address,\r\n serverType: 'geoserver',\r\n crossOrigin: '*',\r\n ratio: 1,\r\n params: {\r\n VERSION: '1.1.0',\r\n ...(item.param||{}),\r\n ...param,\r\n },\r\n });\r\n\r\n // 矢量图层\r\n const layer = new ol.layer.Image({\r\n // 设置数据源\r\n source: vectorSource,\r\n });\r\n // 将图层添加到地图上\r\n this.state.gis.addLayer(layer);\r\n this.olLayers.push({\r\n address: url,\r\n layer,\r\n source: vectorSource\r\n });\r\n }\r\n // 初始化对外方法\r\n initPropsForUser(){\r\n const t = this;\r\n t.state.gis[\"fitView\"] = (arr) => {\r\n t.fitView(arr);\r\n }\r\n t.state.gis[\"getCenter\"] = () => {\r\n return t.getCenter();\r\n }\r\n t.state.gis[\"setCenter\"] = (gt) => {\r\n t.setCenter(gt);\r\n }\r\n t.state.gis[\"getZoomLevel\"] = () => {\r\n return t.getZoomLevel();\r\n }\r\n t.state.gis[\"showInfoWindow\"] = (obj) => {\r\n return t.showInfoWindow(obj);\r\n }\r\n t.state.gis[\"hideInfoWindow\"] = () => {\r\n return t.hideInfoWindow();\r\n }\r\n t.state.gis[\"frameSelect\"] = (obj={},callback) => {\r\n return t.frameSelect(obj,callback);\r\n }\r\n t.state.gis[\"clearFrameSelect\"] = () => {\r\n return t.clearFrameSelect();\r\n }\r\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\r\n return t.clearFrameSelectById(id);\r\n }\r\n t.state.gis[\"refresh\"] = () => {\r\n t.refresh();\r\n }\r\n }\r\n // 设置中心点\r\n setCenter(gt) {\r\n let t = this;\r\n if(!t.state.gis){\r\n return;\r\n }\r\n if (gt) {\r\n //经纬度 必须存在 否则不操作\r\n if (!gt[0] || !gt[1]) {\r\n return false;\r\n }\r\n //如果设置的经纬度 与当前中心点一样 不操作\r\n let c = t.getCenter();\r\n if (c.lng == gt[0] && c.lat == gt[1]) {\r\n return false;\r\n }\r\n t.state.gis.getView().setCenter(gt);\r\n t.viewer.animate({\r\n center: gt,\r\n duration: 2000,\r\n });\r\n }\r\n }\r\n //设置地图缩放层级\r\n setZoomLevel (zoom) {\r\n let t =this;\r\n let z = t.state.gis.getView().getZoom();\r\n if(z == zoom){\r\n return false;\r\n }\r\n t.state.gis.getView().setZoom(zoom)\r\n }\r\n //获取当前中心点\r\n getCenter() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let [xmin, ymin, xmax, ymax] = gis.getView().calculateExtent(gis.getSize());\r\n return { lng: (xmin + xmax) / 2, lat: (ymin + ymax) / 2 };\r\n }\r\n //编辑图元\r\n doEdit(id) {\r\n let t = this;\r\n //获取图元对象\r\n let gc = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n if (!gc) return false;\r\n //关闭先前编辑的图元\r\n if (!!t.state.editId) {\r\n t.endEdit();\r\n }\r\n if (!t.editToolbar) {\r\n t.editToolbar = new ol.interaction.Modify({\r\n source: gp.source,\r\n hitDetection: true,\r\n });\r\n t.state.gis.addInteraction(t.editToolbar)\r\n }else{\r\n t.state.gis.addInteraction(t.editToolbar)\r\n }\r\n t.editToolbar.on('modifyend', function (e) {\r\n let feature = gc;\r\n e.features.forEach(function (feature) {\r\n feature = feature\r\n })\r\n //返回参数\r\n let param = {\r\n id,\r\n e,\r\n };\r\n // 绘制内部管理的图元\r\n if (gp.geometry.type == 'point') {\r\n let cur = feature.getProperties().geometry;\r\n const [lng, lat] = cur.flatCoordinates;\r\n //处理点返回参数\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n }\r\n },\r\n geometryType: gp.geometry.type,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n type: 'point',\r\n x: lng,\r\n y: lat,\r\n },\r\n }\r\n }\r\n //线\r\n if (gp.geometry.type == 'polyline') {\r\n let cur = feature.getProperties().geometry;\r\n let oddList = [], evenList = [];\r\n cur.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n paths: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n paths: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n geometry: {\r\n paths: path,\r\n _extent,\r\n type: \"polyline\",\r\n },\r\n geometryType: 'polyline',\r\n lnglatAry,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n paths: path,\r\n _extent,\r\n type: \"polyline\",\r\n },\r\n distance: t.calculateDistance(path),\r\n }\r\n }\r\n //面\r\n if (gp.geometry.type == 'polygon') {\r\n let cur = feature.getProperties().geometry;\r\n let oddList = [], evenList = [];\r\n cur.flatCoordinates.map((item, index) => {\r\n // 判断下标奇偶数\r\n if (index % 2 === 0) {\r\n evenList.push(item)\r\n } else {\r\n oddList.push(item)\r\n }\r\n })\r\n let path = oddList.map((item, index) => {\r\n return [evenList[index], oddList[index]]\r\n })\r\n //处理线返回参数\r\n let { lnglatAry, _extent } = t.dealData(path);\r\n param = {\r\n ...param,\r\n attributes: {\r\n ...gp.attributes,\r\n rings: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n param: {\r\n attributes: {\r\n ...gp.attributes,\r\n rings: path,\r\n other: {\r\n ...gp.attributes,\r\n paths: path,\r\n }\r\n },\r\n geometry: {\r\n rings: path,\r\n type: 'polygon',\r\n _extent\r\n },\r\n geometryType: 'polygon',\r\n lnglatAry,\r\n mapLayer: t.GM.getGraphic(id)\r\n },\r\n geometryType: gp.geometry.type,\r\n geometry: {\r\n rings: path,\r\n type: 'polygon',\r\n _extent\r\n },\r\n area: t.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(t.projectToWGS84(sketchCoords_),t.projectToWGS84(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: t.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: t.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(t.projectToWGS84(sketchCoords_), t.projectToWGS84(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 t.projectToWGS84([obj.nowCenter.lng, obj.nowCenter.lat]),\r\n t.projectToWGS84([obj.northEast.lng, obj.northEast.lat]),\r\n );\r\n return obj;\r\n }\r\n }\r\n //将制定图元展示在视野内 (强制改变地图中心位置)\r\n /*\r\n 参数arg格式如下1,2\r\n 1.string 格式如:'1,a,2,3,4'\r\n 2.数组 ['1','2']\r\n */\r\n setVisiblePoints(mapVisiblePoints) {\r\n let t = this;\r\n const {gis} = t.state;\r\n let arg = null;\r\n let type = mapVisiblePoints.type;\r\n let ary = [];//图元id集合\r\n let obj = [];//经纬度集合\r\n switch(mapVisiblePoints.fitView){\r\n case 'point':\r\n arg = this.state.pointIds;\r\n break;\r\n case 'line':\r\n arg = this.state.lineIds;\r\n break;\r\n case 'polygon':\r\n arg = this.state.polygonIds;\r\n break;\r\n case 'circle':\r\n arg = this.state.circleIds;\r\n break;\r\n case 'all':\r\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\r\n break;\r\n default:\r\n arg = mapVisiblePoints.fitView;\r\n break;\r\n }\r\n if(typeof(arg) === 'string'){\r\n ary = arg.split(',');\r\n }else if(arg instanceof Array){\r\n ary = arg;\r\n }\r\n for(let i = 0 ; i < ary.length ; i++){\r\n let g = t.GM.getGraphicParam(ary[i]);\r\n if(g){\r\n switch(g.geometry.type){\r\n case 'point':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n case 'circle':\r\n obj.push([g.geometry.x,g.geometry.y]);\r\n break;\r\n case 'polyline':\r\n obj = [...obj,...g.geometry.paths];\r\n break;\r\n case 'polygon':\r\n obj = [...obj,...g.geometry.rings];\r\n break;\r\n }\r\n }\r\n }\r\n if(obj.length > 0){\r\n let displayRange = new ol.extent.boundingExtent(obj);\r\n gis.getView().fit(displayRange, gis.getSize());\r\n }\r\n }\r\n getFitView(ids) {\r\n let t = this;\r\n if (ids.length > 0) {\r\n let maxX = null, maxY = null, minX = null, minY = null;\r\n for (let i = 0; i < ids.length; i++) {\r\n let coord = t.GM.getGraphic(ids[i]);\r\n let boundsArry = coord.getGeometry().getExtent();\r\n if (minX === null) {\r\n minX = boundsArry[0]\r\n minY = boundsArry[1]\r\n maxX = boundsArry[2]\r\n maxY = boundsArry[3]\r\n } else {\r\n minX = Math.min(boundsArry[0], minX)\r\n minY = Math.min(boundsArry[1], minY)\r\n maxX = Math.max(boundsArry[2], maxX)\r\n maxY = Math.max(boundsArry[3], maxY)\r\n }\r\n }\r\n const bounds = [minX, minY, maxX, maxY];\r\n return bounds;\r\n }\r\n }\r\n\r\n // 设置最佳视野\r\n fitView(arr=[]){\r\n const t= this;\r\n if(arr?.length >0){\r\n let displayRange = new ol.extent.boundingExtent(arr);\r\n t.state.gis.getView().fit(displayRange, t.state.gis.getSize());\r\n }\r\n }\r\n\r\n /*功能方法*/\r\n //获取当前地图的中心位置\r\n getCurrentCenter() {\r\n let t = this;\r\n const { gis } = t.state;\r\n let extent = gis.getView().calculateExtent(gis.getSize());\r\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\r\n }\r\n //获取当前比例尺\r\n getZoomLevel() {\r\n let t = this;\r\n return t.state.gis.getView().getZoom();\r\n }\r\n //获取图元数据\r\n getGraphic(id) {\r\n let t = this;\r\n if (!id) {\r\n return false;\r\n }\r\n let gp = t.GM.getGraphicParam(id);\r\n let gg = t.GM.getGraphic(id);\r\n if (!gg) {\r\n return false;\r\n }\r\n let p = {},\r\n pts = [],\r\n lng = 0,\r\n lat = 0;\r\n switch (gp.geometryType) {\r\n case 'point':\r\n lng = gp.geometry.x;\r\n lat = gp.geometry.y;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n },\r\n },\r\n };\r\n break;\r\n case 'polyline':\r\n pts = gp.geometry.paths;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n paths: pts,\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n paths: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n paths: pts,\r\n },\r\n },\r\n };\r\n break;\r\n case 'polygon':\r\n pts = gp.geometry.rings;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n rings: pts,\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n rings: pts,\r\n other: {\r\n ...gp.attributes.other,\r\n rings: pts,\r\n },\r\n },\r\n area: t.getPolygonArea(pts),\r\n };\r\n break;\r\n case 'circle':\r\n lng = gp.geometry.x;\r\n lat = gp.geometry.y;\r\n let radius = gp.geometry.radius;\r\n p = {\r\n ...gp,\r\n mapLayer: gg,\r\n geometry: {\r\n ...gp.geometry,\r\n x: lng,\r\n y: lat,\r\n radius,\r\n },\r\n attributes: {\r\n ...gp.attributes,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n other: {\r\n ...gp.attributes.other,\r\n longitude: lng,\r\n latitude: lat,\r\n radius,\r\n },\r\n },\r\n };\r\n break;\r\n }\r\n return p;\r\n }\r\n // 转换dom节点\r\n parseDom(domStr) {\r\n const domObj = document.createElement('div');\r\n domObj.innerHTML = domStr;\r\n return domObj.childNodes;\r\n }\r\n //添加海量点\r\n addPointCollection(data = []) {\r\n let t = this;\r\n data.map((item, index) => {\r\n let d = item || {};\r\n let points = (d.points || []).map((d, i) => {\r\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\r\n return [p[0], p[1]];\r\n });\r\n let [width, height] = t.state.gis.getSize();\r\n let options = {\r\n size: d.size,\r\n shape: d.shape,\r\n color: d.color,\r\n width: width,\r\n height: height,\r\n mapId: t.props.mapId\r\n };\r\n let VotexpointCollection = new GMapLib.PointCollection(points, options);\r\n t.morepoints.push({\r\n id: d.id,\r\n value: VotexpointCollection\r\n });\r\n VotexpointCollection.draw();\r\n })\r\n }\r\n //更新海量点\r\n updatePointCollection(data = []) {\r\n let t = this;\r\n data.map((ds, ind) => {\r\n t.morepoints.map((item, index) => {\r\n if (item.id == ds.id) {\r\n let points = (ds.points || []).map((d, i) => {\r\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\r\n return [p[0], p[1]];\r\n });\r\n let [width, height] = t.state.gis.getSize();\r\n let options = {\r\n size: ds.size,\r\n shape: ds.shape,\r\n color: ds.color,\r\n width: width,\r\n height: height\r\n };\r\n item.value.reDraw(points, options);\r\n }\r\n })\r\n })\r\n }\r\n //删除海量点\r\n clearPointCollection(ids = []) {\r\n let t = this;\r\n ids.map((id, ind) => {\r\n t.morepoints.map(function (item, index) {\r\n if (id == item.id) {\r\n item.value.clear();\r\n }\r\n });\r\n });\r\n }\r\n\r\n //删除全部海量点\r\n clearAllPointCollection() {\r\n let t = this;\r\n t.morepoints.map(function (item, index) {\r\n item.value.clear();\r\n });\r\n }\r\n // 框选\r\n frameSelect({geometryType,parameter={},data={}},callback){\r\n if(!['polygon','circle','rectangle'].includes(geometryType)){\r\n message.warn(\"传入的类型不支持框选!\")\r\n return false;\r\n }\r\n const t = this;\r\n let params = {},\r\n type = geometryType||'polygon',\r\n id = data.id || `frameSelectFeature_${Math.random()}`;\r\n\r\n params.color = parameter.color||'#FF0000';\r\n params.lineColor = parameter.lineColor||'#FF0000';\r\n params.lineOpacity = parameter.lineOpacity||1;\r\n params.lineWidth = parameter.lineWidth||2;\r\n params.pellucidity = parameter.pellucidity||0.6;\r\n params.lineType = parameter.lineType||'solid';\r\n\r\n t.draw({\r\n geometryType: type,\r\n parameter: {\r\n ...parameter,\r\n ...params\r\n },\r\n data:{\r\n id: id\r\n }\r\n });\r\n\r\n t.frameSelectProps[id] = {\r\n callback,\r\n id,\r\n type: geometryType\r\n } \r\n }\r\n // 清除框选\r\n clearFrameSelect(){\r\n for(let key in this.frameSelectProps){\r\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\r\n }\r\n this.frameSelectProps = {};\r\n }\r\n // 清除框选ById\r\n clearFrameSelectById(id){\r\n let obj = this.frameSelectProps[id];\r\n this.removeGraphic(obj.id, obj.type);\r\n delete this.frameSelectProps[id];\r\n }\r\n /*\r\n * 添加信息窗口\r\n * params\r\n * @position: Array[longitude,latitude]\r\n * @content: String|HTML\r\n * @close: boolean\r\n */\r\n showInfoWindow(params={}){\r\n const t = this;\r\n if(t.popupWindow){\r\n t.hideInfoWindow();\r\n }\r\n t.popupWindow = new Popup({\r\n map: t.state.gis,\r\n position: params.position,\r\n innerHTML: params.content,\r\n close: params.close\r\n });\r\n t.popupWindow.showPopup();\r\n }\r\n hideInfoWindow(){\r\n const t = this;\r\n if(t.popupWindow){\r\n t.popupWindow.removePopup();\r\n }\r\n t.popupWindow = null;\r\n }\r\n // 添加点\r\n addPoint(mapPoints, type) {\r\n let t = this;\r\n let ps = [];\r\n let psids = [...t.state.pointIds];\r\n mapPoints.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`加点id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n // 创建点位图元要素\r\n let feature = new ol.Feature({\r\n geometry: new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]),\r\n name: item.name,\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n let cg = {\r\n width: 30,\r\n height: 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n markerContentX: -13,\r\n markerContentY: -42,\r\n zIndex: 100,\r\n deg: 0,\r\n scale: 1,\r\n };\r\n //初始化默认数据\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n // 覆盖物样式参数\r\n let style, icon, txt;\r\n let myImage = new Image(cg.width, cg.height);\r\n \r\n if (!!item.markerContent) {\r\n let nodes = t.parseDom(item.markerContent)[0];\r\n // 自定义图层需要把事件加在dom上\r\n nodes.addEventListener(\"click\", e => {\r\n t.clickGraphic(item.id,{\r\n ...e,\r\n pixel: [e.clientX,e.clientY]\r\n })\r\n })\r\n // 创建地图自定义覆盖物\r\n let pop = new ol.Overlay({\r\n id: item.id,\r\n position: [parseFloat(item.longitude), parseFloat(item.latitude)],\r\n positioning: 'center-center',\r\n element: nodes,\r\n autoPanMargin: 20,\r\n autoPan: true,\r\n offset: [0, -20],\r\n insertFirst: true,\r\n });\r\n t.state.gis.addOverlay(pop);\r\n } else {\r\n // item.url || require(\"../images/defaultMarker.png\"),\r\n canvasDataURL(\r\n item.url || require(\"../images/defaultMarker.png\"),\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n }\r\n )\r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n });\r\n }\r\n if (!!item.canShowLabel && item.canShowLabel) {\r\n let textStyle = {\r\n textAlign: 'center', //对齐方式\r\n textBaseline: 'middle', //文本基线\r\n font: 'normal 12px 微软雅黑', //字体样式\r\n text: cg.labelContent, //文本内容\r\n offsetX: cg.labelPixelX, // x轴偏置\r\n offsetY: cg.labelPixelY, // Y轴偏置\r\n fill: new ol.style.Fill({\r\n //填充样式\r\n color: '#1890ff',\r\n }),\r\n backgroundFill: new ol.style.Fill({\r\n // 填充背景\r\n color: 'rgba(255, 255, 255, 1)',\r\n }),\r\n padding: [2, 5, 2, 5],\r\n ...(cg.labelStyle || {})\r\n }\r\n if(cg.labelStyle && cg.labelStyle.fill){\r\n textStyle['fill'] = new ol.style.Fill({\r\n color: cg.labelStyle.fill\r\n })\r\n }\r\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\r\n textStyle['backgroundFill'] = new ol.style.Fill({\r\n color: cg.labelStyle.backgroundFill\r\n })\r\n }\r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n // src: item.url || require(\"../images/defaultMarker.png\"),\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n // 创建地图要素文字样式\r\n text: new ol.style.Text(textStyle),\r\n });\r\n }\r\n feature.setStyle(style);\r\n // 初始化适量数据源\r\n let source = new ol.source.Vector({\r\n features: [feature],\r\n name: 'point',\r\n id: item.id,\r\n });\r\n let pointLayer = new ol.layer.Vector({\r\n name: 'point',\r\n source,\r\n id: item.id,\r\n zIndex: t.pointLayerZIndex\r\n });\r\n t.pointLayers.push({\r\n id: item.id,\r\n layer: pointLayer\r\n })\r\n //添加点位图层\r\n t.state.gis.addLayer(pointLayer);\r\n if (!item.markerContent && cg.BAnimationType == 0) {\r\n marker.setAnimation(BMAP_ANIMATION_BOUNCE);\r\n } else if (!item.markerContent && cg.BAnimationType == 1) {\r\n marker.setAnimation(BMAP_ANIMATION_DROP);\r\n }\r\n psids.push(item.id);\r\n //缓存图元的数据,偏于后期操作\r\n this.GM.setGraphic(item.id, feature).setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n },\r\n source\r\n });\r\n });\r\n if (type !== 'defined') {\r\n // t.state.pointIds = psids;\r\n t.setState({\r\n pointIds: psids\r\n })\r\n }\r\n }\r\n //更新点\r\n updatePoint(mapPoints = []) {\r\n let t = this;\r\n let index = 0;\r\n const dealPoint = (item) => {\r\n if (this.GM.isRepetition(item.id)) {\r\n //点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`点 经纬度 数据错误`);\r\n return false;\r\n }\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(item.id);\r\n let cg = {\r\n width: 30,\r\n height: 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n BAnimationType: 3,\r\n //默认点的偏移值就不同\r\n markerContentX: -15,\r\n markerContentY: -30,\r\n deg: 0,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n\r\n let text, icon, marker;\r\n let myImage = new Image(cg.width, cg.height);\r\n if (item.markerContent) {\r\n let overlay = t.state.gis.getOverlayById(item.id);\r\n let nodes = t.parseDom(item.markerContent)[0];\r\n nodes.addEventListener(\"click\", e => {\r\n t.clickGraphic(item.id,{\r\n ...e,\r\n pixel: [e.clientX,e.clientY]\r\n })\r\n })\r\n overlay.setElement(nodes);\r\n overlay.setPosition([parseFloat(item.longitude), parseFloat(item.latitude)]);\r\n t.state.gis.changed();\r\n } else {\r\n canvasDataURL(\r\n item.url || require(\"../images/defaultMarker.png\"),\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n }\r\n )\r\n icon = new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n // src: item.url || require(\"../images/defaultMarker.png\"),\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n rotation: Math.PI / 180 * cg.deg,\r\n })\r\n if (item.canShowLabel) {\r\n let textStyle = {\r\n textAlign: 'center', //对齐方式\r\n textBaseline: 'middle', //文本基线\r\n font: 'normal 12px 微软雅黑', //字体样式\r\n text: cg.labelContent, //文本内容\r\n offsetX: cg.labelPixelX, // x轴偏置\r\n offsetY: cg.labelPixelY, // Y轴偏置\r\n fill: new ol.style.Fill({\r\n //填充样式\r\n color: '#1890ff',\r\n }),\r\n backgroundFill: new ol.style.Fill({\r\n // 填充背景\r\n color: 'rgba(255, 255, 255, 1)',\r\n }),\r\n padding: [2, 5, 2, 5],\r\n ...(cg.labelStyle || {})\r\n }\r\n if(cg.labelStyle && cg.labelStyle.fill){\r\n textStyle['fill'] = new ol.style.Fill({\r\n color: cg.labelStyle.fill\r\n })\r\n }\r\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\r\n textStyle['backgroundFill'] = new ol.style.Fill({\r\n color: cg.labelStyle.backgroundFill\r\n })\r\n }\r\n text = new ol.style.Text(textStyle)\r\n }\r\n if (text) {\r\n gc.setStyle(new ol.style.Style({\r\n image: icon,\r\n text,\r\n }))\r\n } else {\r\n gc.setStyle(new ol.style.Style({\r\n image: icon,\r\n }))\r\n }\r\n }\r\n gc.setGeometry(new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]));\r\n this.GM.setGraphicParam(\r\n item.id,\r\n {\r\n attributes: { ...item, other: item },\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude)\r\n },\r\n source: gp.source\r\n }\r\n );\r\n } else {\r\n console.warn(`更新的点位id不存在!`);\r\n return false;\r\n }\r\n if (index < mapPoints.length - 1) {\r\n requestIdleCallback(() => dealPoint(mapPoints[++index]))\r\n } else {\r\n t.refresh();\r\n }\r\n }\r\n if (!isEmpty(mapPoints)) {\r\n requestIdleCallback(() => dealPoint(mapPoints[index]))\r\n }\r\n }\r\n // 点位样式\r\n getPointStyle(item){\r\n let t = this;\r\n let cg = {\r\n width: 30,\r\n height: 30,\r\n labelContent: '',\r\n labelPixelX: 0,\r\n labelPixelY: 34,\r\n markerContentX: -13,\r\n markerContentY: -42,\r\n zIndex: 100,\r\n deg: 0,\r\n scale: 1,\r\n };\r\n //初始化默认数据\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n // 覆盖物样式参数\r\n let style, icon, txt;\r\n\r\n let myImage = new Image(cg.width, cg.height);\r\n \r\n if (!!item.markerContent) {\r\n let nodes = t.parseDom(item.markerContent)[0];\r\n // 自定义图层需要把事件加在dom上\r\n nodes.addEventListener(\"click\", e => {\r\n t.clickGraphic(item.id,{\r\n ...e,\r\n pixel: [e.clientX,e.clientY],\r\n attributes: { ...item, other: item }\r\n })\r\n })\r\n // 创建地图自定义覆盖物\r\n let pop = new ol.Overlay({\r\n id: item.id,\r\n position: [parseFloat(item.longitude), parseFloat(item.latitude)],\r\n positioning: 'center-center',\r\n element: nodes,\r\n autoPanMargin: 20,\r\n autoPan: true,\r\n offset: [0, -20],\r\n insertFirst: true,\r\n });\r\n t.state.gis.addOverlay(pop);\r\n } else {\r\n let url = item.url || defaultMarker;\r\n let temp = t.imgCache.get(url);\r\n if(temp){\r\n console.log(item.id);\r\n myImage.src = temp;\r\n }else {\r\n // myImage.src = url;\r\n // t.imgCache.set(url, url);\r\n canvasDataURL(\r\n url,\r\n { width: cg.width, height: cg.height },\r\n function (base64) {\r\n myImage.src = base64;\r\n t.imgCache.set(url, base64);\r\n }\r\n )\r\n }\r\n \r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n });\r\n }\r\n if (!!item.canShowLabel && item.canShowLabel) {\r\n let textStyle = {\r\n textAlign: 'center', //对齐方式\r\n textBaseline: 'middle', //文本基线\r\n font: 'normal 12px 微软雅黑', //字体样式\r\n text: cg.labelContent, //文本内容\r\n offsetX: cg.labelPixelX, // x轴偏置\r\n offsetY: cg.labelPixelY, // Y轴偏置\r\n fill: new ol.style.Fill({\r\n //填充样式\r\n color: '#1890ff',\r\n }),\r\n backgroundFill: new ol.style.Fill({\r\n // 填充背景\r\n color: 'rgba(255, 255, 255, 1)',\r\n }),\r\n padding: [2, 5, 2, 5],\r\n ...(cg.labelStyle || {})\r\n }\r\n if(cg.labelStyle && cg.labelStyle.fill){\r\n textStyle['fill'] = new ol.style.Fill({\r\n color: cg.labelStyle.fill\r\n })\r\n }\r\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\r\n textStyle['backgroundFill'] = new ol.style.Fill({\r\n color: cg.labelStyle.backgroundFill\r\n })\r\n }\r\n // 创建地图要素图标样式\r\n style = new ol.style.Style({\r\n image: new ol.style.Icon({\r\n anchor: [-cg.markerContentX, -cg.markerContentY],\r\n anchorXUnits: 'pixels',\r\n anchorYUnits: 'pixels',\r\n // src: item.url || require(\"../images/defaultMarker.png\"),\r\n img: myImage,\r\n imgSize: [cg.width, cg.height],\r\n opacity: cg.opacity,\r\n scale: cg.scale || 1,\r\n }),\r\n // 创建地图要素文字样式\r\n text: new ol.style.Text(textStyle),\r\n });\r\n }\r\n return style;\r\n }\r\n // 添加点位图层\r\n addPointLayer(points){\r\n let t = this;\r\n \r\n let features = [];\r\n points?.map(item=>{\r\n let feature = new ol.Feature({\r\n geometry: new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]),\r\n name: item.name,\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n feature.setId(item.id);\r\n\r\n let style = t.getPointStyle(item);\r\n\r\n feature.setStyle(style);\r\n features.push(feature);\r\n t.GM.setGraphic(item.id, feature).setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'point',\r\n geometry: {\r\n type: 'point',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n },\r\n });\r\n })\r\n if(t.pointFeatureLayer){\r\n let source = t.pointFeatureLayer.getSource();\r\n console.log(source);\r\n \r\n let oldFeatures = source.getFeatures();\r\n let newFeatures = [], updateFeatureIds = [];\r\n oldFeatures.map(feat=>{\r\n let obj = features.find(p=>p.getId() == feat.getId())\r\n if(obj){\r\n if(JSON.stringify(obj.getStyle()) !== JSON.stringify(feat.getStyle())){\r\n feat.setStyle(obj.getStyle());\r\n }\r\n if(JSON.stringify(obj.getGeometry()) !== JSON.stringify(feat.getGeometry())){\r\n feat.setGeometry(obj.getGeometry());\r\n }\r\n updateFeatureIds.push(feat.getId());\r\n }else {\r\n source.removeFeature(feat);\r\n }\r\n })\r\n newFeatures = features.filter(p=>!updateFeatureIds.includes(p.getId()));\r\n if(newFeatures.length>0){\r\n t.pointFeatureLayer.getSource().addFeatures(newFeatures);\r\n }\r\n // t.pointFeatureLayer.getSource().clear();\r\n // t.pointFeatureLayer.getSource().addFeatures(features);\r\n }else {\r\n let source = new ol.source.Vector({\r\n features: features,\r\n });\r\n let pointLayer = new ol.layer.Vector({\r\n name: 'point_layer',\r\n source,\r\n id: 'point_layer',\r\n zIndex: t.pointLayerZIndex\r\n });\r\n t.state.gis.addLayer(pointLayer);\r\n t.pointFeatureLayer = pointLayer;\r\n }\r\n \r\n t.refresh();\r\n }\r\n // 更新图层\r\n refresh(){\r\n const t = this;\r\n let timer = setTimeout(()=>{\r\n clearTimeout(timer);\r\n window.VtxMap[t.props.mapId]?.redrawText();\r\n },100)\r\n }\r\n // 添加先\r\n addLine(mapLines, type) {\r\n let t = this;\r\n let ls = [];\r\n let lsids = [...t.state.lineIds];\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多折线id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',\r\n isHidden: false,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n });\r\n let polyline = new ol.Feature({\r\n geometry: new ol.geom.LineString(item.paths),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n });\r\n polyline.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polyline],\r\n name: 'polyline',\r\n id: item.id,\r\n })\r\n let lineLayer = new ol.layer.Vector({\r\n name: 'polyline',\r\n id: item.id,\r\n source,\r\n zIndex: t.polylineLayerZIndex\r\n });\r\n t.state.gis.addLayer(lineLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polyline).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: source,\r\n });\r\n ls.push(polyline);\r\n lsids.push(item.id);\r\n t.state.lineIds.push(item.id);\r\n });\r\n if (type !== 'defined') {\r\n t.state.lineIds = lsids;\r\n }\r\n }\r\n //更新线\r\n updateLine(mapLines) {\r\n let t = this;\r\n //遍历添加线(图元)\r\n mapLines.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多折线点位数据不符合,直接跳过\r\n if (!(item.paths && item.paths.length >= 2)) {\r\n console.warn(`多折线paths数据错误`);\r\n return false;\r\n }\r\n //初始化默认参数\r\n let cg = {\r\n color: '#277ffa',\r\n pellucidity: 0.9,\r\n lineWidth: 5,\r\n lineType: 'solid',//'solid' 'dashed'\r\n isHidden: false\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = this.GM.getGraphicParam(item.id);\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.paths.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.color,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n zIndex: cg.zIndex || 0,\r\n }),\r\n });\r\n gc.setStyle(() => {\r\n return style\r\n })\r\n gc.setGeometry(new ol.geom.LineString(pts));\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n paths: pts,\r\n other: item,\r\n },\r\n geometryType: 'polyline',\r\n geometry: {\r\n type: 'polyline',\r\n paths: pts,\r\n },\r\n source: gp.source,\r\n });\r\n } else {\r\n console.warn(`更新的多折线id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加面\r\n addPolygon(mapPolygons) {\r\n let t = this;\r\n let pgs = [];\r\n let pgsids = [...t.state.polygonIds];\r\n //遍历添加面(图元)\r\n mapPolygons.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (this.GM.isRepetition(item.id)) {\r\n console.warn(`多边形id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5,\r\n };\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let polygon = new ol.Feature({\r\n geometry: new ol.geom.Polygon([item.rings]),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'polygon',\r\n });\r\n polygon.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [polygon],\r\n id: item.id,\r\n })\r\n let polygonLayer = new ol.layer.Vector({\r\n name: 'polygon',\r\n id: item.id,\r\n source,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(polygonLayer);\r\n //缓存图元的数据,便于后期操作\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n this.GM.setGraphic(item.id, polygon).setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source\r\n });\r\n pgs.push(polygon);\r\n pgsids.push(item.id);\r\n });\r\n t.state.polygonIds = pgsids;\r\n }\r\n //更新面\r\n updatePolygon(mapPolygons) {\r\n let t = this;\r\n mapPolygons.map((item, index) => {\r\n //判断图元是否存在.\r\n if (this.GM.isRepetition(item.id)) {\r\n //多边形点位数据不符合,直接跳过\r\n if (!(item.rings && item.rings.length >= 3)) {\r\n console.warn(`多边形rings数据错误`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = this.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n };\r\n //重新初始化值\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let pts = item.rings.map((itt, ind) => {\r\n return [...itt];\r\n });\r\n gc.setGeometry(new ol.geom.Polygon([pts]));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n this.GM.setGraphicParam(item.id, {\r\n attributes: {\r\n ...item,\r\n rings: pts,\r\n other: item,\r\n },\r\n geometryType: 'polygon',\r\n geometry: {\r\n type: 'polygon',\r\n rings: pts,\r\n },\r\n source: gp.source\r\n });\r\n } else {\r\n console.warn(`更新的多边形id不存在!`);\r\n return false;\r\n }\r\n });\r\n }\r\n //添加圆 circle\r\n addCircle(mapCircles, type) {\r\n let t = this;\r\n let ccsids = [...t.state.circleIds];\r\n if (type) {\r\n ccsids = [...t.state.drawIds[type]];\r\n }\r\n mapCircles.map((item, index) => {\r\n //如果id重复,直接跳过不执行.\r\n if (t.GM.isRepetition(item.id)) {\r\n console.warn(`圆id: ${item.id} 重复`);\r\n return false;\r\n }\r\n //圆 点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n const style = new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n });\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n let circle = new ol.Feature({\r\n geometry: new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)),\r\n id: item.id,\r\n params: {\r\n ...item,\r\n },\r\n name: 'circle'\r\n });\r\n circle.setStyle(style);\r\n let source = new ol.source.Vector({\r\n features: [circle],\r\n name: 'circle',\r\n id: item.id,\r\n });\r\n let circleLayer = new ol.layer.Vector({\r\n name: 'circle',\r\n id: item.id,\r\n source,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(circleLayer);\r\n ccsids.push(item.id);\r\n t.GM.setGraphic(item.id, circle)\r\n .setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source\r\n });\r\n });\r\n //添加绘制点\r\n if (type) {\r\n t.state.drawIds = {\r\n ...t.state.drawIds,\r\n [type]: ccsids\r\n }\r\n } else {\r\n t.state.circleIds = ccsids;\r\n }\r\n }\r\n //更新圆\r\n updateCircle(mapCircles) {\r\n let t = this;\r\n mapCircles.map((item, index) => {\r\n //判断图元是否存在.\r\n if (t.GM.isRepetition(item.id)) {\r\n //圆 点位数据不符合,直接跳过\r\n if (!item.longitude || !item.latitude) {\r\n console.warn(`圆 经纬度 数据错误`);\r\n return false;\r\n }\r\n } else {\r\n console.warn(`更新的圆id不存在!`);\r\n return false;\r\n }\r\n //获取原有的图元\r\n let gc = t.GM.getGraphic(item.id);\r\n let gp = t.GM.getGraphicParam(item.id);\r\n //获取原有的面属性,转换key值\r\n let cg = {\r\n lineType: 'solid',\r\n lineWidth: 5,\r\n lineColor: '#277ffa',\r\n lineOpacity: 1,\r\n color: '#fff',\r\n pellucidity: 0.5\r\n // isHidden: false //后期需要在加\r\n }\r\n if (item.config) {\r\n cg = { ...cg, ...item.config };\r\n }\r\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\r\n let circleRadius = item.radius / metersPerUnit;\r\n gc.setGeometry(new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)));\r\n gc.setStyle(new ol.style.Style({\r\n stroke: new ol.style.Stroke({\r\n color: cg.lineColor,\r\n width: cg.lineWidth,\r\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\r\n }),\r\n fill: new ol.style.Fill({\r\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\r\n }),\r\n }))\r\n t.GM.setGraphicParam(item.id, {\r\n attributes: { ...item, other: item },\r\n geometryType: 'circle',\r\n geometry: {\r\n type: 'circle',\r\n x: parseFloat(item.longitude),\r\n y: parseFloat(item.latitude),\r\n radius: parseFloat(item.radius)\r\n },\r\n source: gp.source,\r\n });\r\n });\r\n //刷新图元\r\n }\r\n // 工具方法\r\n //删除图元\r\n removeGraphic(id, type) {\r\n let t = this;\r\n let graphic = t.GM.getGraphic(id);\r\n let gp = t.GM.getGraphicParam(id);\r\n //刪除label\r\n if (t.Label[id]) {\r\n t.Label[id].html.remove();\r\n delete t.Label[id];\r\n }\r\n if (!!graphic) {\r\n //清除聚合点 避免异常\r\n // t._cluster.removeMarker(this.GM.getGraphic(id));\r\n //清除地图中图元\r\n // const layers = t.state.gis.getLayers().getArray();\r\n // const layer = layers.filter(item => item.getProperties().name == type)[0];\r\n gp.source.removeFeature(graphic);\r\n // layer && layer.getSource().removeFeature(graphic);\r\n //清除对应id的图元数据缓存\r\n t.GM.removeGraphic(id);\r\n t.GM.removeGraphicParam(id);\r\n if(t.state.gis.getOverlayById(id)){\r\n t.state.gis.removeOverlay(t.state.gis.getOverlayById(id))\r\n }\r\n } else {\r\n return false;\r\n }\r\n for (let i = 0; i < t.movePoints.length; i++) {\r\n if (t.movePoints[i].id == id) {\r\n t.movePoints.splice(i, 1);\r\n continue;\r\n }\r\n }\r\n let ids = [];\r\n switch (type) {\r\n case 'point':\r\n ids = t.state.pointIds;\r\n break;\r\n case 'line':\r\n ids = t.state.lineIds;\r\n break;\r\n case 'polygon':\r\n ids = t.state.polygonIds;\r\n break;\r\n case 'circle':\r\n ids = t.state.circleIds;\r\n break;\r\n case 'draw':\r\n if (t.state.drawIds.point.indexOf(id) > -1) {\r\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.polyline.indexOf(id) > -1) {\r\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.polygon.indexOf(id) > -1) {\r\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.circle.indexOf(id) > -1) {\r\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id), 1);\r\n }\r\n if (t.state.drawIds.rectangle.indexOf(id) > -1) {\r\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id), 1);\r\n }\r\n break;\r\n default:\r\n if (t.state.pointIds.indexOf(id) > -1) {\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id), 1);\r\n }\r\n if (t.state.lineIds.indexOf(id) > -1) {\r\n t.state.lineIds.splice(t.state.lineIds.indexOf(id), 1);\r\n }\r\n if (t.state.polygonIds.indexOf(id) > -1) {\r\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id), 1);\r\n }\r\n if (t.state.circleIds.indexOf(id) > -1) {\r\n t.state.circleIds.splice(t.state.circleIds.indexOf(id), 1);\r\n }\r\n break;\r\n }\r\n if (id == t.state.editId) {\r\n t.state.editId = '';\r\n }\r\n if (ids.indexOf(id) != -1) {\r\n ids.splice(ids.indexOf(id), 1);\r\n }\r\n }\r\n //清空地图\r\n clearAll() {\r\n let t = this;\r\n const { gis } = t.state;\r\n const layers = gis.getLayers();\r\n //清空热力图\r\n if (t.heatmap) {\r\n let hMap = layers.filter(item => item.name == 'heatMap')[0];\r\n hMap.getSource().clear();\r\n gis.removeLayer(layer);\r\n }\r\n t.heatmap = null;\r\n t.movePoints = [];\r\n\r\n t.state.pointIds = [];\r\n t.pointLayers.map(item => {\r\n gis.removeLayer(item.layer)\r\n t.pointLayers = [];\r\n })\r\n\r\n t.clearAllPointCollection();\r\n t.closeDraw();\r\n if(t.clusterInfo.clusterHulls || t.clusterInfo.clusters || t.clusterInfo.clusterCircles){\r\n t.clusterHulls.getSource().clear();\r\n t.clusterInfo.clusterSource = null;\r\n gis.removeLayer(t.clusterInfo.clusterHulls);\r\n gis.removeLayer(t.clusterInfo.clusters);\r\n gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterHulls= null;\r\n t.clusterInfo.clusters = null;\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n //清空缓存数据\r\n t.GM.clearAll();\r\n //循环所有id删除\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n //拷贝数组,避免原数组操作,影响循环\r\n let ps = [...pointIds],\r\n ls = [...lineIds],\r\n pgs = [...polygonIds],\r\n cs = [...circleIds];\r\n // 删除点\r\n for (let i = 0; i < ps.length; i++) {\r\n t.removeGraphic(ps[i], 'point');\r\n }\r\n // 删除线\r\n for (let i = 0; i < ls.length; i++) {\r\n t.removeGraphic(ls[i], 'line');\r\n }\r\n // 删除面\r\n for (let i = 0; i < pgs.length; i++) {\r\n t.removeGraphic(pgs[i], 'polygon');\r\n }\r\n // 删除圆\r\n for (let i = 0; i < cs.length; i++) {\r\n t.removeGraphic(cs[i], 'circle');\r\n }\r\n //删除绘制的点\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n for (let i = 0; i < point.length; i++) {\r\n t.removeGraphic(point[i]);\r\n }\r\n for (let i = 0; i < polyline.length; i++) {\r\n t.removeGraphic(polyline[i]);\r\n }\r\n for (let i = 0; i < polygon.length; i++) {\r\n t.removeGraphic(polygon[i]);\r\n }\r\n for (let i = 0; i < circle.length; i++) {\r\n t.removeGraphic(circle[i]);\r\n }\r\n for (let i = 0; i < rectangle.length; i++) {\r\n t.removeGraphic(rectangle[i]);\r\n }\r\n }\r\n //展示比例尺\r\n showControl(props) {\r\n let t = this;\r\n const { gis } = t.state;\r\n const config = props.showControl ;\r\n if (t.scaleControl) {\r\n gis.removeControl(t.scaleControl);\r\n }\r\n t.scaleControl = new ol.control.ScaleLine({\r\n units: 'metric',\r\n //设置度量单位\r\n className: `ol-scale-line-${config.location}`\r\n });\r\n gis.addControl(t.scaleControl);\r\n setTimeout(function (){\r\n if(config.location == 'tl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'bl'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n left: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'tr'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n top: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }else if(config.location == 'br'){\r\n $(`div.ol-scale-line-${config.location}`).css({\r\n position: 'absolute',\r\n right: config.offset?config.offset[0]:0+65,\r\n bottom: config.offset?config.offset[1]:0,\r\n textAlign: 'center',\r\n })\r\n }\r\n }, 20)\r\n }\r\n //设置区域限制\r\n setAreaRestriction(areaRestriction) {\r\n let t = this;\r\n let { _extent: _et } = t.dealData(areaRestriction);\r\n t.areaRestriction = t.state.gis.getView().setProperties({\r\n extent: [_et.xmax, _et.ymax, _et.xmin, _et.ymin],\r\n }, false);\r\n }\r\n //关闭区域限制\r\n clearAreaRestriction() {\r\n let t = this;\r\n t.areaRestriction = null;\r\n }\r\n //区域限制逻辑\r\n dealAreaRestriction(e) {\r\n let t = this;\r\n //如果在区域内,不处理\r\n if (t.areaRestriction.contains(e.extent.getCenter())) {\r\n return;\r\n }\r\n // if(t.containsExtent(t.areaRestriction,e.extent)){\r\n // return;\r\n // }\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = t.areaRestriction;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e.extent;\r\n let x = e.extent.getCenter().x,\r\n y = e.extent.getCenter().y;\r\n if (x < xmin1) x = xmin1 + 0.1;\r\n if (x > xmax1) x = xmax1 - 0.1;\r\n if (y < ymin1) y = ymin1 + 0.1;\r\n if (y > ymax1) y = ymax1 - 0.1;\r\n t.state.gis.getView().setCenter([x, y]);\r\n }\r\n //聚合地图图元(arg为空时聚合全部点)\r\n cluster(arg){\r\n let t = this;\r\n let ary = [];\r\n if(!arg){\r\n let {pointIds} = t.state;\r\n ary = pointIds;\r\n }else{\r\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\r\n ary = arg;\r\n }else if(typeof arg === 'string'){\r\n ary = arg.split(',');\r\n }\r\n }\r\n t.pointLayers.map(item => {\r\n t.state.gis.removeLayer(item.layer);\r\n t.pointLayers=[];\r\n })\r\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\r\n // return !item && item != 0 ? false : true;\r\n return item && item.getGeometry().getType() === 'Point' && !item.label;\r\n });\r\n const source = new ol.source.Vector({\r\n features: ms\r\n })\r\n t.clusterInfo.clusterSource = new ol.source.Cluster({\r\n distance: 80,\r\n minDistance: 0,\r\n source\r\n });\r\n if (t.clusterInfo.clusterHulls) {\r\n t.clusterInfo.clusterHulls.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusterHulls = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterHullStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterHulls);\r\n }\r\n \r\n if (t.clusterInfo.clusters) {\r\n t.clusterInfo.clusters.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusters = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusters);\r\n }\r\n if (t.clusterInfo.clusterCircles) {\r\n t.clusterInfo.clusterCircles.setSource(t.clusterInfo.clusterSource)\r\n } else {\r\n t.clusterInfo.clusterCircles = new ol.layer.Vector({\r\n source: t.clusterInfo.clusterSource,\r\n style: clusterCircleStyle,\r\n zIndex: t.polygonLayerZIndex\r\n });\r\n t.state.gis.addLayer(t.clusterInfo.clusterCircles);\r\n }\r\n\r\n \r\n function clusterMemberStyle(clusterMember) {\r\n let style = clusterMember.getStyle();\r\n let image = style&&style.getImage ? style.getImage() : null;\r\n let text = style&&style.getText ? style.getText() : null;\r\n return new ol.style.Style({\r\n image: image,\r\n text: text\r\n });\r\n }\r\n function clusterCircleStyle(cluster, resolution) {\r\n if (cluster !== t.clusterInfo.clickFeature || resolution !== t.clusterInfo.clickResolution) {\r\n return;\r\n }\r\n const clusterMembers = cluster.get('features');\r\n const centerCoordinates = cluster.getGeometry().getCoordinates();\r\n return generatePointsCircle(\r\n clusterMembers.length,\r\n cluster.getGeometry().getCoordinates(),\r\n resolution,\r\n ).reduce((styles, coordinates, i) => {\r\n const point = new ol.geom.Point(coordinates);\r\n const line = new ol.geom.LineString([centerCoordinates, coordinates]);\r\n styles.unshift(\r\n new ol.style.Style({\r\n geometry: line,\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(204, 85, 0, 1)',\r\n width: 1.5,\r\n }),\r\n }),\r\n );\r\n styles.push(\r\n clusterMemberStyle(\r\n new ol.Feature({\r\n ...clusterMembers[i].getProperties(),\r\n geometry: point,\r\n }),\r\n ),\r\n );\r\n return styles;\r\n }, []);\r\n }\r\n function generatePointsCircle(count, clusterCenter, resolution) {\r\n const circumference = 1 * 28 * (2 + count);\r\n let legLength = circumference / (Math.PI * 2); //radius from circumference\r\n const angleStep = (Math.PI * 2) / count;\r\n const res = [];\r\n let angle;\r\n legLength = Math.max(legLength, 35) * resolution; // Minimum distance to get outside the cluster icon.\r\n for (let i = 0; i < count; ++i) {\r\n // Clockwise, like spiral.\r\n angle = Math.PI / 2 + i * angleStep;\r\n res.push([\r\n clusterCenter[0] + legLength * Math.cos(angle),\r\n clusterCenter[1] + legLength * Math.sin(angle),\r\n ]);\r\n }\r\n return res;\r\n }\r\n function clusterHullStyle(cluster) {\r\n if (cluster !== t.clusterInfo.hoverFeature) {\r\n return;\r\n }\r\n const originalFeatures = cluster.get('features');\r\n const points = originalFeatures.map(feature => feature.getGeometry().getCoordinates());\r\n return new ol.style.Style({\r\n geometry: new ol.geom.Polygon(points),\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 153, 0, 0.4)',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(204, 85, 0, 1)',\r\n width: 1.5,\r\n }),\r\n });\r\n }\r\n function clusterStyle(feature) {\r\n const size = feature.get('features').length;\r\n if (size > 2) {\r\n return [\r\n new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: 20,\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 153, 102, 0.3)',\r\n }),\r\n }),\r\n }),\r\n new ol.style.Style({\r\n image: new ol.style.Circle({\r\n radius: 14,\r\n fill: new ol.style.Fill({\r\n color: 'rgba(255, 165, 0, 0.7)',\r\n }),\r\n }),\r\n text: new ol.style.Text({\r\n text: size.toString(),\r\n fill: new ol.style.Fill({\r\n color: '#fff',\r\n }),\r\n stroke: new ol.style.Stroke({\r\n color: 'rgba(0, 0, 0, 0.6)',\r\n width: 3,\r\n }),\r\n }),\r\n }),\r\n ];\r\n } else {\r\n return feature.get('features').map(originalFeature => clusterMemberStyle(originalFeature))\r\n }\r\n }\r\n }\r\n clearCluster(arg){\r\n const t = this;\r\n let ids = (arg && arg?.length>0) ? arg : t.state.pointIds;\r\n if(t.clusterInfo.clusterHulls){\r\n t.state.gis.removeLayer(t.clusterInfo.clusterHulls);\r\n t.clusterInfo.clusterHulls = null;\r\n }\r\n if(t.clusterInfo.clusters){\r\n t.state.gis.removeLayer(t.clusterInfo.clusters);\r\n t.clusterInfo.clusters = null;\r\n }\r\n if(t.clusterInfo.clusterCircles){\r\n t.state.gis.removeLayer(t.clusterInfo.clusterCircles);\r\n t.clusterInfo.clusterCircles = null;\r\n }\r\n ids.map(id=>{\r\n if(t.GM.getGraphic(id)){\r\n t.GM.removeGraphic(id);\r\n }\r\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1)\r\n })\r\n t.addPoint(t.props.mapPoints)\r\n t.refresh();\r\n }\r\n /*公共方法*/\r\n //判断extent1是否在extent2内部\r\n containsExtent(e1, e2) {\r\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = e1;\r\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e2;\r\n return xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1;\r\n }\r\n //将图元z-index设置成最高\r\n czIndex(id) {\r\n let t = this;\r\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\r\n }\r\n equalsPoint(a, b) {\r\n return a.x == b.x && a.y == b.y;\r\n }\r\n //计算2点间距离 单位m 精确到2位小数\r\n calculatePointsDistance(fp, ep) {\r\n let distance = ol.sphere.getDistance(fp, ep);\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(t.projectToWGS84(ps[i]), t.projectToWGS84(ps[i + 1]))\r\n totalDistance += distance;\r\n }\r\n }\r\n return Math.round(totalDistance * 100) / 100;\r\n }\r\n //处理线和面的 经纬度数据\r\n dealData(paths) {\r\n //区别点和圆的经纬度数据处理\r\n let lnglatAry = [],\r\n _extent = { xmax: 0, xmin: 0, ymax: 0, ymin: 0 },\r\n path = [];\r\n path = paths.map((item, index) => {\r\n let lng = item[0],\r\n lat = item[1];\r\n if (lng > _extent.xmax) {\r\n _extent.xmax = lng;\r\n }\r\n if (lng < _extent.xmin || _extent.xmin == 0) {\r\n _extent.xmin = lng;\r\n }\r\n if (lat > _extent.ymax) {\r\n _extent.ymax = lat;\r\n }\r\n if (lat < _extent.ymin || _extent.ymin == 0) {\r\n _extent.ymin = lat;\r\n }\r\n lnglatAry.push({\r\n lngX: lng,\r\n latX: lat,\r\n });\r\n return [lng, lat];\r\n });\r\n return { lnglatAry, _extent, path };\r\n }\r\n //处理点位图元的添加 和 更新\r\n dealLabelGraphics(id, label) {\r\n let t = this;\r\n if (label) {\r\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\r\n //经纬度转top和left\r\n let tl = t.state.gis.toScreen(position),\r\n lbl = { ...label };\r\n //渲染優化\r\n if (\r\n !(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)\r\n ) {\r\n //设置label的位置(通过定位来实现)\r\n label.html.css({\r\n position: 'absolute',\r\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\r\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x,\r\n });\r\n //添加点位到(地图)\r\n $(`#${t.htmlPointsId}`).append(label.html);\r\n lbl.add = true;\r\n } else {\r\n lbl.add = false;\r\n }\r\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\r\n t.Label[id] = lbl;\r\n }\r\n }\r\n //点的跳动动画\r\n pointAnimation(id, marker) {\r\n let t = this;\r\n //null时关闭跳动\r\n if (!!marker) {\r\n if (t.animTimer[id]) {\r\n clearInterval(t.animTimer[id]);\r\n }\r\n t.animTimer[id] = setInterval(() => {\r\n //点被隐藏时,没有执行,定时不关\r\n if (marker.symbol) {\r\n let shape = { ...marker.symbol };\r\n //初始数据 点位有变动,重新刷新数据\r\n if (!t.animCount[id] || shape.yoffset != t.animCount[id].now) {\r\n t.animCount[id] = {\r\n start: shape.yoffset,\r\n now: shape.yoffset,\r\n notation: -1,\r\n };\r\n }\r\n if (t.animCount[id].now - t.animCount[id].start == 20) {\r\n t.animCount[id].notation = -1;\r\n }\r\n if (t.animCount[id].now - t.animCount[id].start == 0) {\r\n t.animCount[id].notation = 1;\r\n }\r\n shape.yoffset = t.animCount[id].now =\r\n t.animCount[id].now + t.animCount[id].notation * 2;\r\n marker.symbol.setOffset(shape.xoffset, shape.yoffset);\r\n t.state.gis.graphics.refresh();\r\n }\r\n }, 35);\r\n } else {\r\n clearInterval(t.animTimer[id]);\r\n }\r\n }\r\n moveAnimation() {\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n t.moveToTimer = setInterval(() => {\r\n for (let i = 0; i < t.movePoints.length; i++) {\r\n t.movePoints[i].waitTime += 10;\r\n t.movePoints[i].deleteTime -= 10;\r\n }\r\n t.movePoints.sort((x, y) => {\r\n return y.waitTime - x.waitTime;\r\n });\r\n let nowMovePoints = t.movePoints.slice(0, 10),\r\n deleteIndex = [];\r\n for (let i = 0; i < nowMovePoints.length; i++) {\r\n let { id, rx, ry, waitTime, deleteTime, ddeg } = nowMovePoints[i];\r\n let gc = t.GM.getGraphic(id);\r\n if (!gc || !gc._graphicsLayer) {\r\n clearInterval(t.moveToTimer);\r\n } else {\r\n let gg = gc.getGeometry();\r\n let tx = gg[0] + rx, ty = gg[1] + ry;\r\n gc.setGeometry([tx, ty])\r\n t.movePoints[i].waitTime = 0;\r\n if (deleteTime <= 0) {\r\n deleteIndex.push(i);\r\n }\r\n }\r\n }\r\n deleteIndex.sort((a, b) => { return b - a });\r\n for (let i = 0; i < deleteIndex.length; i++) {\r\n t.movePoints.splice(deleteIndex[i], 1);\r\n }\r\n if (nowMovePoints.length == 0) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n }, 10);\r\n }\r\n //点位移动动画效果\r\n moveTo(id, lnglat, delay, autoRotation, urlright, urlleft) {\r\n delay = delay || 3;\r\n let t = this,\r\n timer = 10;\r\n delay = eval(delay) * 1000;\r\n let count = delay / timer,\r\n gc = this.GM.getGraphic(id);\r\n let s = gc.geometry,\r\n e = { x: lnglat[0], y: lnglat[1] };\r\n if (t.equalsPoint(s, e)) {\r\n return false;\r\n } else {\r\n let ddeg = 0,\r\n url = null;\r\n //计算角度,旋转\r\n if (autoRotation) {\r\n //自己实现旋转\r\n ddeg = t.rotateDeg(gc.geometry, lnglat);\r\n if (urlleft && ddeg < -90 && ddeg > -270) {\r\n ddeg += 180;\r\n url = urlleft;\r\n } else {\r\n url = urlright;\r\n }\r\n gc.setStyle(new ol.style.Style({\r\n image: new ol.style.Icon({\r\n src: url,\r\n rotation: Math.PI / 180 * ddeg,\r\n })\r\n }))\r\n }\r\n //拆分延迟移动定位\r\n let rx = (e.x - s.x) / count,\r\n ry = (e.y - s.y) / count;\r\n let isHave = false;\r\n for (let i = 0; i < t.movePoints.length; i++) {\r\n if (t.movePoints[i].id == id) {\r\n t.movePoints.splice(i, 1, {\r\n id,\r\n rx,\r\n ry,\r\n waitTime: 0,\r\n deleteTime: delay,\r\n });\r\n isHave = true;\r\n }\r\n }\r\n if (!isHave) {\r\n t.movePoints.push({\r\n id,\r\n rx,\r\n ry,\r\n waitTime: 0,\r\n deleteTime: delay,\r\n });\r\n }\r\n }\r\n }\r\n //点位角度旋转(以指向东(右)为0°)\r\n rotateDeg(sp, ep) {\r\n let t = this;\r\n let spLngLat = sp;\r\n if (Array.isArray(sp)) {\r\n spLngLat = new ol.geom.Point(sp[0], sp[1]);\r\n }\r\n let s = t.state.gis.getPixelFromCoordinate(spLngLat),\r\n //获取当前点位的经纬度\r\n e = t.state.gis.getPixelFromCoordinate(new ol.geom.Point(ep[0], ep[1])),\r\n deg = 0;\r\n if (e.x != s.x) {\r\n var tan = (e.y - s.y) / (e.x - s.x),\r\n atan = Math.atan(tan);\r\n deg = (atan * 360) / (2 * Math.PI);\r\n //degree correction;\r\n if (e.x < s.x) {\r\n deg = -deg + 90 + 90;\r\n } else {\r\n deg = -deg;\r\n }\r\n deg = -deg;\r\n } else {\r\n var disy = e.y - s.y;\r\n var bias = 0;\r\n if (disy > 0) bias = -1;\r\n else bias = 1;\r\n if (disy == 0) bias = 0;\r\n deg = -bias * 90;\r\n }\r\n return deg;\r\n }\r\n //对比对象数据是否相等\r\n deepEqual(a, b) {\r\n return Immutable.is(Immutable.fromJS(a), Immutable.fromJS(b));\r\n }\r\n //数据解析(分析,新增,更新,删除对应的数据)\r\n dataMatch(oldData, newData, type) {\r\n let onlyOldData = Set(oldData)\r\n .subtract(Set(newData))\r\n .toJS();\r\n let onlyNewData = Set(newData)\r\n .subtract(Set(oldData))\r\n .toJS();\r\n let onlyOldIDs = onlyOldData.map(item => item[type]);\r\n let onlyNewIDs = onlyNewData.map(item => item[type]);\r\n let updateDataIDs = Set(onlyOldIDs)\r\n .intersect(Set(onlyNewIDs))\r\n .toJS();\r\n let updatedData = onlyNewData.filter(item => updateDataIDs.indexOf(item[type]) > -1);\r\n let replacedData = onlyOldData.filter(item => updateDataIDs.indexOf(item[type]) > -1);\r\n let deletedDataIDs = onlyOldIDs.filter(oldID => updateDataIDs.indexOf(oldID) == -1);\r\n let addedData = onlyNewData.filter(item => updateDataIDs.indexOf(item[type]) == -1);\r\n\r\n return { deletedDataIDs, addedData, updatedData, replacedData };\r\n }\r\n //处理需要增加图元的数据(避免意外问题)\r\n dealAdd(ary, ids) {\r\n let ads = [],\r\n otherupds = [];\r\n for (let i = 0; i < ary.length; i++) {\r\n if (ids.indexOf(ary[i].id) > -1) {\r\n otherupds.push(ary[i]);\r\n } else {\r\n ads.push(ary[i]);\r\n }\r\n }\r\n return { ads, otherupds };\r\n }\r\n //处理需要更新图元的数据(避免意外问题)\r\n dealUpdate(ary, ids) {\r\n let upds = [],\r\n otherads = [];\r\n for (let i = 0; i < ary.length; i++) {\r\n if (ids.indexOf(ary[i].id) > -1) {\r\n upds.push(ary[i]);\r\n } else {\r\n otherads.push(ary[i]);\r\n }\r\n }\r\n return { upds, otherads };\r\n }\r\n\r\n render() {\r\n let t = this;\r\n let _map = this.props;\r\n return <div id={_map.mapId} style={{ width: '100%', height: '100%' }}></div>;\r\n }\r\n //初始化\r\n componentDidMount() {\r\n let t = this;\r\n t.loadMapComplete.then(() => {\r\n t.init();\r\n });\r\n }\r\n //已加载组件,收到新的参数时调用\r\n UNSAFE_componentWillReceiveProps(nextProps, prevProps) {\r\n let t = this;\r\n //点/线旧数据\r\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\r\n let { point, polyline, polygon, circle, rectangle } = drawIds;\r\n //点/线新数据\r\n let {\r\n mapPoints = [], mapLines = [], mapPolygons = [], mapCircles = [], customizedBoundary = [],\r\n isOpenTrafficInfo, boundaryName, heatMapData,\r\n mapVisiblePoints, setVisiblePoints,\r\n setCenter, mapCenter,\r\n setZoomLevel, mapZoomLevel,\r\n setCluster, mapCluster,\r\n isRangingTool, mapRangingTool,\r\n isRemove, mapRemove,\r\n mapDraw, isDraw, isCloseDraw,\r\n editGraphicId, isDoEdit, isEndEdit,\r\n mapPointCollection, isclearAllPointCollection,\r\n isSetAreaRestriction, areaRestriction, isClearAreaRestriction,\r\n isClearAll, olProps, pointsFeature=[]\r\n } = nextProps;\r\n // 等待地图加载\r\n if (!t.mapCreated) return;\r\n /*点数据处理\r\n pointData[2]相同的点,执行刷新\r\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\r\n pointData[0]数据中多余的id,执行删除\r\n */\r\n if (pointsFeature instanceof Array && !t.deepEqual(pointsFeature, t.props.pointsFeature)){\r\n t.addPointLayer(pointsFeature);\r\n }\r\n if (mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints, t.props.mapPoints)) {\r\n let oldMapPoints = t.props.mapPoints;\r\n let newMapPoints = mapPoints;\r\n //过滤编辑的图元\r\n if (!!t.editId) {\r\n oldMapPoints = t.props.mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n newMapPoints = mapPoints.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPoints, newMapPoints, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...pointIds, ...point]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...pointIds, ...point]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n let index = 0;\r\n const removeGraphic = (id) => {\r\n t.removeGraphic(id, 'point');\r\n if (index < deletedDataIDs.length -1) {\r\n requestIdleCallback(() => removeGraphic(deletedDataIDs[++index]))\r\n }\r\n }\r\n if (!isEmpty(deletedDataIDs)) {\r\n removeGraphic(deletedDataIDs[index])\r\n }\r\n //增加\r\n t.addPoint([...ads, ...otherads]);\r\n //更新\r\n t.updatePoint([...upds, ...otherupds]);\r\n }\r\n /*\r\n 线数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines, t.props.mapLines)) {\r\n let oldMapLines = t.props.mapLines;\r\n let newMapLines = mapLines;\r\n if (!!t.editId) {\r\n oldMapLines = t.props.mapLines.filter((item) => { return item.id !== editGraphicId });\r\n newMapLines = mapLines.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapLines, newMapLines, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...lineIds, ...polyline]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...lineIds, ...polyline]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'line');\r\n }\r\n //增加\r\n t.addLine([...ads, ...otherads]);\r\n //更新\r\n t.updateLine([...upds, ...otherupds]);\r\n }\r\n /*\r\n 面数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons, t.props.mapPolygons)) {\r\n let oldMapPolygons = t.props.mapPolygons;\r\n let newMapPolygons = mapPolygons;\r\n if (!!t.editId) {\r\n oldMapPolygons = t.props.mapPolygons.filter((item) => { return item.id !== editGraphicId });\r\n newMapPolygons = mapPolygons.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPolygons, newMapPolygons, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...rectangle, ...polygon, ...polygonIds]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...rectangle, ...polygon, ...polygonIds]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'polygon');\r\n }\r\n //增加\r\n t.addPolygon([...ads, ...otherads]);\r\n //更新\r\n t.updatePolygon([...upds, ...otherupds]);\r\n }\r\n /*\r\n 圆数据处理\r\n 先全删除,再新增\r\n */\r\n if (mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles, t.props.mapCircles)) {\r\n let oldMapCircles = t.props.mapCircles;\r\n let newMapCircles = mapCircles;\r\n if (!!t.editId) {\r\n oldMapCircles = t.props.mapCircles.filter((item) => { return item.id !== editGraphicId });\r\n newMapCircles = mapCircles.filter((item) => { return item.id !== editGraphicId });\r\n }\r\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapCircles, newMapCircles, 'id');\r\n let { ads, otherupds } = t.dealAdd(addedData, [...circleIds, ...circle]);\r\n let { upds, otherads } = t.dealUpdate(updatedData, [...circleIds, ...circle]);\r\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\r\n for (let id of deletedDataIDs) {\r\n t.removeGraphic(id, 'circle');\r\n }\r\n //增加\r\n t.addCircle([...ads, ...otherads]);\r\n //更新\r\n t.updateCircle([...upds, ...otherupds]);\r\n }\r\n //图元编辑调用\r\n if ((typeof (isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)) {\r\n t.doEdit(editGraphicId);\r\n }\r\n // 获取热力图\r\n if (heatMapData && heatMapData.data && !t.deepEqual(heatMapData, t.props.heatMapData)) {\r\n t.heatMapOverlay(heatMapData);\r\n }else if(!t.deepEqual(heatMapData, t.props.heatMapData)){\r\n t.clearHeatMap(heatMapData);\r\n }\r\n //清空地图\r\n if ((typeof (isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)) {\r\n t.clearAll();\r\n }\r\n //测距工具调用\r\n if ((typeof (isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)) {\r\n t.vtxRangingTool(mapRangingTool);\r\n }\r\n /*设置指定图元展示*/\r\n if ((typeof (setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)) {\r\n t.setVisiblePoints(mapVisiblePoints);\r\n }\r\n //设置中心点\r\n // if ((typeof (setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)) {\r\n // if (!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])) {\r\n // t.setCenter(mapCenter);\r\n // }\r\n // }\r\n if(setCenter && nextProps.mapCenter &&nextProps.mapCenter.length>0){\r\n t.setCenter(mapCenter);\r\n }\r\n //设置点聚合\r\n if ((typeof (setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)) {\r\n t.cluster(mapCluster);\r\n }\r\n\r\n if(!setCluster && setCluster !== t.props.setCluster){\r\n t.clearCluster(mapCluster);\r\n }\r\n //图元编辑调用\r\n if ((typeof (isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)) {\r\n t.doEdit(editGraphicId);\r\n }\r\n //关闭图元编辑\r\n if ((typeof (isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)) {\r\n t.endEdit();\r\n }\r\n //绘制图元\r\n if ((typeof (isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)) {\r\n t.draw(mapDraw);\r\n }\r\n //关闭绘制\r\n if ((typeof (isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)) {\r\n t.closeDraw();\r\n }\r\n //单独删除操作\r\n if ((typeof (isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)) {\r\n mapRemove.map((item, index) => {\r\n t.removeGraphic(item.id, item.type);\r\n });\r\n }\r\n //设置区域限制\r\n if ((typeof (isSetAreaRestriction) == 'boolean' && isSetAreaRestriction)\r\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction)\r\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\r\n t.setAreaRestriction(areaRestriction);\r\n }\r\n //关闭区域限制\r\n if ((typeof (isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)) {\r\n t.clearAreaRestriction();\r\n }\r\n // 设置地图层级\r\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\r\n t.setZoomLevel(mapZoomLevel);\r\n }\r\n // 比例尺控件位置改变\r\n if(nextProps.showControl && JSON.stringify(nextProps.showControl)!=JSON.stringify(t.props.showControl)){\r\n t.showControl(nextProps);\r\n }\r\n // 更新需要加载的图层\r\n if(nextProps.olProps && JSON.stringify(nextProps.olProps) !== JSON.stringify(t.props.olProps)) {\r\n t.loadLayers(nextProps.olProps.olCoverage, t.props.olProps.olCoverage);\r\n }\r\n }\r\n // 地图事件\r\n //地图点击事件\r\n clickMap(e) {\r\n let t = this;\r\n if (typeof t.props.clickMap === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n obj.clickLngLat = {\r\n lng: e.coordinate ? e.coordinate[0] : undefined,\r\n lat: e.coordinate ? e.coordinate[1] : undefined,\r\n };\r\n obj.pixel = {\r\n x: e.pixel ? e.pixel[0] : undefined,\r\n y: e.pixel ? e.pixel[1] : undefined,\r\n };\r\n let temp = [];\r\n t.olLayers.map(item=>{\r\n if(item.layer){\r\n temp.push(t.getFeatureInfo(e,t.state.gis.getView(),item.layer.getSource()));\r\n }\r\n })\r\n if(temp.length){\r\n obj.features = temp;\r\n }\r\n t.props.clickMap(obj);\r\n }\r\n }\r\n // 获取geoServer要素\r\n getFeatureInfo(event, view, source) {\r\n let sourceParam = source.getParams();\r\n let url = source.getFeatureInfoUrl(event.coordinate, view.getResolution(), view.getProjection(), {\r\n cql_filter: sourceParam?.cql_filter,\r\n QUERY_LAYERS: sourceParam?.layers,\r\n INFO_FORMAT: 'application/json',\r\n REQUEST: \"GetFeatureInfo\",\r\n FEATURE_COUNT: 50,\r\n });\r\n let {param, address} = this.formatUrl(url);\r\n // let temp = param.BBOX.split(\",\");\r\n // let BBOX = [temp[1],temp[0],temp[3],temp[2]].join(\",\");\r\n // param.BBOX = BBOX;\r\n param.QUERY_LAYERS = param.LAYERS;\r\n let temp=[];\r\n for(let key in param){\r\n temp.push(`${key}=${param[key]}`);\r\n }\r\n address += `?${temp.join(\"&\")}`;\r\n const geoJsonFormat = new ol.format.GeoJSON();\r\n return fetch(address)\r\n .then(res => res.json())\r\n .then(data => {\r\n let features = [];\r\n if (data?.features?.length) {\r\n features = geoJsonFormat.readFeatures(data);\r\n features.map(item => {\r\n item.key = this?.key;\r\n });\r\n }\r\n return features;\r\n })\r\n .catch(() => {\r\n return [];\r\n });\r\n }\r\n // 要素鼠标悬浮事件\r\n mouseOverGraphic(id, e) {\r\n let t = this;\r\n if (t.state.editId == id) return false;\r\n if (typeof t.props.mouseOverGraphic === 'function') {\r\n let obj = {\r\n e,\r\n id,\r\n param: t.getGraphic(id),\r\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\r\n left: e.pixel ? e.pixel[1] : undefined,\r\n };\r\n t.props.mouseOverGraphic(obj);\r\n }\r\n }\r\n // 要素鼠标移开事件\r\n mouseOutGraphic(id, e) {\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if (t.state.editId == id) return false;\r\n if (typeof t.props.mouseOutGraphic === 'function') {\r\n let obj = {\r\n e,\r\n id,\r\n param: t.getGraphic(id),\r\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\r\n left: e.pixel ? e.pixel[1] : undefined,\r\n };\r\n t.props.mouseOutGraphic(obj);\r\n }\r\n }\r\n //地图拖动之前事件\r\n dragMapStart(e) {\r\n let t = this;\r\n if (typeof t.props.dragMapStart === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapStart(obj);\r\n }\r\n }\r\n //地图拖动结束后事件\r\n dragMapEnd(e) {\r\n let t = this;\r\n if (typeof t.props.dragMapEnd === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.dragMapEnd(obj);\r\n }\r\n }\r\n //热力图\r\n heatMapOverlay(d = {}) {\r\n let t = this;\r\n let cg = {\r\n radius: 20,\r\n max: 100,\r\n visible: true,\r\n opacity: 0.7,\r\n gradient: ['#00f', '#0ff', '#0f0', '#ff0', '#f00'],\r\n };\r\n if (d.config) {\r\n cg = { ...cg, ...d.config };\r\n }\r\n let gradient = [];\r\n if (cg.gradient) {\r\n for (let key in cg.gradient) {\r\n gradient.push(cg.gradient[key])\r\n }\r\n cg.gradient = gradient;\r\n }\r\n // if(d.data){\r\n // t.state.pointIds = [];\r\n // t.pointLayers.map(item => {\r\n // t.state.gis.removeLayer(item.layer);\r\n // t.pointLayers=[];\r\n // })\r\n // }\r\n const heatData = {\r\n type: 'FeatureCollection',\r\n features: (d.data || []).map(item => {\r\n return {\r\n type: 'Feature',\r\n properties: {\r\n weight: item.count ? item.count / 100 : 0.5,\r\n },\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [item.lng, item.lat],\r\n }\r\n }\r\n })\r\n }\r\n let heatSource = new ol.source.Vector({\r\n features: new ol.format.GeoJSON().readFeatures(heatData)\r\n })\r\n t.heatmap = new ol.layer.Heatmap({\r\n name: 'heatmap',\r\n source: heatSource,\r\n radius: cg.radius,\r\n visible: cg.visible,\r\n blur: eval(cg.opacity) * 100,\r\n gradient: gradient,\r\n weight: (e) => {\r\n return e.getProperties().count;//根据权重展示热力图!关键点,weight范围为:0-1!!!\r\n },\r\n });\r\n t.state.gis.addLayer(t.heatmap);\r\n\r\n }\r\n clearHeatMap(){\r\n const t = this;\r\n if(t.heatmap)\r\n t.state.gis.removeLayer(t.heatmap);\r\n t.heatmap = null;\r\n t.refresh();\r\n }\r\n //地图移动之前事件\r\n moveStart(e) {\r\n let t = this;\r\n if (typeof t.props.moveStart === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveStart(obj);\r\n }\r\n }\r\n //地图移动结束后事件\r\n moveEnd(e) {\r\n let t = this;\r\n if (typeof t.props.moveEnd === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.moveEnd(obj);\r\n }\r\n }\r\n //地图更改缩放级别开始时触发触发此事件\r\n zoomStart(e) {\r\n let t = this;\r\n if (typeof (t.props.zoomStart) === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomStart(obj);\r\n }\r\n }\r\n //地图更改缩放级别结束时触发触发此事件\r\n zoomEnd(e) {\r\n let t = this;\r\n if (typeof (t.props.zoomEnd) === 'function') {\r\n let obj = t.getMapExtent();\r\n obj.e = e;\r\n t.props.zoomEnd(obj);\r\n }\r\n }\r\n // 图元点击事件\r\n clickGraphic(id, e, target = {}) {\r\n let t = this;\r\n //编辑中的图元关闭其他事件返回\r\n if (t.editId == id) return false;\r\n if (typeof t.props.clickGraphic === 'function') {\r\n const [clientX, clientY] = e.pixel;\r\n let param = t.getGraphic(id, clientX, clientY);\r\n let obj = {\r\n param,\r\n info: target,\r\n type: param ? param.geometry.type : null, //图元类型\r\n attributes: param ? { ...param.attributes.other, ...{ config: param.attributes.config } } : (e.attributes||null), //添加时图元信息\r\n top: clientY, //当前点所在的位置(屏幕)\r\n left: clientX,\r\n e: e,\r\n };\r\n t.props.clickGraphic(obj);\r\n }\r\n }\r\n // 地图重新渲染大小\r\n updateSize(){\r\n const t = this;\r\n t.state.gis.updateSize();\r\n }\r\n componentWillUnmount() {\r\n //关闭moveTo定时\r\n let t = this;\r\n if (t.moveToTimer) {\r\n clearInterval(t.moveToTimer);\r\n }\r\n //关闭animation定时\r\n for (let j in t.animTimer) {\r\n if (t.animTimer[j]) {\r\n clearInterval(t.animTimer[j]);\r\n }\r\n }\r\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\r\n }\r\n}\r\nexport default OlMap;\r\n\r\nclass Popup extends React.Component{\r\n constructor(props){\r\n super();\r\n this.map = props.map;\r\n this.position = props.position;\r\n this.overlay = null;\r\n this.container = null;\r\n this.innerHTML = props.innerHTML;\r\n this.closeble = props.close;\r\n }\r\n \r\n // 弹出框\r\n showPopup () {\r\n const t = this;\r\n this.removePopup()\r\n // 获取弹出层DOM\r\n t.container = document.createElement(\"div\");\r\n t.container['className'] = \"ol-popup\";\r\n if(t.closeble){\r\n let close = document.createElement(\"a\");\r\n close['className'] = \"ol-popup-closer\";\r\n close.addEventListener(\"click\",(e)=>{\r\n t.removePopup();\r\n })\r\n t.container.appendChild(close);\r\n }\r\n let content = document.createElement(\"div\");\r\n t.container.appendChild(content);\r\n if (t.overlay) {\r\n } else {\r\n // 创建Overlay弹出层绑定DOM\r\n t.overlay = new ol.Overlay({\r\n element: t.container,\r\n autoPan: {\r\n animation: {\r\n duration: 250\r\n }\r\n }\r\n })\r\n // 添加到map\r\n t.map.addOverlay(t.overlay)\r\n }\r\n // 弹出层内容\r\n content.innerHTML = t.innerHTML;\r\n // 设置弹出层位置即可出现\r\n t.overlay.setPosition(t.position)\r\n }\r\n // 清除弹出框\r\n removePopup () {\r\n if (this.overlay) {\r\n this.container.remove();\r\n // 设置位置undefined可达到隐藏清除弹出框\r\n this.overlay.setPosition(undefined);\r\n this.overlay = null;\r\n }\r\n }\r\n}\r\n\r\nfunction getRgbColor(color, opacity) {\r\n const reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;\r\n if (!reg.test(color) && typeof(color) !== 'string') {\r\n return;\r\n }\r\n let newStr = color.toLowerCase().replace(/\\#/g, '');\r\n let len = newStr.length;\r\n if (len == 3) {\r\n let t = '';\r\n for (var i = 0; i < len; i++) {\r\n t += newStr.slice(i, i + 1).concat(newStr.slice(i, i + 1));\r\n }\r\n newStr = t;\r\n }\r\n let arr = []; //将字符串分隔,两个两个的分隔\r\n for (var i = 0; i < 6; i = i + 2) {\r\n let s = newStr.slice(i, i + 2);\r\n arr.push(parseInt('0x' + s));\r\n }\r\n return 'rgba(' + arr.join(',') + ',' + opacity + ')';\r\n}\r\n\r\n// 压缩图片的方法\r\nfunction canvasDataURL(path, obj, callback) {\r\n var img = new Image();\r\n img.src = path;\r\n img.setAttribute(\"crossOrigin\", 'Anonymous')\r\n img.onload = function () {\r\n var that = this;\r\n // 默认按比例压缩\r\n var w = that.width,\r\n h = that.height,\r\n scale = w / h;\r\n w = obj.width || w;\r\n h = obj.height || (w / scale);\r\n var quality = 0.7; // 默认图片质量为0.7\r\n //生成canvas\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n // 创建属性节点\r\n var anw = document.createAttribute(\"width\");\r\n anw.nodeValue = w;\r\n var anh = document.createAttribute(\"height\");\r\n anh.nodeValue = h;\r\n canvas.setAttributeNode(anw);\r\n canvas.setAttributeNode(anh);\r\n ctx.drawImage(that, 0, 0, w, h);\r\n // 图像质量\r\n if (obj.quality && obj.quality <= 1 && obj.quality > 0) {\r\n quality = obj.quality;\r\n }\r\n // quality值越小,所绘制出的图像越模糊\r\n var base64 = canvas.toDataURL('image/png', quality);\r\n // 回调函数返回base64的值\r\n callback(base64);\r\n }\r\n}\r\n\r\nclass ImgCache{\r\n constructor(props){\r\n this.imgs = {};\r\n }\r\n\r\n set(key, value){\r\n this.imgs[key] = value;\r\n }\r\n\r\n get(key){\r\n return this.imgs[key];\r\n }\r\n\r\n remove(key){\r\n let obj = {...this.imgs};\r\n delete obj[key];\r\n this.imgs = obj;\r\n }\r\n\r\n clear(){\r\n this.imgs = {};\r\n }\r\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Map.js","names":["_react","_interopRequireDefault","require","_default2","_interopRequireWildcard","_MapToolFunction","_immutable","_isArray","_isEmpty","_get","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","done","value","TypeError","a","u","next","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","name","test","l","push","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","_defineProperties","configurable","writable","_toPropertyKey","key","_createClass","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","_inherits","create","_setPrototypeOf","_toPrimitive","toPrimitive","String","Number","Set","Immutable","defaultMarker","OlMap","_React$Component","props","_this","nextLayers","undefined","currentLayers","first","addLayers","item","map","coverage","includes","removeLayers","exist","olLayers","find","address","layer","setVisible","startsWith","type","addSuperMapLayer","addGeoServerLayer","addGeoServerImageLayer","indexOf","addTileLayer","JSON","parse","layers","initLayer","state","gis","addLayer","OL_SCREEN","eval","tmap_normal","zIndexGraphics","htmlPointsId","pointCollectionId","Label","labelLayer","x","y","viewer","GM","graphicManage","getPolygonArea","loadTimer","animTimer","animCount","moveToTimer","drawToolbar","drawParam","editToolbar","editId","drawSource","drawVector","drawInfo","sketch","listener","scaleControl","pointLayers","mouseNowPosition","px","py","isCount","heatmap","clusterMarkers","clusterPs","clusterPt","morepoints","areaRestriction","movePoints","baseLayer","pointLayerZIndex","polylineLayerZIndex","polygonLayerZIndex","rangingTool","isRanging","line","points","distance","mapRangingTool","rangingTools","rangingInfo","helpTooltipElement","helpTooltip","measureTooltipElement","measureTooltip","deleteToolTipElement","deleteToolTip","continuePolygonMsg","continueLineMsg","drawElements","drawLayer","feature","draw","clusterInfo","clickFeature","clickResolution","hoverFeature","clusterSource","clusterHulls","clusters","clusterCircles","mapCreated","mapId","pointIds","lineIds","polygonIds","circleIds","editGraphic","boundaryInfo","drawIds","point","polyline","polygon","circle","rectangle","frameSelectProps","pointFeatureLayer","imgCache","ImgCache","loadMapJs","loadMapComplete","Promise","resolve","reject","ensurejQuery","then","window","$","getScript","concat","configUrl","openlayerServerURL","PointCollection","mapServerURL","Client9","all","attr","rel","href","appendTo","init","_this2","createMap","ol","source","Vector","wrapX","initData","_t$props","mapPoints","mapLines","mapPolygons","mapCircles","mapVisiblePoints","mapCluster","mapPointCollection","heatMapData","pointsFeature","setCenter","addPointLayer","addPoint","addLine","addPolygon","addCircle","showControl","heatMapOverlay","cluster","setVisiblePoints","addPointCollection","setAreaRestriction","event","status","overall_feature","dragAddMoveFlag","on","getTargetElement","classList","add","remove","evt","forEachFeatureAtPixel","pixel","target","getProperties","id","elementId","features","properties","element","clickGraphic","clickMap","getEventPixel","originalEvent","hit","hasFeatureAtPixel","style","cursor","values","mouseOverGraphic","dispatchEvent","mouseOutGraphic","dragMapStart","moveStart","zoom","dragMapEnd","moveEnd","zoomStart","setTimeout","zoomEnd","center","_t$props2","_t$props2$olProps","olProps","_t$props2$mapCenter","mapCenter","mapZoomLevel","minZoom","maxZoom","projection","olCoverage","VtxMap","parseFloat","Map","view","View","controls","control","defaults","rotate","attribution","loadLayers","initPropsForUser","getWMTS","options","url","params","sourceOptions","matrixIds","resolutions","tilegrid","WMTS","extent","tileSize","origin","proj","Projection","code","units","axisOrientation","format","matrixSet","tileGrid","_ref","_ref$params","_ref$sourceOptions","layerSource","XYZ","Tile","TileSuperMapRest","vectorSource","GeoJSON","join","strategy","loadingstrategy","bbox","_icon$","el","A","icon","mapIcon","Style","image","Icon","scale","src","stroke","Stroke","color","width","fill","Fill","formatUrl","param","split","json","toUpperCase","decodeURIComponent","_this$formatUrl","_this$formatUrl$param","ImageWMS","serverType","crossOrigin","ratio","VERSION","Image","arr","fitView","getCenter","gt","getZoomLevel","obj","showInfoWindow","hideInfoWindow","callback","frameSelect","clearFrameSelect","clearFrameSelectById","refresh","c","lng","lat","getView","animate","duration","setZoomLevel","z","getZoom","setZoom","_gis$getView$calculat","calculateExtent","getSize","_gis$getView$calculat2","xmin","ymin","xmax","ymax","doEdit","gc","getGraphic","gp","getGraphicParam","endEdit","interaction","Modify","hitDetection","addInteraction","geometry","cur","_cur$flatCoordinates","flatCoordinates","attributes","longitude","latitude","other","geometryType","mapLayer","oddList","evenList","index","path","_t$dealData","dealData","lnglatAry","_extent","paths","calculateDistance","_t$dealData2","rings","area","sketchCoords_","sketchCoords_2","radius","sphere","getDistance","Math","PI","pow","editGraphicChange","setGraphic","setGraphicParam","removeInteraction","parameter","data","Date","getTime","len","removeGraphic","splice","anchor","markerContentX","markerContentY","anchorXUnits","anchorYUnits","opacity","geometryFunction","stoke","lineWidth","lineDash","lineType","pellucidity","getRgbColor","Draw","createBox","_t$frameSelectProps$p","finishDrawing","getGeometry","_gc$flatCoordinates","isRepetition","updatePoint","config","height","updateLine","_t$dealData3","updatePolygon","_t$dealData4","getCoordinates","_t$dealData5","updateCircle","drawEnd","Function","closeDraw","vtxRangingTool","Circle","createHelpTooltip","createMeasureTooltip","createDeleteTooltip","tooltipCoord","coordinate","geom","lngLats","output","formatLength","getLastCoordinate","lnglats","innerHTML","setPosition","setOffset","className","Observable","unByKey","parentNode","removeChild","document","createElement","Overlay","offset","positioning","addOverlay","stopEvent","insertFirst","addEventListener","removeOverlay","removeLayer","round","getMapExtent","nowBounds","southWest","northEast","nowCenter","_gis$getSize","_gis$getSize2","mapSize","arg","ary","g","displayRange","boundingExtent","fit","getFitView","ids","maxX","maxY","minX","minY","coord","boundsArry","getExtent","min","max","bounds","getCurrentCenter","gg","p","pts","parseDom","domStr","domObj","childNodes","d","getPixelFromCoordinate","_t$state$gis$getSize","_t$state$gis$getSize2","size","shape","VotexpointCollection","GMapLib","updatePointCollection","ds","ind","_t$state$gis$getSize3","_t$state$gis$getSize4","reDraw","clearPointCollection","clear","clearAllPointCollection","_ref2","_ref2$parameter","_ref2$data","message","warn","random","lineColor","lineOpacity","popupWindow","Popup","position","content","close","showPopup","removePopup","_this3","ps","psids","console","Feature","Point","cg","labelContent","labelPixelX","labelPixelY","zIndex","deg","txt","myImage","markerContent","nodes","clientX","clientY","pop","autoPanMargin","autoPan","canvasDataURL","base64","img","imgSize","canShowLabel","textStyle","textAlign","textBaseline","font","text","offsetX","offsetY","backgroundFill","padding","labelStyle","Text","setStyle","pointLayer","BAnimationType","marker","setAnimation","BMAP_ANIMATION_BOUNCE","BMAP_ANIMATION_DROP","setState","_this4","dealPoint","overlay","getOverlayById","setElement","changed","rotation","setGeometry","requestIdleCallback","isEmpty","getPointStyle","temp","log","setId","getSource","oldFeatures","getFeatures","newFeatures","updateFeatureIds","feat","getId","stringify","getStyle","removeFeature","addFeatures","timer","clearTimeout","redrawText","_this5","ls","lsids","isHidden","LineString","lineLayer","itt","_this6","_this7","pgs","pgsids","Polygon","polygonLayer","_this8","ccsids","metersPerUnit","getProjection","getMetersPerUnit","circleRadius","circleLayer","graphic","html","removeGraphicParam","clearAll","getLayers","hMap","_t$state","cs","removeControl","ScaleLine","location","addControl","css","left","top","bottom","right","_t$dealData6","_et","setProperties","clearAreaRestriction","dealAreaRestriction","contains","_t$areaRestriction","xmin1","xmax1","ymin1","ymax1","_e$extent","xmin2","xmax2","ymin2","ymax2","ms","getMoreGraphic","getType","label","Cluster","minDistance","setSource","clusterHullStyle","clusterStyle","clusterCircleStyle","clusterMemberStyle","clusterMember","getImage","getText","resolution","clusterMembers","centerCoordinates","generatePointsCircle","reduce","styles","coordinates","unshift","count","clusterCenter","circumference","legLength","angleStep","res","angle","cos","sin","originalFeatures","originalFeature","clearCluster","containsExtent","e1","e2","czIndex","append","getNode","equalsPoint","b","calculatePointsDistance","fp","ep","totalDistance","lngX","latX","dealLabelGraphics","tl","toScreen","lbl","pointAnimation","clearInterval","setInterval","symbol","yoffset","now","start","notation","xoffset","graphics","moveAnimation","waitTime","deleteTime","sort","nowMovePoints","deleteIndex","_nowMovePoints$_i","rx","ry","ddeg","_graphicsLayer","tx","ty","moveTo","lnglat","delay","autoRotation","urlright","urlleft","rotateDeg","isHave","sp","spLngLat","tan","atan","disy","bias","deepEqual","is","fromJS","dataMatch","oldData","newData","onlyOldData","subtract","toJS","onlyNewData","onlyOldIDs","onlyNewIDs","updateDataIDs","intersect","updatedData","replacedData","deletedDataIDs","oldID","addedData","dealAdd","ads","otherupds","dealUpdate","upds","otherads","render","_map","componentDidMount","UNSAFE_componentWillReceiveProps","nextProps","prevProps","_t$state2","_nextProps$mapPoints","_nextProps$mapLines","_nextProps$mapPolygon","_nextProps$mapCircles","_nextProps$customized","customizedBoundary","isOpenTrafficInfo","boundaryName","setCluster","isRangingTool","isRemove","mapRemove","mapDraw","isDraw","isCloseDraw","editGraphicId","isDoEdit","isEndEdit","isclearAllPointCollection","isSetAreaRestriction","isClearAreaRestriction","isClearAll","_nextProps$pointsFeat","oldMapPoints","newMapPoints","_t$dataMatch","_t$dealAdd","_t$dealUpdate","oldMapLines","newMapLines","_t$dataMatch2","_t$dealAdd2","_t$dealUpdate2","_iterator","_step","err","oldMapPolygons","newMapPolygons","_t$dataMatch3","_t$dealAdd3","_t$dealUpdate3","_iterator2","_step2","oldMapCircles","newMapCircles","_t$dataMatch4","_t$dealAdd4","_t$dealUpdate4","_iterator3","_step3","clearHeatMap","clickLngLat","getFeatureInfo","_this9","sourceParam","getParams","getFeatureInfoUrl","getResolution","cql_filter","QUERY_LAYERS","INFO_FORMAT","REQUEST","FEATURE_COUNT","_this$formatUrl2","LAYERS","geoJsonFormat","fetch","_data$features","readFeatures","visible","gradient","heatData","weight","heatSource","Heatmap","blur","_e$pixel","info","updateSize","componentWillUnmount","j","React","Component","_default","exports","_React$Component2","_this0","container","closeble","appendChild","animation","reg","newStr","toLowerCase","replace","parseInt","setAttribute","onload","that","w","h","quality","canvas","ctx","getContext","anw","createAttribute","nodeValue","anh","setAttributeNode","drawImage","toDataURL","imgs","module"],"sources":["VtxMap/OlMap/Map.js"],"sourcesContent":["import React from 'react';\n\n//公共地址配置\nimport configUrl,{ensurejQuery} from '../../default';\n\nimport { graphicManage, getPolygonArea } from '../MapToolFunction';\nimport Immutable from 'immutable';\nimport isArray from \"lodash-es/isArray\";\nimport isEmpty from \"lodash-es/isEmpty\";\n\nimport get from \"lodash-es/get\";\nconst { Set } = Immutable;\nconst defaultMarker = require(\"../images/defaultMarker.png\");\n\nclass OlMap extends React.Component {\n constructor(props) {\n super(props);\n this.zIndexGraphics = []; //需要放在最后的图元,zoom和pan时刷新dom到最后\n this.htmlPointsId = 'vtx_gmap_html_points'; //html点位容器id class管理\n this.pointCollectionId = 'vtx_gmap_html_pointCollection'; //海量点canvas点位容器id class管理\n this.Label = {}; //所有label 集合\n this.labelLayer = { x: 0, y: 0 }; //label图层 位置管理\n this.viewer = null;\n this.GM = new graphicManage(); //初始化 图元管理方法\n this.getPolygonArea = getPolygonArea;\n this.layer = null; //保存地图图层数据\n this.loadTimer = null; //初始化地图 load时延缓数据处理\n this.animTimer = {}; //点位跳动动画 定时集合\n this.animCount = {}; //点位跳动动画 定时计数\n this.moveToTimer = null; //moveTo时间对象\n this.drawToolbar = null; //地图绘制对象即interaction\n this.drawParam = {}; //缓存 绘制的数据\n this.editToolbar = null; //编辑对象\n this.editId = ''; //当前编辑的图元id\n this.drawSource = null;\n this.drawVector = null;\n // 图元绘制保存\n this.drawInfo = {\n sketch: null,\n listener: null,\n };\n this.scaleControl = null;\n this.pointLayers = [];\n this.mouseNowPosition = { x: 0, y: 0, px: 0, py: 0, isCount: false };\n this.heatmap = null; //热力图对象\n this.clusterMarkers = []; //聚合点位id数组\n this.clusterPs = []; //聚合集合点\n this.clusterPt = []; //地图中聚合点集合\n this.morepoints = []; //海量点集合\n this.areaRestriction = null; //区域限制数据\n this.movePoints = [];\n this.olLayers = []; // ol图层集合 {address:'', layer: ''}\n this.baseLayer = null; // 地图图层\n this.pointLayerZIndex = props.pointLayerZIndex || 7;\n this.polylineLayerZIndex = props.polylineLayerZIndex || 6;\n this.polygonLayerZIndex = props.polygonLayerZIndex || 5;\n //是否绘制测距\n this.rangingTool = {\n isRanging: false, //是否开启状态\n line: {}, //线\n points: [], //点\n distance: 0, //测距长度\n mapRangingTool: null, //测距回调\n };\n this.rangingTools = {}; //测距点线缓存\n this.rangingInfo = {\n sketch: null,\n helpTooltipElement: null,\n helpTooltip: null,\n measureTooltipElement: null,\n measureTooltip: null,\n deleteToolTipElement: null,\n deleteToolTip: null,\n continuePolygonMsg: '点击继续绘制图形',\n continueLineMsg: '点击继续绘制线',\n listener: null,\n drawElements: [],\n drawLayer: null,\n feature: null,\n draw: null,\n }\n this.clusterInfo = {\n clickFeature: null,\n clickResolution: null,\n hoverFeature: null,\n clusterSource: null,\n clusterHulls: null,\n clusters: null,\n clusterCircles: null,\n };\n this.mapCreated = false;\n this.state = {\n gis: null, //地图对象\n mapId: props.mapId,\n pointIds: [], //地图上点的ids\n lineIds: [], //地图上线的ids\n polygonIds: [], //地图上面的ids\n circleIds: [], //地图上圆的ids\n editGraphic: '', //当前编辑完后图元所有数据\n boundaryInfo: [], //当前画出的边界线的id和区域名\n drawIds: {\n //绘制工具id集合\n point: [],\n polyline: [],\n polygon: [],\n circle: [],\n rectangle: [],\n },\n };\n this.frameSelectProps = {};\n this.pointFeatureLayer = null;\n this.imgCache = new ImgCache();\n this.loadMapJs();\n }\n // 引入ol样式\n loadMapJs() {\n this.loadMapComplete = new Promise((resolve, reject) => {\n ensurejQuery().then(() => {\n if (window.OlMap) {\n resolve(window.OlMap);\n } else {\n $.getScript(`${configUrl.openlayerServerURL}/ol.js`, () => {\n let PointCollection = new Promise((resolve, reject) => {\n $.getScript(`${configUrl.mapServerURL}/GPointCollection.js`, () => {\n resolve();\n });\n });\n let Client9 = new Promise(function (resolve, reject) {\n $.getScript(`${configUrl.openlayerServerURL}/iclient-openlayers.min.js`, function () {\n resolve();\n });\n });\n Promise.all([PointCollection,Client9]).then(() => {\n resolve(window.OlMap);\n })\n });\n $.getScript(`${configUrl.openlayerServerURL}/bd09.js`);\n $.getScript(`${configUrl.openlayerServerURL}/olScreen.js`);\n $('<link>')\n .attr({\n rel: 'stylesheet',\n type: 'text/css',\n href:\n `${configUrl.openlayerServerURL}/ol.css`,\n })\n .appendTo('head');\n }\n })\n });\n }\n // 初始化地圖\n init() {\n let t = this;\n // 创建地图\n t.createMap();\n t.drawSource = new ol.source.Vector({ wrapX: false });\n t.drawVector = new ol.layer.Vector({ source: t.drawSource });\n let initData = () => {\n const {\n mapPoints,\n mapLines,\n mapPolygons,\n mapCircles,\n mapVisiblePoints,\n mapCluster,\n mapPointCollection,\n areaRestriction,\n heatMapData,\n pointsFeature\n } = t.props;\n // 初始化中心点\n t.setCenter();\n // 添加点\n if (pointsFeature instanceof Array) {\n t.addPointLayer(pointsFeature);\n }\n // 添加点\n if (mapPoints instanceof Array) {\n t.addPoint(mapPoints);\n }\n //添加线\n if (mapLines instanceof Array) {\n t.addLine(mapLines);\n }\n //添加面\n if (mapPolygons instanceof Array) {\n t.addPolygon(mapPolygons);\n }\n //添加圆\n if (mapCircles instanceof Array) {\n t.addCircle(mapCircles);\n }\n //是否设置比例尺\n if (t.props.showControl) {\n t.showControl(t.props);\n }\n // 画热力图\n if (heatMapData) {\n t.heatMapOverlay(heatMapData);\n }\n //设置点聚合\n if (mapCluster instanceof Array) {\n t.cluster(mapCluster);\n }\n /*设置指定图元展示*/\n if (mapVisiblePoints) {\n t.setVisiblePoints(mapVisiblePoints);\n }\n //添加海量点\n if (mapPointCollection instanceof Array) {\n t.addPointCollection(mapPointCollection);\n }\n //设置区域限制\n if (areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\n t.setAreaRestriction(areaRestriction);\n }\n this.mapCreated = true;\n };\n let event = (e, status) => {\n const { gis } = t.state;\n let overall_feature = null; //鼠标移入事件时记录当前的feature,为鼠标移出要素时保存操作的要素对象\n let dragAddMoveFlag = false; //记录地图拖拽和移动事件\n // 地图开始加载时\n gis.on('loadstart', function () {\n if(gis.getTargetElement()){\n gis.getTargetElement().classList.add('spinner');\n }\n });\n // 地图加载结束时\n gis.on('loadend', function () {\n if(gis.getTargetElement()){\n gis.getTargetElement().classList.remove('spinner');\n }\n });\n // 地图双击事件\n gis.on('dbclick', evt => { });\n // 地图点击事件\n gis.on('singleclick', evt => {\n let feature = gis.forEachFeatureAtPixel(evt.pixel, feature => feature);\n if (feature) {\n let target = feature.getProperties();\n let id = ''\n let elementId = ''\n if (isArray(target.features)) { // 处理聚合点击\n const properties = target.features[0].getProperties();\n id = properties.id;\n elementId = properties.id;\n target = target.features\n } else {\n id = target.id;\n elementId = target.element\n }\n // top: e.clientY,//当前点所在的位置(屏幕)\n // left: e.clientX,\n t.clickGraphic(id || elementId, evt, target);\n } else {\n t.clickMap(evt);\n }\n });\n // 鼠标移动事件 - 当鼠标指向要素时改变光标状态\n gis.on('pointermove', evt => {\n let pixel = gis.getEventPixel(evt.originalEvent);\n let hit = gis.hasFeatureAtPixel(pixel);\n if(gis.getTargetElement()){\n gis.getTargetElement().style.cursor = hit ? 'pointer' : 'default';\n }\n // 获取到当前鼠标移动下的feature\n let feature = gis.forEachFeatureAtPixel(pixel, function (feature, layer) {\n return feature;\n });\n if (feature) {\n overall_feature = feature;\n let values = feature.getProperties();\n t.mouseOverGraphic(values.id, evt);\n } else {\n if (overall_feature) {\n overall_feature.dispatchEvent({ type: 'mousein', event: evt });\n let values = overall_feature.getProperties();\n t.mouseOutGraphic(values.id, evt);\n overall_feature = null;\n }\n }\n });\n // 鼠标拖拽事件 - 拖拽开始即是地图移动开始\n gis.on('pointerdrag', evt => {\n dragAddMoveFlag = true;\n t.dragMapStart(evt);\n t.moveStart(evt);\n });\n let zoom = 0;\n // 地图移动事件 - 移动结束即是拖拽事件结束 也是地图缩放事件(无开始和结束事件)的监听\n gis.on('moveend', evt => {\n t.dragMapEnd(evt);\n t.moveEnd(evt);\n t.zoomStart(evt);\n setTimeout(() => {\n t.zoomEnd(evt);\n }, 300);\n dragAddMoveFlag = false;\n });\n // gis.getViewport().addEventListener('mouseout', function () {\n // helpTooltipElement.classList.add('hidden');\n // });\n };\n event();\n t.setCenter(t.props.center);\n initData();\n }\n // 创建地图\n createMap() {\n let t = this;\n let {\n olProps={},\n mapCenter = [],\n mapId,\n mapZoomLevel,\n minZoom,\n maxZoom,\n } = t.props;\n let {\n projection, // 坐标投影类型 EPSG:4326和EPSG:3857,百度图层使用自定义的'BD:09'\n olCoverage\n } = olProps;\n if(window.VtxMap){\n window.VtxMap[mapId]= null;\n }else{\n window.VtxMap = {};\n }\n if(!minZoom){\n minZoom = 2\n }\n if(!maxZoom){\n maxZoom = 19\n }\n if(!projection){\n projection = 'EPSG:4326'\n }\n //中心点\n let center = mapCenter && mapCenter instanceof Array && mapCenter.length == 2\n ? mapCenter\n : [116.400433, 39.906705];\n center = [parseFloat(center[0]), parseFloat(center[1])];\n window.VtxMap[mapId] = t.state.gis = new ol.Map({\n target: mapId.toString(),\n view: new ol.View({\n center: center, \n zoom: mapZoomLevel || 10,\n projection,\n minZoom,\n maxZoom,\n }),\n controls: ol.control.defaults({\n zoom: false,\n rotate: false,\n attribution: false\n }),\n });\n // 基本地图视图\n t.viewer = new ol.View({\n center: center, \n zoom: mapZoomLevel || 10,\n projection,\n minZoom,\n maxZoom,\n })\n t.loadLayers(olCoverage, [], true);\n t.initPropsForUser();\n }\n\n // 加载图层\n loadLayers = (nextLayers = [], currentLayers = [], first = false) => {\n const t = this;\n // 对比图层的变化,找出需要新增和需要删除的。\n const addLayers = nextLayers.filter(item => {\n return !currentLayers.map(e => e.coverage).includes(item.coverage)\n });\n const removeLayers = currentLayers.filter(item => {\n return !nextLayers.map(e => e.coverage).includes(item.coverage)\n })\n if(removeLayers.length > 0) {\n removeLayers.forEach(item => {\n const exist = t.olLayers.find(e => e.address === item.coverage);\n exist && exist.layer.setVisible(false);\n })\n }\n if (addLayers.length > 0) {\n addLayers.map(item => {\n if(\n item.coverage.startsWith(\"http\") || \n item.coverage.startsWith('/')\n ){\n switch(item.type) {\n // 超图\n case 'superMap':\n t.addSuperMapLayer(item.coverage);\n break;\n case 'geoServer':\n t.addGeoServerLayer(item.coverage);\n break;\n case 'geoServer_image':\n t.addGeoServerImageLayer(item);\n break;\n default:\n break;\n }\n }else if(item.coverage.indexOf(\"WMTS\")>-1){\n t.addTileLayer(JSON.parse(item.coverage));\n }else if(item.coverage == 'customLayer'){\n let layers = item.initLayer();\n if(layers){\n if(isArray(layers)){\n layers.map(layer=>{\n t.state.gis.addLayer(layer);\n })\n }else {\n t.state.gis.addLayer(layers);\n }\n }\n }else if (OL_SCREEN[item.coverage]) {\n if(first) {\n let layers = eval(OL_SCREEN[item.coverage].initLayer);\n if(isArray(layers)){\n layers.map(layer=>{\n t.state.gis.addLayer(layer);\n })\n }else {\n t.state.gis.addLayer(layers);\n }\n }\n }\n })\n } else {\n if(first) {\n let layers = eval(OL_SCREEN.tmap_normal.initLayer);\n if(isArray(layers)){\n layers.map(layer=>{\n t.state.gis.addLayer(layer);\n })\n }else {\n t.state.gis.addLayer(layers);\n }\n }\n }\n }\n\n // wmts图层资源\n getWMTS(options) {\n const { url, params, sourceOptions } = options;\n \n //切片名\n let matrixIds = [\n 'EPSG:4326:0',\n 'EPSG:4326:1',\n 'EPSG:4326:2',\n 'EPSG:4326:3',\n 'EPSG:4326:4',\n 'EPSG:4326:5',\n 'EPSG:4326:6',\n 'EPSG:4326:7',\n 'EPSG:4326:8',\n 'EPSG:4326:9',\n 'EPSG:4326:10',\n 'EPSG:4326:11',\n 'EPSG:4326:12',\n 'EPSG:4326:13',\n 'EPSG:4326:14',\n 'EPSG:4326:15',\n 'EPSG:4326:16',\n 'EPSG:4326:17',\n 'EPSG:4326:18',\n ];\n \n //分辨率\n let resolutions = [\n 0.703125,\n 0.3515625,\n 0.17578125,\n 0.087890625,\n 0.0439453125,\n 0.02197265625,\n 0.010986328125,\n 0.0054931640625,\n 0.00274658203125,\n 0.001373291015625,\n 6.866455078125e-4,\n 3.4332275390625e-4,\n 1.71661376953125e-4,\n 8.58306884765625e-5,\n 4.291534423828125e-5,\n 2.1457672119140625e-5,\n 1.0728836059570312e-5,\n 5.364418029785156e-6,\n 2.682209014892578e-6,\n ];\n \n //切片策略\n let tilegrid = new ol.tilegrid.WMTS({\n extent: [-180.0, -90.0, 180.0, 90.0], //范围\n tileSize: [256, 256],\n origin: [-180.0, 90.0], //切片原点\n resolutions: resolutions, //分辨率\n matrixIds: matrixIds, //层级标识列表,与地图级数保持一致\n });\n \n //设置地图投影\n let projection = new ol.proj.Projection({\n code: 'EPSG:4326',\n units: 'degrees',\n axisOrientation: 'neu',\n });\n \n return new ol.source.WMTS({\n url: url,\n layer: params?.layer,\n format: 'image/png',\n matrixSet: 'EPSG:4326',\n projection: projection,\n tileGrid: tilegrid,\n ...sourceOptions,\n });\n }\n \n // 添加普通图层\n addTileLayer({url,params={}, sourceOptions={}, type, source}){\n if(url){\n const exist = this.olLayers.find(item => item.address === url);\n if(exist) {\n exist.layer.setVisible(true);\n return;\n }\n let layerSource = source || (type==='WMTS'?\n this.getWMTS({url,params,sourceOptions})\n : new ol.source.XYZ({\n url,\n ...sourceOptions,\n })\n )\n const layer = new ol.layer.Tile({\n source: layerSource\n });\n\n // 将图层添加到地图上\n this.state.gis.addLayer(layer);\n this.olLayers.push({\n address: url,\n layer\n });\n }\n }\n // 添加超图图层\n addSuperMapLayer(url) {\n const exist = this.olLayers.find(item => item.address === url);\n if(exist) {\n exist.layer.setVisible(true);\n return;\n }\n\n const layer = new ol.layer.Tile({\n source: new ol.source.TileSuperMapRest({\n url\n })\n });\n // 将图层添加到地图上\n this.state.gis.addLayer(layer);\n this.olLayers.push({\n address: url,\n layer\n });\n }\n // 添加geoServer_geoJSON图层\n addGeoServerLayer(url) {\n const exist = this.olLayers.find(item => item.address === url);\n if(exist) {\n exist.layer.setVisible(true);\n return;\n }\n\n // 矢量数据源\n const vectorSource = new ol.source.Vector({\n // 设置格式化类型\n format: new ol.format.GeoJSON(),\n\n // url(extent) 在地图范围变化时调用,返回当前的地图范围\n url: function (extent) {\n return `${url}&bbox=${extent.join(',')}`;\n },\n strategy: ol.loadingstrategy.bbox,\n });\n\n // 矢量图层\n const layer = new ol.layer.Vector({\n // 设置数据源\n source: vectorSource,\n // 设置图层样式也可以 function (feature) { /** 根据内容动态加载样式 **/ return Style}\n style: function(feature) {\n const el = feature.A || {};\n const icon = JSON.parse(el.icon || '[]');\n let mapIcon = icon[0]?.id\n ? `/cloudFile/common/downloadFile?id=${icon[0].id}`\n : require(\"../images/defaultMarker.png\");\n return new ol.style.Style({\n // 点位图标\n image: new ol.style.Icon({\n scale: 1,\n src: mapIcon,\n }),\n // 线样式\n stroke: new ol.style.Stroke({\n color: el.color || '#1890ff',\n width: 4\n }),\n // 面样式\n fill: new ol.style.Fill({\n color: el.color || 'rgba(255,255,255, 0.5)'\n })\n })\n },\n });\n // 将图层添加到地图上\n this.state.gis.addLayer(layer);\n this.olLayers.push({\n address: url,\n layer\n });\n }\n formatUrl(url){\n let param = {},address=url.split(\"?\")[0];\n url.split(\"?\")[1].split(\"&\").map(item=>{\n let json = item.split(\"=\")\n param[json[0].toUpperCase()] = json[1]?decodeURIComponent(json[1]):'';\n })\n return {param,address}\n }\n // 添加geoServer_image图层\n addGeoServerImageLayer(item) {\n let url = item.coverage;\n const exist = this.olLayers.find(item => item.address === url);\n if(exist) {\n exist.layer.setVisible(true);\n return;\n }\n let {param={},address} = this.formatUrl(url);\n // 矢量数据源\n const vectorSource = new ol.source.ImageWMS({\n url: address,\n serverType: 'geoserver',\n crossOrigin: '*',\n ratio: 1,\n params: {\n VERSION: '1.1.0',\n ...(item.param||{}),\n ...param,\n },\n });\n\n // 矢量图层\n const layer = new ol.layer.Image({\n // 设置数据源\n source: vectorSource,\n });\n // 将图层添加到地图上\n this.state.gis.addLayer(layer);\n this.olLayers.push({\n address: url,\n layer,\n source: vectorSource\n });\n }\n // 初始化对外方法\n initPropsForUser(){\n const t = this;\n t.state.gis[\"fitView\"] = (arr) => {\n t.fitView(arr);\n }\n t.state.gis[\"getCenter\"] = () => {\n return t.getCenter();\n }\n t.state.gis[\"setCenter\"] = (gt) => {\n t.setCenter(gt);\n }\n t.state.gis[\"getZoomLevel\"] = () => {\n return t.getZoomLevel();\n }\n t.state.gis[\"showInfoWindow\"] = (obj) => {\n return t.showInfoWindow(obj);\n }\n t.state.gis[\"hideInfoWindow\"] = () => {\n return t.hideInfoWindow();\n }\n t.state.gis[\"frameSelect\"] = (obj={},callback) => {\n return t.frameSelect(obj,callback);\n }\n t.state.gis[\"clearFrameSelect\"] = () => {\n return t.clearFrameSelect();\n }\n t.state.gis[\"clearFrameSelectById\"] = (id) => {\n return t.clearFrameSelectById(id);\n }\n t.state.gis[\"refresh\"] = () => {\n t.refresh();\n }\n }\n // 设置中心点\n setCenter(gt) {\n let t = this;\n if(!t.state.gis){\n return;\n }\n if (gt) {\n //经纬度 必须存在 否则不操作\n if (!gt[0] || !gt[1]) {\n return false;\n }\n //如果设置的经纬度 与当前中心点一样 不操作\n let c = t.getCenter();\n if (c.lng == gt[0] && c.lat == gt[1]) {\n return false;\n }\n t.state.gis.getView().setCenter(gt);\n t.viewer.animate({\n center: gt,\n duration: 2000,\n });\n }\n }\n //设置地图缩放层级\n setZoomLevel (zoom) {\n let t =this;\n let z = t.state.gis.getView().getZoom();\n if(z == zoom){\n return false;\n }\n t.state.gis.getView().setZoom(zoom)\n }\n //获取当前中心点\n getCenter() {\n let t = this;\n const { gis } = t.state;\n let [xmin, ymin, xmax, ymax] = gis.getView().calculateExtent(gis.getSize());\n return { lng: (xmin + xmax) / 2, lat: (ymin + ymax) / 2 };\n }\n //编辑图元\n doEdit(id) {\n let t = this;\n //获取图元对象\n let gc = t.GM.getGraphic(id);\n let gp = t.GM.getGraphicParam(id);\n if (!gc) return false;\n //关闭先前编辑的图元\n if (!!t.state.editId) {\n t.endEdit();\n }\n if (!t.editToolbar) {\n t.editToolbar = new ol.interaction.Modify({\n source: gp.source,\n hitDetection: true\n });\n t.state.gis.addInteraction(t.editToolbar)\n }else{\n t.state.gis.addInteraction(t.editToolbar)\n }\n t.editToolbar.on('modifyend', function (e) {\n let feature = gc;\n e.features.forEach(function (feature) {\n feature = feature\n })\n //返回参数\n let param = {\n id,\n e,\n };\n // 绘制内部管理的图元\n if (gp.geometry.type == 'point') {\n let cur = feature.getProperties().geometry;\n const [lng, lat] = cur.flatCoordinates;\n //处理点返回参数\n param = {\n ...param,\n attributes: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n other: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n }\n },\n param: {\n attributes: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n other: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n }\n },\n geometryType: gp.geometry.type,\n mapLayer: t.GM.getGraphic(id)\n },\n geometryType: gp.geometry.type,\n geometry: {\n type: 'point',\n x: lng,\n y: lat,\n },\n }\n }\n //线\n if (gp.geometry.type == 'polyline') {\n let cur = feature.getProperties().geometry;\n let oddList = [], evenList = [];\n cur.flatCoordinates.map((item, index) => {\n // 判断下标奇偶数\n if (index % 2 === 0) {\n evenList.push(item)\n } else {\n oddList.push(item)\n }\n })\n let path = oddList.map((item, index) => {\n return [evenList[index], oddList[index]]\n })\n //处理线返回参数\n let { lnglatAry, _extent } = t.dealData(path);\n param = {\n ...param,\n attributes: {\n ...gp.attributes,\n paths: path,\n other: {\n ...gp.attributes,\n paths: path,\n }\n },\n param: {\n attributes: {\n ...gp.attributes,\n paths: path,\n other: {\n ...gp.attributes,\n paths: path,\n }\n },\n geometry: {\n paths: path,\n _extent,\n type: \"polyline\",\n },\n geometryType: 'polyline',\n lnglatAry,\n mapLayer: t.GM.getGraphic(id)\n },\n geometryType: gp.geometry.type,\n geometry: {\n paths: path,\n _extent,\n type: \"polyline\",\n },\n distance: t.calculateDistance(path),\n }\n }\n //面\n if (gp.geometry.type == 'polygon') {\n let cur = feature.getProperties().geometry;\n let oddList = [], evenList = [];\n cur.flatCoordinates.map((item, index) => {\n // 判断下标奇偶数\n if (index % 2 === 0) {\n evenList.push(item)\n } else {\n oddList.push(item)\n }\n })\n let path = oddList.map((item, index) => {\n return [evenList[index], oddList[index]]\n })\n //处理线返回参数\n let { lnglatAry, _extent } = t.dealData(path);\n param = {\n ...param,\n attributes: {\n ...gp.attributes,\n rings: path,\n other: {\n ...gp.attributes,\n paths: path,\n }\n },\n param: {\n attributes: {\n ...gp.attributes,\n rings: path,\n other: {\n ...gp.attributes,\n paths: path,\n }\n },\n geometry: {\n rings: path,\n type: 'polygon',\n _extent\n },\n geometryType: 'polygon',\n lnglatAry,\n mapLayer: t.GM.getGraphic(id)\n },\n geometryType: gp.geometry.type,\n geometry: {\n rings: path,\n type: 'polygon',\n _extent\n },\n area: getPolygonArea(path),\n }\n }\n if (gp.geometry.type == 'circle') {\n let cur = feature.getProperties().geometry;\n let center = cur.getCenter();\n let sketchCoords_ = [cur.flatCoordinates[0], cur.flatCoordinates[1]];\n let sketchCoords_2 = [cur.flatCoordinates[2], cur.flatCoordinates[3]];\n let radius = ol.sphere.getDistance(sketchCoords_, sketchCoords_2);\n param = {\n ...param,\n attributes: {\n ...gp.attributes,\n longitude: center[0],\n latitude: center[1],\n radius,\n other: {\n ...gp.attributes,\n longitude: center[0],\n latitude: center[1],\n radius,\n }\n },\n param: {\n attributes: {\n ...gp.attributes,\n longitude: center[0],\n latitude: center[1],\n radius,\n other: {\n ...gp.attributes,\n longitude: center[0],\n latitude: center[1],\n radius,\n }\n },\n geometry: {\n x: center[0],\n y: center[1],\n radius,\n type: 'circle',\n },\n geometryType: 'circle',\n mapLayer: t.GM.getGraphic(id)\n },\n geometryType: gp.geometry.type,\n area: Math.PI * Math.pow(radius, 2),\n geometry: {\n type: 'circle',\n x: center[0],\n y: center[1],\n radius\n }\n }\n }\n if ('editGraphicChange' in t.props && typeof (t.props.editGraphicChange) == 'function') {\n t.props.editGraphicChange(param);\n }\n t.GM.setGraphic(id, feature)\n .setGraphicParam(id, { ...param, source: gp.source });\n })\n t.editId = id;\n }\n //关闭编辑\n endEdit() {\n let t = this;\n if (t.editToolbar) {\n t.state.gis.removeInteraction(t.editToolbar);\n t.editToolbar = null;\n }\n t.editId = '';\n }\n // 绘制图元\n draw(obj) {\n let t = this;\n const { drawInfo } = t;\n const { gis } = t.state;\n let drawParam = {}, image, stroke, fill;\n //初始化参数\n drawParam.geometryType = obj.geometryType || 'point';\n drawParam.parameter = obj.parameter ? { ...obj.parameter } : {};\n drawParam.data = obj.data ? { ...obj.data } : {};\n drawParam.data.id = (obj.data || {}).id || `draw${new Date().getTime()}`;\n //缓存 绘制的数据\n t.drawParam = drawParam;\n //判断id是否存在\n let len = t.state.drawIds[drawParam.geometryType].indexOf(drawParam.data.id);\n if (len > -1) {\n //如果id存在 删除存在的图元,清除drawId中的id数据\n t.removeGraphic(drawParam.data.id);\n t.state.drawIds[drawParam.geometryType].splice(len, 1);\n }\n let type = 'Point', style = new ol.style.Style({\n image: new ol.style.Icon({\n anchor: [-drawParam.parameter.markerContentX || -15, -drawParam.parameter.markerContentY || -15],\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n src: drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\n opacity: 1,\n scale: drawParam.parameter.scale || 1,\n })\n });\n let geometryFunction;\n switch (drawParam.geometryType) {\n case 'point':\n type = 'Point';\n style = new ol.style.Style({\n image: new ol.style.Icon({\n anchor: [-drawParam.parameter.markerContentX || -15, -drawParam.parameter.markerContentY || -15],\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n src: drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\n opacity: 1,\n scale: drawParam.parameter.scale || 1,\n })\n })\n break;\n case 'polyline':\n type = 'LineString';\n style = new ol.style.Style({\n stoke: new ol.style.Stroke({\n color: drawParam.parameter.color || '#277ffa',\n width: drawParam.parameter.lineWidth || 3,\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\n })\n })\n break;\n case 'polygon':\n type = 'Polygon';\n style = new ol.style.Style({\n stoke: new ol.style.Stroke({\n color: drawParam.parameter.color || '#277ffa',\n width: drawParam.parameter.lineWidth || 3,\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\n }),\n fill: new ol.style.Fill({\n color: drawParam.parameter.pellucidity ?\n getRgbColor(drawParam.parameter.color || '#277ffa', drawParam.parameter.pellucidity) :\n drawParam.parameter.color || '#277ffa',\n })\n })\n break;\n case 'rectangle':\n type = 'Circle';\n geometryFunction = ol.interaction.Draw.createBox();\n break;\n case 'circle':\n type = 'Circle';\n style = new ol.style.Style({\n stoke: new ol.style.Stroke({\n color: drawParam.parameter.color || '#277ffa',\n width: drawParam.parameter.lineWidth || 3,\n lineDash: drawParam.parameter.lineType == 'dashed' ? [2] : undefined,\n }),\n fill: new ol.style.Fill({\n color: drawParam.parameter.pellucidity ?\n getRgbColor(drawParam.parameter.color || '#277ffa', drawParam.parameter.pellucidity) :\n drawParam.parameter.color || '#277ffa',\n })\n })\n break;\n }\n if (!t.drawToolbar) {\n t.drawToolbar = new ol.interaction.Draw({\n source: t.drawSource,\n type: type,\n geometryFunction: geometryFunction\n // style: style\n });\n gis.addInteraction(t.drawToolbar);\n }else{\n gis.addInteraction(t.drawToolbar);\n }\n t.drawToolbar.on('drawend', function (e) {\n // 关闭绘制事件\n t.drawToolbar.finishDrawing();\n // 移除\n gis.removeInteraction(t.drawToolbar)\n let gc = e.feature.getGeometry();\n //返回参数\n let param = {};\n // 绘制内部管理的图元\n if (t.drawParam.geometryType == 'point') {\n const [lng, lat] = gc.flatCoordinates;\n gc.x = lng;\n gc.y = lat;\n if(t.GM.isRepetition(t.drawParam.data.id)){\n t.updatePoint(\n [\n {\n id: t.drawParam.data.id,\n longitude: lng,\n latitude: lat,\n url:\n t.drawParam.parameter.url ||\n require(\"../images/defaultMarker.png\"),\n config: {\n ...t.drawParam.parameter,\n },\n },\n ],\n \"point\"\n );\n }else{\n t.addPoint([{\n id: t.drawParam.data.id,\n longitude: lng,\n latitude: lat,\n url: t.drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\n config: {\n ...t.drawParam.parameter\n }\n }], 'point');\n }\n \n //处理点返回参数\n param = {\n id: t.drawParam.data.id,\n attributes: {\n id: t.drawParam.data.id,\n url: t.drawParam.parameter.url || require(\"../images/defaultMarker.png\"),\n config: {\n width: t.drawParam.parameter.width || 30,\n height: t.drawParam.parameter.height || 30\n }\n },\n geometry: gc,\n geometryType: 'point',\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\n }\n }\n //线\n if (t.drawParam.geometryType == 'polyline') {\n let oddList = [], evenList = [];\n gc.flatCoordinates.map((item, index) => {\n // 判断下标奇偶数\n if (index % 2 === 0) {\n evenList.push(item)\n } else {\n oddList.push(item)\n }\n })\n let path = oddList.map((item, index) => {\n return [evenList[index], oddList[index]]\n })\n if(t.GM.isRepetition(t.drawParam.data.id)){\n t.updateLine([{\n id: t.drawParam.data.id,\n paths: path,\n config: {\n ...t.drawParam.parameter\n }\n }], 'polyline');\n }else{\n t.addLine([{\n id: t.drawParam.data.id,\n paths: path,\n config: {\n ...t.drawParam.parameter\n }\n }], 'polyline');\n }\n //处理线返回参数\n let { lnglatAry, _extent } = t.dealData(path);\n param = {\n lnglatAry,\n id: t.drawParam.data.id,\n geometry: {\n ...e.geometry,\n paths: path,\n _extent\n },\n attributes: {\n id: t.drawParam.data.id,\n config: {\n ...t.drawParam.parameter\n }\n },\n distance: t.calculateDistance(path),\n geometryType: 'polyline',\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\n }\n }\n //面\n if (t.drawParam.geometryType == 'polygon') {\n let oddList = [], evenList = [];\n gc.flatCoordinates.map((item, index) => {\n // 判断下标奇偶数\n if (index % 2 === 0) {\n evenList.push(item)\n } else {\n oddList.push(item)\n }\n })\n let path = oddList.map((item, index) => {\n return [evenList[index], oddList[index]]\n })\n if(t.GM.isRepetition(t.drawParam.data.id)){\n t.updatePolygon(\n [\n {\n id: t.drawParam.data.id,\n rings: path,\n config: {\n ...t.drawParam.parameter,\n },\n },\n ],\n t.drawParam.geometryType\n );\n }else{\n t.addPolygon([{\n id: t.drawParam.data.id,\n rings: path,\n config: {\n ...t.drawParam.parameter\n }\n }], t.drawParam.geometryType);\n }\n //处理线返回参数\n let { lnglatAry, _extent } = t.dealData(path);\n param = {\n lnglatAry,\n id: t.drawParam.data.id,\n geometry: {\n ...e.geometry,\n rings: path,\n type: t.drawParam.geometryType,\n _extent\n },\n attributes: {\n id: t.drawParam.data.id,\n config: {\n ...t.drawParam.parameter\n }\n },\n area: getPolygonArea(path),\n geometryType: t.drawParam.geometryType,\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\n }\n }\n if (t.drawParam.geometryType == 'rectangle') {\n let path = e.feature.getGeometry().getCoordinates()[0];\n if(t.GM.isRepetition(t.drawParam.data.id)){\n t.updatePolygon(\n [\n {\n id: t.drawParam.data.id,\n rings: path,\n config: {\n ...t.drawParam.parameter,\n },\n },\n ],\n t.drawParam.geometryType\n );\n }else{\n t.addPolygon([{\n id: t.drawParam.data.id,\n rings: path,\n config: {\n ...t.drawParam.parameter\n }\n }], t.drawParam.geometryType);\n }\n //处理线返回参数\n let { lnglatAry, _extent } = t.dealData(path);\n param = {\n lnglatAry,\n id: t.drawParam.data.id,\n geometry: {\n ...e.geometry,\n rings: path,\n type: t.drawParam.geometryType,\n _extent\n },\n attributes: {\n id: t.drawParam.data.id,\n config: {\n ...t.drawParam.parameter\n }\n },\n area: getPolygonArea(path),\n geometryType: t.drawParam.geometryType,\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\n }\n }\n if (t.drawParam.geometryType == 'circle') {\n let center = e.feature.getGeometry().getCenter();\n let cur = e.feature.getProperties().geometry;\n let sketchCoords_ = [cur.flatCoordinates[0], cur.flatCoordinates[1]];\n let sketchCoords_2 = [cur.flatCoordinates[2], cur.flatCoordinates[3]];\n let radius = ol.sphere.getDistance(sketchCoords_, sketchCoords_2);\n if(t.GM.isRepetition(t.drawParam.data.id)){\n t.updateCircle(\n [\n {\n id: t.drawParam.data.id,\n longitude: center[0],\n latitude: center[1],\n radius: radius,\n config: {\n ...t.drawParam.parameter,\n },\n },\n ],\n t.drawParam.geometryType\n );\n }else{\n t.addCircle([{\n id: t.drawParam.data.id,\n longitude: center[0],\n latitude: center[1],\n radius: radius,\n config: {\n ...t.drawParam.parameter\n }\n }], t.drawParam.geometryType);\n }\n param = {\n area: Math.PI * Math.pow(radius, 2),\n attributes: {\n id: t.drawParam.data.id,\n config: {\n ...t.drawParam.parameter\n }\n },\n geometry: {\n type: t.drawParam.geometryType,\n x: center[0],\n y: center[1],\n radius\n },\n geometryType: t.drawParam.geometryType,\n mapLayer: t.GM.getGraphic(t.drawParam.data.id)\n }\n }\n if ('drawEnd' in t.props && typeof (t.props.drawEnd) == 'function') {\n t.props.drawEnd(param);\n }\n if(t.frameSelectProps[param.attributes.id]?.callback instanceof Function){\n t.frameSelectProps[param.attributes.id].callback(param);\n }\n });\n //保存绘制图元的id便于后期比对\n t.state.drawIds[drawParam.geometryType].push(drawParam.data.id);\n }\n // 关闭绘制\n closeDraw() {\n let t = this;\n const { gis } = t.state;\n if (t.drawToolbar) {\n // 关闭绘制事件\n t.drawToolbar.finishDrawing();\n // 移除\n gis.removeInteraction(t.drawToolbar)\n t.drawToolbar = null;\n t.drawInfo = {\n sketch: null,\n listener: null,\n };\n }\n }\n /*工具方法*/\n vtxRangingTool(){\n let t = this;\n let source = new ol.source.Vector({});\n t.rangingInfo.drawLayer = new ol.layer.Vector({\n source: source,\n style: new ol.style.Style({\n fill: new ol.style.Fill({\n color: 'rgba(255, 255, 255, 0.2)',\n }),\n stroke: new ol.style.Stroke({\n color: '#ffcc33',\n width: 4,\n }),\n image: new ol.style.Circle({\n radius: 7,\n fill: new ol.style.Fill({\n color: '#ffcc33',\n }),\n }),\n }),\n })\n t.rangingInfo.draw = new ol.interaction.Draw({\n source,\n type: 'LineString',\n style: new ol.style.Style({\n fill: new ol.style.Fill({\n color: 'rgba(255, 255, 255, 0.2)',\n }),\n stroke: new ol.style.Stroke({\n color: 'rgba(0, 0, 0, 0.5)',\n lineDash: [10, 10],\n width: 4,\n }),\n image: new ol.style.Circle({\n radius: 5,\n stroke: new ol.style.Stroke({\n color: 'rgba(0, 0, 0, 0.7)',\n }),\n fill: new ol.style.Fill({\n color: 'rgba(255, 255, 255, 0.2)',\n }),\n }),\n }),\n });\n let obj = {};\n t.createHelpTooltip();\n t.createMeasureTooltip();\n t.createDeleteTooltip();\n t.state.gis.addLayer(t.rangingInfo.drawLayer);\n t.state.gis.addInteraction(t.rangingInfo.draw);\n // 开始监听绘制\n t.rangingInfo.draw.on('drawstart', (evt) => {\n t.rangingInfo.feature = evt.feature;\n let tooltipCoord = evt.coordinate;\n t.rangingInfo.listener = evt.feature.getGeometry().on('change', function (evt) {\n const geom = evt.target;\n const {flatCoordinates} = geom;\n const lngLats = [[flatCoordinates[0], flatCoordinates[1]],[flatCoordinates[2], flatCoordinates[3]]];\n let output = t.formatLength(geom);\n tooltipCoord = geom.getLastCoordinate();\n obj={\n distance: output,\n lnglats: lngLats,\n }\n t.rangingInfo.measureTooltipElement.innerHTML = output;\n t.rangingInfo.measureTooltip.setPosition(tooltipCoord);\n t.rangingInfo.deleteToolTip.setPosition(tooltipCoord);\n t.rangingInfo.deleteToolTip.setOffset([20, 10]);\n });\n });\n // 双击绘制完成\n t.rangingInfo.draw.on('drawend', () => {\n t.rangingInfo.measureTooltipElement.className = 'ol-tooltip ol-tooltip-static';\n t.rangingInfo.measureTooltip.setOffset([0, -7]);\n t.rangingInfo.feature = null;\n t.rangingInfo.measureTooltipElement = null;\n // t.createMeasureTooltip();\n new ol.Observable.unByKey(t.rangingInfo.listener);\n t.state.gis.removeInteraction(t.rangingInfo.draw);\n if('mapRangingTool' in t.props){\n t.props.mapRangingTool(obj);\n }\n });\n }\n // 绘图时创建提示\n createHelpTooltip(){\n const t = this;\n if (t.rangingTool.helpTooltipElement) {\n t.rangingTool.helpTooltipElement.parentNode.removeChild(t.rangingTool.helpTooltipElement);\n }\n t.rangingTool.helpTooltipElement = document.createElement('div');\n t.rangingTool.helpTooltipElement.className = 'ol-tooltip hidden';\n t.rangingTool.helpTooltip = new ol.Overlay({\n element: t.rangingTool.helpTooltipElement,\n offset: [15, 0],\n positioning: 'center-left',\n });\n t.state.gis.addOverlay(t.rangingTool.helpTooltip);\n }\n // 工具画图提示\n createMeasureTooltip() {\n const t = this;\n if (t.rangingInfo.measureTooltipElement) {\n t.rangingInfo.measureTooltipElement.parentNode.removeChild(t.rangingInfo.measureTooltipElement);\n }\n t.rangingInfo.measureTooltipElement = document.createElement('div');\n t.rangingInfo.measureTooltipElement.className = 'ol-tooltip ol-tooltip-measure';\n t.rangingInfo.measureTooltip = new ol.Overlay({\n element: t.rangingInfo.measureTooltipElement,\n offset: [0, -15],\n positioning: 'bottom-center',\n stopEvent: false,\n insertFirst: false,\n });\n t.state.gis.addOverlay(t.rangingInfo.measureTooltip);\n }\n // 创建删除提示\n createDeleteTooltip() {\n const t = this;\n if (t.rangingInfo.deleteToolTipElement) {\n t.rangingInfo.deleteToolTipElement.parentNode.removeChild(t.rangingInfo.deleteToolTipElement);\n }\n t.rangingInfo.deleteToolTipElement = document.createElement('div');\n t.rangingInfo.deleteToolTipElement.className = 'ol-tooltip-delete';\n t.rangingInfo.deleteToolTipElement.innerHTML = 'X';\n t.rangingInfo.deleteToolTipElement.addEventListener('click', function(e){\n t.rangingInfo.measureTooltipElement = null;\n t.rangingInfo.helpTooltipElement = null;\n t.rangingInfo.deleteToolTipElement = null;\n t.state.gis.removeOverlay(t.rangingInfo.measureTooltip);\n t.state.gis.removeOverlay(t.rangingTool.helpTooltip);\n t.state.gis.removeOverlay(t.rangingInfo.deleteToolTip);\n new ol.Observable.unByKey(t.rangingInfo.listener);\n t.state.gis.removeInteraction(t.rangingInfo.draw);\n t.state.gis.removeLayer(t.rangingInfo.drawLayer);\n })\n t.rangingInfo.deleteToolTip = new ol.Overlay({\n element: t.rangingInfo.deleteToolTipElement,\n offset: [15, 15],\n positioning: 'bottom-center',\n stopEvent: false,\n insertFirst: true,\n });\n t.state.gis.addOverlay(t.rangingInfo.deleteToolTip);\n }\n\n formatLength (line) {\n const {flatCoordinates} = line\n // const length = new ol.sphere.getDistance([flatCoordinates[0], flatCoordinates[1]],[flatCoordinates[2], flatCoordinates[3]]);\n let paths = []\n for (let n = 0; n < flatCoordinates.length; n += 2) {\n paths.push([flatCoordinates[n], flatCoordinates[n + 1]])\n }\n let length = 0;\n if (paths.length >= 2)\n paths.map((item, index) => {\n if (index <= paths.length - 2) {\n length += ol.sphere.getDistance(paths[index], paths[index + 1])\n }\n })\n let output = '';\n if (length > 100) {\n output = Math.round((length / 1000) * 100) / 100 + ' ' + 'km';\n } else {\n output = Math.round(length * 100) / 100 + ' ' + 'm';\n }\n return output;\n };\n // 获取地图的当前位置状态信息\n getMapExtent() {\n let t = this;\n const { gis } = t.state;\n let obj = {};\n if (gis) {\n let nowBounds = gis.getView().calculateExtent(gis.getSize());\n obj.southWest = {\n lng: nowBounds[0],\n lat: nowBounds[1],\n };\n obj.northEast = {\n lng: nowBounds[2],\n lat: nowBounds[3],\n };\n obj.nowCenter = t.getCenter();\n obj.zoom = t.getZoomLevel();\n const [width, height] = gis.getSize();\n obj.mapSize = { width: width, height: height };\n obj.radius = ol.sphere.getDistance(\n [obj.nowCenter.lng, obj.nowCenter.lat],\n [obj.northEast.lng, obj.northEast.lat],\n );\n return obj;\n }\n }\n //将制定图元展示在视野内 (强制改变地图中心位置)\n /*\n 参数arg格式如下1,2\n 1.string 格式如:'1,a,2,3,4'\n 2.数组 ['1','2']\n */\n setVisiblePoints(mapVisiblePoints) {\n let t = this;\n const {gis} = t.state;\n let arg = null;\n let type = mapVisiblePoints.type;\n let ary = [];//图元id集合\n let obj = [];//经纬度集合\n switch(mapVisiblePoints.fitView){\n case 'point':\n arg = this.state.pointIds;\n break;\n case 'line':\n arg = this.state.lineIds;\n break;\n case 'polygon':\n arg = this.state.polygonIds;\n break;\n case 'circle':\n arg = this.state.circleIds;\n break;\n case 'all':\n arg = this.state.pointIds.concat(this.state.lineIds).concat(this.state.polygonIds).concat(this.state.circleIds);\n break;\n default:\n arg = mapVisiblePoints.fitView;\n break;\n }\n if(typeof(arg) === 'string'){\n ary = arg.split(',');\n }else if(arg instanceof Array){\n ary = arg;\n }\n for(let i = 0 ; i < ary.length ; i++){\n let g = t.GM.getGraphicParam(ary[i]);\n if(g){\n switch(g.geometry.type){\n case 'point':\n obj.push([g.geometry.x,g.geometry.y]);\n case 'circle':\n obj.push([g.geometry.x,g.geometry.y]);\n break;\n case 'polyline':\n obj = [...obj,...g.geometry.paths];\n break;\n case 'polygon':\n obj = [...obj,...g.geometry.rings];\n break;\n }\n }\n }\n if(obj.length > 0){\n let displayRange = new ol.extent.boundingExtent(obj);\n gis.getView().fit(displayRange, gis.getSize());\n }\n }\n getFitView(ids) {\n let t = this;\n if (ids.length > 0) {\n let maxX = null, maxY = null, minX = null, minY = null;\n for (let i = 0; i < ids.length; i++) {\n let coord = t.GM.getGraphic(ids[i]);\n let boundsArry = coord.getGeometry().getExtent();\n if (minX === null) {\n minX = boundsArry[0]\n minY = boundsArry[1]\n maxX = boundsArry[2]\n maxY = boundsArry[3]\n } else {\n minX = Math.min(boundsArry[0], minX)\n minY = Math.min(boundsArry[1], minY)\n maxX = Math.max(boundsArry[2], maxX)\n maxY = Math.max(boundsArry[3], maxY)\n }\n }\n const bounds = [minX, minY, maxX, maxY];\n return bounds;\n }\n }\n\n // 设置最佳视野\n fitView(arr=[]){\n const t= this;\n if(arr?.length >0){\n let displayRange = new ol.extent.boundingExtent(arr);\n t.state.gis.getView().fit(displayRange, t.state.gis.getSize());\n }\n }\n\n /*功能方法*/\n //获取当前地图的中心位置\n getCurrentCenter() {\n let t = this;\n const { gis } = t.state;\n let extent = gis.getView().calculateExtent(gis.getSize());\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n }\n //获取当前比例尺\n getZoomLevel() {\n let t = this;\n return t.state.gis.getView().getZoom();\n }\n //获取图元数据\n getGraphic(id) {\n let t = this;\n if (!id) {\n return false;\n }\n let gp = t.GM.getGraphicParam(id);\n let gg = t.GM.getGraphic(id);\n if (!gg) {\n return false;\n }\n let p = {},\n pts = [],\n lng = 0,\n lat = 0;\n switch (gp.geometryType) {\n case 'point':\n lng = gp.geometry.x;\n lat = gp.geometry.y;\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n x: lng,\n y: lat,\n },\n attributes: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n other: {\n ...gp.attributes.other,\n longitude: lng,\n latitude: lat,\n },\n },\n };\n break;\n case 'polyline':\n pts = gp.geometry.paths;\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n paths: pts,\n },\n attributes: {\n ...gp.attributes,\n paths: pts,\n other: {\n ...gp.attributes.other,\n paths: pts,\n },\n },\n };\n break;\n case 'polygon':\n pts = gp.geometry.rings;\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n rings: pts,\n },\n attributes: {\n ...gp.attributes,\n rings: pts,\n other: {\n ...gp.attributes.other,\n rings: pts,\n },\n },\n area: getPolygonArea(pts),\n };\n break;\n case 'circle':\n lng = gp.geometry.x;\n lat = gp.geometry.y;\n let radius = gp.geometry.radius;\n p = {\n ...gp,\n mapLayer: gg,\n geometry: {\n ...gp.geometry,\n x: lng,\n y: lat,\n radius,\n },\n attributes: {\n ...gp.attributes,\n longitude: lng,\n latitude: lat,\n radius,\n other: {\n ...gp.attributes.other,\n longitude: lng,\n latitude: lat,\n radius,\n },\n },\n };\n break;\n }\n return p;\n }\n // 转换dom节点\n parseDom(domStr) {\n const domObj = document.createElement('div');\n domObj.innerHTML = domStr;\n return domObj.childNodes;\n }\n //添加海量点\n addPointCollection(data = []) {\n let t = this;\n data.map((item, index) => {\n let d = item || {};\n let points = (d.points || []).map((d, i) => {\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\n return [p[0], p[1]];\n });\n let [width, height] = t.state.gis.getSize();\n let options = {\n size: d.size,\n shape: d.shape,\n color: d.color,\n width: width,\n height: height,\n mapId: t.props.mapId\n };\n let VotexpointCollection = new GMapLib.PointCollection(points, options);\n t.morepoints.push({\n id: d.id,\n value: VotexpointCollection\n });\n VotexpointCollection.draw();\n })\n }\n //更新海量点\n updatePointCollection(data = []) {\n let t = this;\n data.map((ds, ind) => {\n t.morepoints.map((item, index) => {\n if (item.id == ds.id) {\n let points = (ds.points || []).map((d, i) => {\n let p = t.state.gis.getPixelFromCoordinate([d.lng, d.lat]);\n return [p[0], p[1]];\n });\n let [width, height] = t.state.gis.getSize();\n let options = {\n size: ds.size,\n shape: ds.shape,\n color: ds.color,\n width: width,\n height: height\n };\n item.value.reDraw(points, options);\n }\n })\n })\n }\n //删除海量点\n clearPointCollection(ids = []) {\n let t = this;\n ids.map((id, ind) => {\n t.morepoints.map(function (item, index) {\n if (id == item.id) {\n item.value.clear();\n }\n });\n });\n }\n\n //删除全部海量点\n clearAllPointCollection() {\n let t = this;\n t.morepoints.map(function (item, index) {\n item.value.clear();\n });\n }\n // 框选\n frameSelect({geometryType,parameter={},data={}},callback){\n if(!['polygon','circle','rectangle'].includes(geometryType)){\n message.warn(\"传入的类型不支持框选!\")\n return false;\n }\n const t = this;\n let params = {},\n type = geometryType||'polygon',\n id = data.id || `frameSelectFeature_${Math.random()}`;\n\n params.color = parameter.color||'#FF0000';\n params.lineColor = parameter.lineColor||'#FF0000';\n params.lineOpacity = parameter.lineOpacity||1;\n params.lineWidth = parameter.lineWidth||2;\n params.pellucidity = parameter.pellucidity||0.6;\n params.lineType = parameter.lineType||'solid';\n\n t.draw({\n geometryType: type,\n parameter: {\n ...parameter,\n ...params\n },\n data:{\n id: id\n }\n });\n\n t.frameSelectProps[id] = {\n callback,\n id,\n type: geometryType\n } \n }\n // 清除框选\n clearFrameSelect(){\n for(let key in this.frameSelectProps){\n this.removeGraphic(this.frameSelectProps[key].id,this.frameSelectProps[key].type);\n }\n this.frameSelectProps = {};\n }\n // 清除框选ById\n clearFrameSelectById(id){\n let obj = this.frameSelectProps[id];\n this.removeGraphic(obj.id, obj.type);\n delete this.frameSelectProps[id];\n }\n /*\n * 添加信息窗口\n * params\n * @position: Array[longitude,latitude]\n * @content: String|HTML\n * @close: boolean\n */\n showInfoWindow(params={}){\n const t = this;\n if(t.popupWindow){\n t.hideInfoWindow();\n }\n t.popupWindow = new Popup({\n map: t.state.gis,\n position: params.position,\n innerHTML: params.content,\n close: params.close\n });\n t.popupWindow.showPopup();\n }\n hideInfoWindow(){\n const t = this;\n if(t.popupWindow){\n t.popupWindow.removePopup();\n }\n t.popupWindow = null;\n }\n // 添加点\n addPoint(mapPoints, type) {\n let t = this;\n let ps = [];\n let psids = [...t.state.pointIds];\n mapPoints.map((item, index) => {\n //如果id重复,直接跳过不执行.\n if (this.GM.isRepetition(item.id)) {\n console.warn(`加点id: ${item.id} 重复`);\n return false;\n }\n //点位数据不符合,直接跳过\n if (!item.longitude || !item.latitude) {\n console.warn(`点 经纬度 数据错误`);\n return false;\n }\n // 创建点位图元要素\n let feature = new ol.Feature({\n geometry: new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]),\n name: item.name,\n id: item.id,\n params: {\n ...item,\n },\n });\n let cg = {\n width: 30,\n height: 30,\n labelContent: '',\n labelPixelX: 0,\n labelPixelY: 34,\n markerContentX: -13,\n markerContentY: -42,\n zIndex: 100,\n deg: 0,\n scale: 1,\n };\n //初始化默认数据\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n // 覆盖物样式参数\n let style, icon, txt;\n let myImage = new Image(cg.width, cg.height);\n \n if (!!item.markerContent) {\n let nodes = t.parseDom(item.markerContent)[0];\n // 自定义图层需要把事件加在dom上\n nodes.addEventListener(\"click\", e => {\n t.clickGraphic(item.id,{\n ...e,\n pixel: [e.clientX,e.clientY]\n })\n })\n // 创建地图自定义覆盖物\n let pop = new ol.Overlay({\n id: item.id,\n position: [parseFloat(item.longitude), parseFloat(item.latitude)],\n positioning: 'center-center',\n element: nodes,\n autoPanMargin: 20,\n autoPan: true,\n offset: [0, -20],\n insertFirst: true,\n });\n t.state.gis.addOverlay(pop);\n } else {\n // item.url || require(\"../images/defaultMarker.png\"),\n canvasDataURL(\n item.url || require(\"../images/defaultMarker.png\"),\n { width: cg.width, height: cg.height },\n function (base64) {\n myImage.src = base64;\n }\n )\n // 创建地图要素图标样式\n style = new ol.style.Style({\n image: new ol.style.Icon({\n anchor: [-cg.markerContentX, -cg.markerContentY],\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n img: myImage,\n imgSize: [cg.width, cg.height],\n opacity: cg.opacity,\n scale: cg.scale || 1,\n }),\n });\n }\n if (!!item.canShowLabel && item.canShowLabel) {\n let textStyle = {\n textAlign: 'center', //对齐方式\n textBaseline: 'middle', //文本基线\n font: 'normal 12px 微软雅黑', //字体样式\n text: cg.labelContent, //文本内容\n offsetX: cg.labelPixelX, // x轴偏置\n offsetY: cg.labelPixelY, // Y轴偏置\n fill: new ol.style.Fill({\n //填充样式\n color: '#1890ff',\n }),\n backgroundFill: new ol.style.Fill({\n // 填充背景\n color: 'rgba(255, 255, 255, 1)',\n }),\n padding: [2, 5, 2, 5],\n ...(cg.labelStyle || {})\n }\n if(cg.labelStyle && cg.labelStyle.fill){\n textStyle['fill'] = new ol.style.Fill({\n color: cg.labelStyle.fill\n })\n }\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\n textStyle['backgroundFill'] = new ol.style.Fill({\n color: cg.labelStyle.backgroundFill\n })\n }\n // 创建地图要素图标样式\n style = new ol.style.Style({\n image: new ol.style.Icon({\n anchor: [-cg.markerContentX, -cg.markerContentY],\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n // src: item.url || require(\"../images/defaultMarker.png\"),\n img: myImage,\n imgSize: [cg.width, cg.height],\n opacity: cg.opacity,\n scale: cg.scale || 1,\n }),\n // 创建地图要素文字样式\n text: new ol.style.Text(textStyle),\n });\n }\n feature.setStyle(style);\n // 初始化适量数据源\n let source = new ol.source.Vector({\n features: [feature],\n name: 'point',\n id: item.id,\n });\n let pointLayer = new ol.layer.Vector({\n name: 'point',\n source,\n id: item.id,\n zIndex: t.pointLayerZIndex\n });\n t.pointLayers.push({\n id: item.id,\n layer: pointLayer\n })\n //添加点位图层\n t.state.gis.addLayer(pointLayer);\n if (!item.markerContent && cg.BAnimationType == 0) {\n marker.setAnimation(BMAP_ANIMATION_BOUNCE);\n } else if (!item.markerContent && cg.BAnimationType == 1) {\n marker.setAnimation(BMAP_ANIMATION_DROP);\n }\n psids.push(item.id);\n //缓存图元的数据,偏于后期操作\n this.GM.setGraphic(item.id, feature).setGraphicParam(item.id, {\n attributes: { ...item, other: item },\n geometryType: 'point',\n geometry: {\n type: 'point',\n x: parseFloat(item.longitude),\n y: parseFloat(item.latitude),\n },\n source\n });\n });\n if (type !== 'defined') {\n // t.state.pointIds = psids;\n t.setState({\n pointIds: psids\n })\n }\n }\n //更新点\n updatePoint(mapPoints = []) {\n let t = this;\n let index = 0;\n const dealPoint = (item) => {\n if (this.GM.isRepetition(item.id)) {\n //点位数据不符合,直接跳过\n if (!item.longitude || !item.latitude) {\n console.warn(`点 经纬度 数据错误`);\n return false;\n }\n let gc = t.GM.getGraphic(item.id);\n let gp = t.GM.getGraphicParam(item.id);\n let cg = {\n width: 30,\n height: 30,\n labelContent: '',\n labelPixelX: 0,\n labelPixelY: 34,\n BAnimationType: 3,\n //默认点的偏移值就不同\n markerContentX: -15,\n markerContentY: -30,\n deg: 0,\n };\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n\n let text, icon, marker;\n let myImage = new Image(cg.width, cg.height);\n if (item.markerContent) {\n let overlay = t.state.gis.getOverlayById(item.id);\n let nodes = t.parseDom(item.markerContent)[0];\n nodes.addEventListener(\"click\", e => {\n t.clickGraphic(item.id,{\n ...e,\n pixel: [e.clientX,e.clientY]\n })\n })\n overlay.setElement(nodes);\n overlay.setPosition([parseFloat(item.longitude), parseFloat(item.latitude)]);\n t.state.gis.changed();\n } else {\n canvasDataURL(\n item.url || require(\"../images/defaultMarker.png\"),\n { width: cg.width, height: cg.height },\n function (base64) {\n myImage.src = base64;\n }\n )\n icon = new ol.style.Icon({\n anchor: [-cg.markerContentX, -cg.markerContentY],\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n // src: item.url || require(\"../images/defaultMarker.png\"),\n img: myImage,\n imgSize: [cg.width, cg.height],\n opacity: cg.opacity,\n scale: cg.scale || 1,\n rotation: Math.PI / 180 * cg.deg,\n })\n if (item.canShowLabel) {\n let textStyle = {\n textAlign: 'center', //对齐方式\n textBaseline: 'middle', //文本基线\n font: 'normal 12px 微软雅黑', //字体样式\n text: cg.labelContent, //文本内容\n offsetX: cg.labelPixelX, // x轴偏置\n offsetY: cg.labelPixelY, // Y轴偏置\n fill: new ol.style.Fill({\n //填充样式\n color: '#1890ff',\n }),\n backgroundFill: new ol.style.Fill({\n // 填充背景\n color: 'rgba(255, 255, 255, 1)',\n }),\n padding: [2, 5, 2, 5],\n ...(cg.labelStyle || {})\n }\n if(cg.labelStyle && cg.labelStyle.fill){\n textStyle['fill'] = new ol.style.Fill({\n color: cg.labelStyle.fill\n })\n }\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\n textStyle['backgroundFill'] = new ol.style.Fill({\n color: cg.labelStyle.backgroundFill\n })\n }\n text = new ol.style.Text(textStyle)\n }\n if (text) {\n gc.setStyle(new ol.style.Style({\n image: icon,\n text,\n }))\n } else {\n gc.setStyle(new ol.style.Style({\n image: icon,\n }))\n }\n }\n gc.setGeometry(new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]));\n this.GM.setGraphicParam(\n item.id,\n {\n attributes: { ...item, other: item },\n geometryType: 'point',\n geometry: {\n type: 'point',\n x: parseFloat(item.longitude),\n y: parseFloat(item.latitude)\n },\n source: gp.source\n }\n );\n } else {\n console.warn(`更新的点位id不存在!`);\n return false;\n }\n if (index < mapPoints.length - 1) {\n requestIdleCallback(() => dealPoint(mapPoints[++index]))\n } else {\n t.refresh();\n }\n }\n if (!isEmpty(mapPoints)) {\n requestIdleCallback(() => dealPoint(mapPoints[index]))\n }\n }\n // 点位样式\n getPointStyle(item){\n let t = this;\n let cg = {\n width: 30,\n height: 30,\n labelContent: '',\n labelPixelX: 0,\n labelPixelY: 34,\n markerContentX: -13,\n markerContentY: -42,\n zIndex: 100,\n deg: 0,\n scale: 1,\n };\n //初始化默认数据\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n // 覆盖物样式参数\n let style, icon, txt;\n\n let myImage = new Image(cg.width, cg.height);\n \n if (!!item.markerContent) {\n let nodes = t.parseDom(item.markerContent)[0];\n // 自定义图层需要把事件加在dom上\n nodes.addEventListener(\"click\", e => {\n t.clickGraphic(item.id,{\n ...e,\n pixel: [e.clientX,e.clientY],\n attributes: { ...item, other: item }\n })\n })\n // 创建地图自定义覆盖物\n let pop = new ol.Overlay({\n id: item.id,\n position: [parseFloat(item.longitude), parseFloat(item.latitude)],\n positioning: 'center-center',\n element: nodes,\n autoPanMargin: 20,\n autoPan: true,\n offset: [0, -20],\n insertFirst: true,\n });\n t.state.gis.addOverlay(pop);\n } else {\n let url = item.url || defaultMarker;\n let temp = t.imgCache.get(url);\n if(temp){\n console.log(item.id);\n myImage.src = temp;\n }else {\n // myImage.src = url;\n // t.imgCache.set(url, url);\n canvasDataURL(\n url,\n { width: cg.width, height: cg.height },\n function (base64) {\n myImage.src = base64;\n t.imgCache.set(url, base64);\n }\n )\n }\n \n // 创建地图要素图标样式\n style = new ol.style.Style({\n image: new ol.style.Icon({\n anchor: [-cg.markerContentX, -cg.markerContentY],\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n img: myImage,\n imgSize: [cg.width, cg.height],\n opacity: cg.opacity,\n scale: cg.scale || 1,\n }),\n });\n }\n if (!!item.canShowLabel && item.canShowLabel) {\n let textStyle = {\n textAlign: 'center', //对齐方式\n textBaseline: 'middle', //文本基线\n font: 'normal 12px 微软雅黑', //字体样式\n text: cg.labelContent, //文本内容\n offsetX: cg.labelPixelX, // x轴偏置\n offsetY: cg.labelPixelY, // Y轴偏置\n fill: new ol.style.Fill({\n //填充样式\n color: '#1890ff',\n }),\n backgroundFill: new ol.style.Fill({\n // 填充背景\n color: 'rgba(255, 255, 255, 1)',\n }),\n padding: [2, 5, 2, 5],\n ...(cg.labelStyle || {})\n }\n if(cg.labelStyle && cg.labelStyle.fill){\n textStyle['fill'] = new ol.style.Fill({\n color: cg.labelStyle.fill\n })\n }\n if(cg.labelStyle && cg.labelStyle.backgroundFill){\n textStyle['backgroundFill'] = new ol.style.Fill({\n color: cg.labelStyle.backgroundFill\n })\n }\n // 创建地图要素图标样式\n style = new ol.style.Style({\n image: new ol.style.Icon({\n anchor: [-cg.markerContentX, -cg.markerContentY],\n anchorXUnits: 'pixels',\n anchorYUnits: 'pixels',\n // src: item.url || require(\"../images/defaultMarker.png\"),\n img: myImage,\n imgSize: [cg.width, cg.height],\n opacity: cg.opacity,\n scale: cg.scale || 1,\n }),\n // 创建地图要素文字样式\n text: new ol.style.Text(textStyle),\n });\n }\n return style;\n }\n // 添加点位图层\n addPointLayer(points){\n let t = this;\n \n let features = [];\n points?.map(item=>{\n let feature = new ol.Feature({\n geometry: new ol.geom.Point([parseFloat(item.longitude), parseFloat(item.latitude)]),\n name: item.name,\n id: item.id,\n params: {\n ...item,\n },\n });\n feature.setId(item.id);\n\n let style = t.getPointStyle(item);\n\n feature.setStyle(style);\n features.push(feature);\n t.GM.setGraphic(item.id, feature).setGraphicParam(item.id, {\n attributes: { ...item, other: item },\n geometryType: 'point',\n geometry: {\n type: 'point',\n x: parseFloat(item.longitude),\n y: parseFloat(item.latitude),\n },\n });\n })\n if(t.pointFeatureLayer){\n let source = t.pointFeatureLayer.getSource();\n console.log(source);\n \n let oldFeatures = source.getFeatures();\n let newFeatures = [], updateFeatureIds = [];\n oldFeatures.map(feat=>{\n let obj = features.find(p=>p.getId() == feat.getId())\n if(obj){\n if(JSON.stringify(obj.getStyle()) !== JSON.stringify(feat.getStyle())){\n feat.setStyle(obj.getStyle());\n }\n if(JSON.stringify(obj.getGeometry()) !== JSON.stringify(feat.getGeometry())){\n feat.setGeometry(obj.getGeometry());\n }\n updateFeatureIds.push(feat.getId());\n }else {\n source.removeFeature(feat);\n }\n })\n newFeatures = features.filter(p=>!updateFeatureIds.includes(p.getId()));\n if(newFeatures.length>0){\n t.pointFeatureLayer.getSource().addFeatures(newFeatures);\n }\n // t.pointFeatureLayer.getSource().clear();\n // t.pointFeatureLayer.getSource().addFeatures(features);\n }else {\n let source = new ol.source.Vector({\n features: features,\n });\n let pointLayer = new ol.layer.Vector({\n name: 'point_layer',\n source,\n id: 'point_layer',\n zIndex: t.pointLayerZIndex\n });\n t.state.gis.addLayer(pointLayer);\n t.pointFeatureLayer = pointLayer;\n }\n \n t.refresh();\n }\n // 更新图层\n refresh(){\n const t = this;\n let timer = setTimeout(()=>{\n clearTimeout(timer);\n window.VtxMap[t.props.mapId].redrawText();\n },100)\n }\n // 添加先\n addLine(mapLines, type) {\n let t = this;\n let ls = [];\n let lsids = [...t.state.lineIds];\n //遍历添加线(图元)\n mapLines.map((item, index) => {\n //如果id重复,直接跳过不执行.\n if (this.GM.isRepetition(item.id)) {\n console.warn(`多折线id: ${item.id} 重复`);\n return false;\n }\n //多折线点位数据不符合,直接跳过\n if (!(item.paths && item.paths.length >= 2)) {\n console.warn(`多折线paths数据错误`);\n return false;\n }\n let cg = {\n color: '#277ffa',\n pellucidity: 0.9,\n lineWidth: 5,\n lineType: 'solid',\n isHidden: false,\n };\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n const style = new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: cg.color,\n width: cg.lineWidth,\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\n }),\n });\n let polyline = new ol.Feature({\n geometry: new ol.geom.LineString(item.paths),\n id: item.id,\n params: {\n ...item,\n },\n });\n polyline.setStyle(style);\n let source = new ol.source.Vector({\n features: [polyline],\n name: 'polyline',\n id: item.id,\n })\n let lineLayer = new ol.layer.Vector({\n name: 'polyline',\n id: item.id,\n source,\n zIndex: t.polylineLayerZIndex\n });\n t.state.gis.addLayer(lineLayer);\n //缓存图元的数据,便于后期操作\n let pts = item.paths.map((itt, ind) => {\n return [...itt];\n });\n this.GM.setGraphic(item.id, polyline).setGraphicParam(item.id, {\n attributes: {\n ...item,\n paths: pts,\n other: item,\n },\n geometryType: 'polyline',\n geometry: {\n type: 'polyline',\n paths: pts,\n },\n source: source,\n });\n ls.push(polyline);\n lsids.push(item.id);\n t.state.lineIds.push(item.id);\n });\n if (type !== 'defined') {\n t.state.lineIds = lsids;\n }\n }\n //更新线\n updateLine(mapLines) {\n let t = this;\n //遍历添加线(图元)\n mapLines.map((item, index) => {\n //判断图元是否存在.\n if (this.GM.isRepetition(item.id)) {\n //多折线点位数据不符合,直接跳过\n if (!(item.paths && item.paths.length >= 2)) {\n console.warn(`多折线paths数据错误`);\n return false;\n }\n //初始化默认参数\n let cg = {\n color: '#277ffa',\n pellucidity: 0.9,\n lineWidth: 5,\n lineType: 'solid',//'solid' 'dashed'\n isHidden: false\n }\n //获取原有的图元\n let gc = this.GM.getGraphic(item.id);\n let gp = this.GM.getGraphicParam(item.id);\n //重新初始化值\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n let pts = item.paths.map((itt, ind) => {\n return [...itt];\n });\n const style = new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: cg.color,\n width: cg.lineWidth,\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\n zIndex: cg.zIndex || 0,\n }),\n });\n gc.setStyle(() => {\n return style\n })\n gc.setGeometry(new ol.geom.LineString(pts));\n this.GM.setGraphicParam(item.id, {\n attributes: {\n ...item,\n paths: pts,\n other: item,\n },\n geometryType: 'polyline',\n geometry: {\n type: 'polyline',\n paths: pts,\n },\n source: gp.source,\n });\n } else {\n console.warn(`更新的多折线id不存在!`);\n return false;\n }\n });\n }\n //添加面\n addPolygon(mapPolygons) {\n let t = this;\n let pgs = [];\n let pgsids = [...t.state.polygonIds];\n //遍历添加面(图元)\n mapPolygons.map((item, index) => {\n //如果id重复,直接跳过不执行.\n if (this.GM.isRepetition(item.id)) {\n console.warn(`多边形id: ${item.id} 重复`);\n return false;\n }\n //多边形点位数据不符合,直接跳过\n if (!(item.rings && item.rings.length >= 3)) {\n console.warn(`多边形rings数据错误`);\n return false;\n }\n let cg = {\n lineType: 'solid',\n lineWidth: 5,\n lineColor: '#277ffa',\n lineOpacity: 1,\n color: '#fff',\n pellucidity: 0.5,\n };\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n const style = new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: cg.lineColor,\n width: cg.lineWidth,\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\n }),\n fill: new ol.style.Fill({\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\n }),\n });\n let polygon = new ol.Feature({\n geometry: new ol.geom.Polygon([item.rings]),\n id: item.id,\n params: {\n ...item,\n },\n name: 'polygon',\n });\n polygon.setStyle(style);\n let source = new ol.source.Vector({\n features: [polygon],\n id: item.id,\n })\n let polygonLayer = new ol.layer.Vector({\n name: 'polygon',\n id: item.id,\n source,\n zIndex: t.polygonLayerZIndex\n });\n t.state.gis.addLayer(polygonLayer);\n //缓存图元的数据,便于后期操作\n let pts = item.rings.map((itt, ind) => {\n return [...itt];\n });\n this.GM.setGraphic(item.id, polygon).setGraphicParam(item.id, {\n attributes: {\n ...item,\n rings: pts,\n other: item,\n },\n geometryType: 'polygon',\n geometry: {\n type: 'polygon',\n rings: pts,\n },\n source\n });\n pgs.push(polygon);\n pgsids.push(item.id);\n });\n t.state.polygonIds = pgsids;\n }\n //更新面\n updatePolygon(mapPolygons) {\n let t = this;\n mapPolygons.map((item, index) => {\n //判断图元是否存在.\n if (this.GM.isRepetition(item.id)) {\n //多边形点位数据不符合,直接跳过\n if (!(item.rings && item.rings.length >= 3)) {\n console.warn(`多边形rings数据错误`);\n return false;\n }\n //获取原有的图元\n let gc = this.GM.getGraphic(item.id);\n let gp = t.GM.getGraphicParam(item.id);\n //获取原有的面属性,转换key值\n let cg = {\n lineType: 'solid',\n lineWidth: 5,\n lineColor: '#277ffa',\n lineOpacity: 1,\n color: '#fff',\n pellucidity: 0.5\n };\n //重新初始化值\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n let pts = item.rings.map((itt, ind) => {\n return [...itt];\n });\n gc.setGeometry(new ol.geom.Polygon([pts]));\n gc.setStyle(new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: cg.lineColor,\n width: cg.lineWidth,\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\n }),\n fill: new ol.style.Fill({\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\n }),\n }))\n this.GM.setGraphicParam(item.id, {\n attributes: {\n ...item,\n rings: pts,\n other: item,\n },\n geometryType: 'polygon',\n geometry: {\n type: 'polygon',\n rings: pts,\n },\n source: gp.source\n });\n } else {\n console.warn(`更新的多边形id不存在!`);\n return false;\n }\n });\n }\n //添加圆 circle\n addCircle(mapCircles, type) {\n let t = this;\n let ccsids = [...t.state.circleIds];\n if (type) {\n ccsids = [...t.state.drawIds[type]];\n }\n mapCircles.map((item, index) => {\n //如果id重复,直接跳过不执行.\n if (t.GM.isRepetition(item.id)) {\n console.warn(`圆id: ${item.id} 重复`);\n return false;\n }\n //圆 点位数据不符合,直接跳过\n if (!item.longitude || !item.latitude) {\n console.warn(`圆 经纬度 数据错误`);\n return false;\n }\n let cg = {\n lineType: 'solid',\n lineWidth: 5,\n lineColor: '#277ffa',\n lineOpacity: 1,\n color: '#fff',\n pellucidity: 0.5\n // isHidden: false //后期需要在加\n }\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n const style = new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: cg.lineColor,\n width: cg.lineWidth,\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\n }),\n fill: new ol.style.Fill({\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\n }),\n });\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\n let circleRadius = item.radius / metersPerUnit;\n let circle = new ol.Feature({\n geometry: new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)),\n id: item.id,\n params: {\n ...item,\n },\n name: 'circle'\n });\n circle.setStyle(style);\n let source = new ol.source.Vector({\n features: [circle],\n name: 'circle',\n id: item.id,\n });\n let circleLayer = new ol.layer.Vector({\n name: 'circle',\n id: item.id,\n source,\n zIndex: t.polygonLayerZIndex\n });\n t.state.gis.addLayer(circleLayer);\n ccsids.push(item.id);\n t.GM.setGraphic(item.id, circle)\n .setGraphicParam(item.id, {\n attributes: { ...item, other: item },\n geometryType: 'circle',\n geometry: {\n type: 'circle',\n x: parseFloat(item.longitude),\n y: parseFloat(item.latitude),\n radius: parseFloat(item.radius)\n },\n source\n });\n });\n //添加绘制点\n if (type) {\n t.state.drawIds = {\n ...t.state.drawIds,\n [type]: ccsids\n }\n } else {\n t.state.circleIds = ccsids;\n }\n }\n //更新圆\n updateCircle(mapCircles) {\n let t = this;\n mapCircles.map((item, index) => {\n //判断图元是否存在.\n if (t.GM.isRepetition(item.id)) {\n //圆 点位数据不符合,直接跳过\n if (!item.longitude || !item.latitude) {\n console.warn(`圆 经纬度 数据错误`);\n return false;\n }\n } else {\n console.warn(`更新的圆id不存在!`);\n return false;\n }\n //获取原有的图元\n let gc = t.GM.getGraphic(item.id);\n let gp = t.GM.getGraphicParam(item.id);\n //获取原有的面属性,转换key值\n let cg = {\n lineType: 'solid',\n lineWidth: 5,\n lineColor: '#277ffa',\n lineOpacity: 1,\n color: '#fff',\n pellucidity: 0.5\n // isHidden: false //后期需要在加\n }\n if (item.config) {\n cg = { ...cg, ...item.config };\n }\n let metersPerUnit = t.state.gis.getView().getProjection().getMetersPerUnit();\n let circleRadius = item.radius / metersPerUnit;\n gc.setGeometry(new ol.geom.Circle([item.longitude, item.latitude], parseFloat(circleRadius)));\n gc.setStyle(new ol.style.Style({\n stroke: new ol.style.Stroke({\n color: cg.lineColor,\n width: cg.lineWidth,\n lineDash: cg.lineType == 'dashed' ? [2] : undefined,\n }),\n fill: new ol.style.Fill({\n color: cg.pellucidity ? getRgbColor(cg.color, cg.pellucidity) : cg.color,\n }),\n }))\n t.GM.setGraphicParam(item.id, {\n attributes: { ...item, other: item },\n geometryType: 'circle',\n geometry: {\n type: 'circle',\n x: parseFloat(item.longitude),\n y: parseFloat(item.latitude),\n radius: parseFloat(item.radius)\n },\n source: gp.source,\n });\n });\n //刷新图元\n }\n // 工具方法\n //删除图元\n removeGraphic(id, type) {\n let t = this;\n let graphic = t.GM.getGraphic(id);\n let gp = t.GM.getGraphicParam(id);\n //刪除label\n if (t.Label[id]) {\n t.Label[id].html.remove();\n delete t.Label[id];\n }\n if (!!graphic) {\n //清除聚合点 避免异常\n // t._cluster.removeMarker(this.GM.getGraphic(id));\n //清除地图中图元\n // const layers = t.state.gis.getLayers().getArray();\n // const layer = layers.filter(item => item.getProperties().name == type)[0];\n gp.source.removeFeature(graphic);\n // layer && layer.getSource().removeFeature(graphic);\n //清除对应id的图元数据缓存\n t.GM.removeGraphic(id);\n t.GM.removeGraphicParam(id);\n if(t.state.gis.getOverlayById(id)){\n t.state.gis.removeOverlay(t.state.gis.getOverlayById(id))\n }\n } else {\n return false;\n }\n for (let i = 0; i < t.movePoints.length; i++) {\n if (t.movePoints[i].id == id) {\n t.movePoints.splice(i, 1);\n continue;\n }\n }\n let ids = [];\n switch (type) {\n case 'point':\n ids = t.state.pointIds;\n break;\n case 'line':\n ids = t.state.lineIds;\n break;\n case 'polygon':\n ids = t.state.polygonIds;\n break;\n case 'circle':\n ids = t.state.circleIds;\n break;\n case 'draw':\n if (t.state.drawIds.point.indexOf(id) > -1) {\n t.state.drawIds.point.splice(t.state.drawIds.point.indexOf(id), 1);\n }\n if (t.state.drawIds.polyline.indexOf(id) > -1) {\n t.state.drawIds.polyline.splice(t.state.drawIds.polyline.indexOf(id), 1);\n }\n if (t.state.drawIds.polygon.indexOf(id) > -1) {\n t.state.drawIds.polygon.splice(t.state.drawIds.polygon.indexOf(id), 1);\n }\n if (t.state.drawIds.circle.indexOf(id) > -1) {\n t.state.drawIds.circle.splice(t.state.drawIds.circle.indexOf(id), 1);\n }\n if (t.state.drawIds.rectangle.indexOf(id) > -1) {\n t.state.drawIds.rectangle.splice(t.state.drawIds.rectangle.indexOf(id), 1);\n }\n break;\n default:\n if (t.state.pointIds.indexOf(id) > -1) {\n t.state.pointIds.splice(t.state.pointIds.indexOf(id), 1);\n }\n if (t.state.lineIds.indexOf(id) > -1) {\n t.state.lineIds.splice(t.state.lineIds.indexOf(id), 1);\n }\n if (t.state.polygonIds.indexOf(id) > -1) {\n t.state.polygonIds.splice(t.state.polygonIds.indexOf(id), 1);\n }\n if (t.state.circleIds.indexOf(id) > -1) {\n t.state.circleIds.splice(t.state.circleIds.indexOf(id), 1);\n }\n break;\n }\n if (id == t.state.editId) {\n t.state.editId = '';\n }\n if (ids.indexOf(id) != -1) {\n ids.splice(ids.indexOf(id), 1);\n }\n }\n //清空地图\n clearAll() {\n let t = this;\n const { gis } = t.state;\n const layers = gis.getLayers();\n //清空热力图\n if (t.heatmap) {\n let hMap = layers.filter(item => item.name == 'heatMap')[0];\n hMap.getSource().clear();\n gis.removeLayer(layer);\n }\n t.heatmap = null;\n t.movePoints = [];\n\n t.state.pointIds = [];\n t.pointLayers.map(item => {\n gis.removeLayer(item.layer)\n t.pointLayers = [];\n })\n\n t.clearAllPointCollection();\n t.closeDraw();\n if(t.clusterInfo.clusterHulls || t.clusterInfo.clusters || t.clusterInfo.clusterCircles){\n t.clusterHulls.getSource().clear();\n t.clusterInfo.clusterSource = null;\n gis.removeLayer(t.clusterInfo.clusterHulls);\n gis.removeLayer(t.clusterInfo.clusters);\n gis.removeLayer(t.clusterInfo.clusterCircles);\n t.clusterInfo.clusterHulls= null;\n t.clusterInfo.clusters = null;\n t.clusterInfo.clusterCircles = null;\n }\n //清空缓存数据\n t.GM.clearAll();\n //循环所有id删除\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\n //拷贝数组,避免原数组操作,影响循环\n let ps = [...pointIds],\n ls = [...lineIds],\n pgs = [...polygonIds],\n cs = [...circleIds];\n // 删除点\n for (let i = 0; i < ps.length; i++) {\n t.removeGraphic(ps[i], 'point');\n }\n // 删除线\n for (let i = 0; i < ls.length; i++) {\n t.removeGraphic(ls[i], 'line');\n }\n // 删除面\n for (let i = 0; i < pgs.length; i++) {\n t.removeGraphic(pgs[i], 'polygon');\n }\n // 删除圆\n for (let i = 0; i < cs.length; i++) {\n t.removeGraphic(cs[i], 'circle');\n }\n //删除绘制的点\n let { point, polyline, polygon, circle, rectangle } = drawIds;\n for (let i = 0; i < point.length; i++) {\n t.removeGraphic(point[i]);\n }\n for (let i = 0; i < polyline.length; i++) {\n t.removeGraphic(polyline[i]);\n }\n for (let i = 0; i < polygon.length; i++) {\n t.removeGraphic(polygon[i]);\n }\n for (let i = 0; i < circle.length; i++) {\n t.removeGraphic(circle[i]);\n }\n for (let i = 0; i < rectangle.length; i++) {\n t.removeGraphic(rectangle[i]);\n }\n }\n //展示比例尺\n showControl(props) {\n let t = this;\n const { gis } = t.state;\n const config = props.showControl ;\n if (t.scaleControl) {\n gis.removeControl(t.scaleControl);\n }\n t.scaleControl = new ol.control.ScaleLine({\n units: 'metric',\n //设置度量单位\n className: `ol-scale-line-${config.location}`\n });\n gis.addControl(t.scaleControl);\n setTimeout(function (){\n if(config.location == 'tl'){\n $(`div.ol-scale-line-${config.location}`).css({\n position: 'absolute',\n left: config.offset?config.offset[0]:0+65,\n top: config.offset?config.offset[1]:0,\n textAlign: 'center',\n })\n }else if(config.location == 'bl'){\n $(`div.ol-scale-line-${config.location}`).css({\n position: 'absolute',\n left: config.offset?config.offset[0]:0+65,\n bottom: config.offset?config.offset[1]:0,\n textAlign: 'center',\n })\n }else if(config.location == 'tr'){\n $(`div.ol-scale-line-${config.location}`).css({\n position: 'absolute',\n right: config.offset?config.offset[0]:0+65,\n top: config.offset?config.offset[1]:0,\n textAlign: 'center',\n })\n }else if(config.location == 'br'){\n $(`div.ol-scale-line-${config.location}`).css({\n position: 'absolute',\n right: config.offset?config.offset[0]:0+65,\n bottom: config.offset?config.offset[1]:0,\n textAlign: 'center',\n })\n }\n }, 20)\n }\n //设置区域限制\n setAreaRestriction(areaRestriction) {\n let t = this;\n let { _extent: _et } = t.dealData(areaRestriction);\n t.areaRestriction = t.state.gis.getView().setProperties({\n extent: [_et.xmax, _et.ymax, _et.xmin, _et.ymin],\n }, false);\n }\n //关闭区域限制\n clearAreaRestriction() {\n let t = this;\n t.areaRestriction = null;\n }\n //区域限制逻辑\n dealAreaRestriction(e) {\n let t = this;\n //如果在区域内,不处理\n if (t.areaRestriction.contains(e.extent.getCenter())) {\n return;\n }\n // if(t.containsExtent(t.areaRestriction,e.extent)){\n // return;\n // }\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = t.areaRestriction;\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e.extent;\n let x = e.extent.getCenter().x,\n y = e.extent.getCenter().y;\n if (x < xmin1) x = xmin1 + 0.1;\n if (x > xmax1) x = xmax1 - 0.1;\n if (y < ymin1) y = ymin1 + 0.1;\n if (y > ymax1) y = ymax1 - 0.1;\n t.state.gis.getView().setCenter([x, y]);\n }\n //聚合地图图元(arg为空时聚合全部点)\n cluster(arg){\n let t = this;\n let ary = [];\n if(!arg){\n let {pointIds} = t.state;\n ary = pointIds;\n }else{\n if(Object.prototype.toString.apply(arg) === '[object Array]'){\n ary = arg;\n }else if(typeof arg === 'string'){\n ary = arg.split(',');\n }\n }\n t.pointLayers.map(item => {\n t.state.gis.removeLayer(item.layer);\n t.pointLayers=[];\n })\n let ms = this.GM.getMoreGraphic(ary).filter((item,index)=>{\n // return !item && item != 0 ? false : true;\n return item && item.getGeometry().getType() === 'Point' && !item.label;\n });\n const source = new ol.source.Vector({\n features: ms\n })\n t.clusterInfo.clusterSource = new ol.source.Cluster({\n distance: 80,\n minDistance: 0,\n source\n });\n if (t.clusterInfo.clusterHulls) {\n t.clusterInfo.clusterHulls.setSource(t.clusterInfo.clusterSource)\n } else {\n t.clusterInfo.clusterHulls = new ol.layer.Vector({\n source: t.clusterInfo.clusterSource,\n style: clusterHullStyle,\n zIndex: t.polygonLayerZIndex\n });\n t.state.gis.addLayer(t.clusterInfo.clusterHulls);\n }\n \n if (t.clusterInfo.clusters) {\n t.clusterInfo.clusters.setSource(t.clusterInfo.clusterSource)\n } else {\n t.clusterInfo.clusters = new ol.layer.Vector({\n source: t.clusterInfo.clusterSource,\n style: clusterStyle,\n zIndex: t.polygonLayerZIndex\n });\n t.state.gis.addLayer(t.clusterInfo.clusters);\n }\n if (t.clusterInfo.clusterCircles) {\n t.clusterInfo.clusterCircles.setSource(t.clusterInfo.clusterSource)\n } else {\n t.clusterInfo.clusterCircles = new ol.layer.Vector({\n source: t.clusterInfo.clusterSource,\n style: clusterCircleStyle,\n zIndex: t.polygonLayerZIndex\n });\n t.state.gis.addLayer(t.clusterInfo.clusterCircles);\n }\n\n \n function clusterMemberStyle(clusterMember) {\n let style = clusterMember.getStyle();\n let image = style&&style.getImage ? style.getImage() : null;\n let text = style&&style.getText ? style.getText() : null;\n return new ol.style.Style({\n image: image,\n text: text\n });\n }\n function clusterCircleStyle(cluster, resolution) {\n if (cluster !== t.clusterInfo.clickFeature || resolution !== t.clusterInfo.clickResolution) {\n return;\n }\n const clusterMembers = cluster.get('features');\n const centerCoordinates = cluster.getGeometry().getCoordinates();\n return generatePointsCircle(\n clusterMembers.length,\n cluster.getGeometry().getCoordinates(),\n resolution,\n ).reduce((styles, coordinates, i) => {\n const point = new ol.geom.Point(coordinates);\n const line = new ol.geom.LineString([centerCoordinates, coordinates]);\n styles.unshift(\n new ol.style.Style({\n geometry: line,\n stroke: new ol.style.Stroke({\n color: 'rgba(204, 85, 0, 1)',\n width: 1.5,\n }),\n }),\n );\n styles.push(\n clusterMemberStyle(\n new ol.Feature({\n ...clusterMembers[i].getProperties(),\n geometry: point,\n }),\n ),\n );\n return styles;\n }, []);\n }\n function generatePointsCircle(count, clusterCenter, resolution) {\n const circumference = 1 * 28 * (2 + count);\n let legLength = circumference / (Math.PI * 2); //radius from circumference\n const angleStep = (Math.PI * 2) / count;\n const res = [];\n let angle;\n legLength = Math.max(legLength, 35) * resolution; // Minimum distance to get outside the cluster icon.\n for (let i = 0; i < count; ++i) {\n // Clockwise, like spiral.\n angle = Math.PI / 2 + i * angleStep;\n res.push([\n clusterCenter[0] + legLength * Math.cos(angle),\n clusterCenter[1] + legLength * Math.sin(angle),\n ]);\n }\n return res;\n }\n function clusterHullStyle(cluster) {\n if (cluster !== t.clusterInfo.hoverFeature) {\n return;\n }\n const originalFeatures = cluster.get('features');\n const points = originalFeatures.map(feature => feature.getGeometry().getCoordinates());\n return new ol.style.Style({\n geometry: new ol.geom.Polygon(points),\n fill: new ol.style.Fill({\n color: 'rgba(255, 153, 0, 0.4)',\n }),\n stroke: new ol.style.Stroke({\n color: 'rgba(204, 85, 0, 1)',\n width: 1.5,\n }),\n });\n }\n function clusterStyle(feature) {\n const size = feature.get('features').length;\n if (size > 2) {\n return [\n new ol.style.Style({\n image: new ol.style.Circle({\n radius: 20,\n fill: new ol.style.Fill({\n color: 'rgba(255, 153, 102, 0.3)',\n }),\n }),\n }),\n new ol.style.Style({\n image: new ol.style.Circle({\n radius: 14,\n fill: new ol.style.Fill({\n color: 'rgba(255, 165, 0, 0.7)',\n }),\n }),\n text: new ol.style.Text({\n text: size.toString(),\n fill: new ol.style.Fill({\n color: '#fff',\n }),\n stroke: new ol.style.Stroke({\n color: 'rgba(0, 0, 0, 0.6)',\n width: 3,\n }),\n }),\n }),\n ];\n } else {\n return feature.get('features').map(originalFeature => clusterMemberStyle(originalFeature))\n }\n }\n }\n clearCluster(arg){\n const t = this;\n let ids = (arg && arg?.length>0) ? arg : t.state.pointIds;\n if(t.clusterInfo.clusterHulls){\n t.state.gis.removeLayer(t.clusterInfo.clusterHulls);\n t.clusterInfo.clusterHulls = null;\n }\n if(t.clusterInfo.clusters){\n t.state.gis.removeLayer(t.clusterInfo.clusters);\n t.clusterInfo.clusters = null;\n }\n if(t.clusterInfo.clusterCircles){\n t.state.gis.removeLayer(t.clusterInfo.clusterCircles);\n t.clusterInfo.clusterCircles = null;\n }\n ids.map(id=>{\n if(t.GM.getGraphic(id)){\n t.GM.removeGraphic(id);\n }\n t.state.pointIds.splice(t.state.pointIds.indexOf(id),1)\n })\n t.addPoint(t.props.mapPoints)\n t.refresh();\n }\n /*公共方法*/\n //判断extent1是否在extent2内部\n containsExtent(e1, e2) {\n let { xmin: xmin1, xmax: xmax1, ymin: ymin1, ymax: ymax1 } = e1;\n let { xmin: xmin2, xmax: xmax2, ymin: ymin2, ymax: ymax2 } = e2;\n return xmin2 > xmin1 && xmax2 < xmax1 && ymin2 > ymin1 && ymax2 < ymax1;\n }\n //将图元z-index设置成最高\n czIndex(id) {\n let t = this;\n $(`#${t.props.mapId}_graphics_layer`).append(t.GM.getGraphic(id).getNode());\n }\n equalsPoint(a, b) {\n return a.x == b.x && a.y == b.y;\n }\n //计算2点间距离 单位m 精确到2位小数\n calculatePointsDistance(fp, ep) {\n console.log(fp, ep)\n let distance = ol.sphere.getDistance(fp, ep);\n console.log(distance)\n return Math.round(distance);\n }\n //计算多个点的距离(常用于线计算)\n calculateDistance(ps) {\n let t = this,\n totalDistance = 0;\n if (ps.length < 0) {\n return 0;\n }\n for (let i = 0; i < ps.length; i++) {\n if (i < ps.length - 1) {\n const distance = t.calculatePointsDistance(ps[i], ps[i + 1])\n console.log(distance)\n totalDistance += distance;\n }\n }\n console.log(totalDistance)\n return Math.round(totalDistance * 100) / 100;\n }\n //处理线和面的 经纬度数据\n dealData(paths) {\n //区别点和圆的经纬度数据处理\n let lnglatAry = [],\n _extent = { xmax: 0, xmin: 0, ymax: 0, ymin: 0 },\n path = [];\n path = paths.map((item, index) => {\n let lng = item[0],\n lat = item[1];\n if (lng > _extent.xmax) {\n _extent.xmax = lng;\n }\n if (lng < _extent.xmin || _extent.xmin == 0) {\n _extent.xmin = lng;\n }\n if (lat > _extent.ymax) {\n _extent.ymax = lat;\n }\n if (lat < _extent.ymin || _extent.ymin == 0) {\n _extent.ymin = lat;\n }\n lnglatAry.push({\n lngX: lng,\n latX: lat,\n });\n return [lng, lat];\n });\n return { lnglatAry, _extent, path };\n }\n //处理点位图元的添加 和 更新\n dealLabelGraphics(id, label) {\n let t = this;\n if (label) {\n let position = (t.GM.getGraphic(id) || {}).geometry || label.position;\n //经纬度转top和left\n let tl = t.state.gis.toScreen(position),\n lbl = { ...label };\n //渲染優化\n if (\n !(tl.y < -50 || tl.x < -50 || tl.y > t.state.gis.height || tl.x > t.state.gis.width)\n ) {\n //设置label的位置(通过定位来实现)\n label.html.css({\n position: 'absolute',\n top: tl.y + (label.offset.y || 0) - t.labelLayer.y,\n left: tl.x + (label.offset.x || 0) - t.labelLayer.x,\n });\n //添加点位到(地图)\n $(`#${t.htmlPointsId}`).append(label.html);\n lbl.add = true;\n } else {\n lbl.add = false;\n }\n //记录下label的dom对象,用于后期修改和删除(基本是删除)\n t.Label[id] = lbl;\n }\n }\n //点的跳动动画\n pointAnimation(id, marker) {\n let t = this;\n //null时关闭跳动\n if (!!marker) {\n if (t.animTimer[id]) {\n clearInterval(t.animTimer[id]);\n }\n t.animTimer[id] = setInterval(() => {\n //点被隐藏时,没有执行,定时不关\n if (marker.symbol) {\n let shape = { ...marker.symbol };\n //初始数据 点位有变动,重新刷新数据\n if (!t.animCount[id] || shape.yoffset != t.animCount[id].now) {\n t.animCount[id] = {\n start: shape.yoffset,\n now: shape.yoffset,\n notation: -1,\n };\n }\n if (t.animCount[id].now - t.animCount[id].start == 20) {\n t.animCount[id].notation = -1;\n }\n if (t.animCount[id].now - t.animCount[id].start == 0) {\n t.animCount[id].notation = 1;\n }\n shape.yoffset = t.animCount[id].now =\n t.animCount[id].now + t.animCount[id].notation * 2;\n marker.symbol.setOffset(shape.xoffset, shape.yoffset);\n t.state.gis.graphics.refresh();\n }\n }, 35);\n } else {\n clearInterval(t.animTimer[id]);\n }\n }\n moveAnimation() {\n let t = this;\n if (t.moveToTimer) {\n clearInterval(t.moveToTimer);\n }\n t.moveToTimer = setInterval(() => {\n for (let i = 0; i < t.movePoints.length; i++) {\n t.movePoints[i].waitTime += 10;\n t.movePoints[i].deleteTime -= 10;\n }\n t.movePoints.sort((x, y) => {\n return y.waitTime - x.waitTime;\n });\n let nowMovePoints = t.movePoints.slice(0, 10),\n deleteIndex = [];\n for (let i = 0; i < nowMovePoints.length; i++) {\n let { id, rx, ry, waitTime, deleteTime, ddeg } = nowMovePoints[i];\n let gc = t.GM.getGraphic(id);\n if (!gc || !gc._graphicsLayer) {\n clearInterval(t.moveToTimer);\n } else {\n let gg = gc.getGeometry();\n let tx = gg[0] + rx, ty = gg[1] + ry;\n gc.setGeometry([tx, ty])\n t.movePoints[i].waitTime = 0;\n if (deleteTime <= 0) {\n deleteIndex.push(i);\n }\n }\n }\n deleteIndex.sort((a, b) => { return b - a });\n for (let i = 0; i < deleteIndex.length; i++) {\n t.movePoints.splice(deleteIndex[i], 1);\n }\n if (nowMovePoints.length == 0) {\n clearInterval(t.moveToTimer);\n }\n }, 10);\n }\n //点位移动动画效果\n moveTo(id, lnglat, delay, autoRotation, urlright, urlleft) {\n delay = delay || 3;\n let t = this,\n timer = 10;\n delay = eval(delay) * 1000;\n let count = delay / timer,\n gc = this.GM.getGraphic(id);\n let s = gc.geometry,\n e = { x: lnglat[0], y: lnglat[1] };\n if (t.equalsPoint(s, e)) {\n return false;\n } else {\n let ddeg = 0,\n url = null;\n //计算角度,旋转\n if (autoRotation) {\n //自己实现旋转\n ddeg = t.rotateDeg(gc.geometry, lnglat);\n if (urlleft && ddeg < -90 && ddeg > -270) {\n ddeg += 180;\n url = urlleft;\n } else {\n url = urlright;\n }\n gc.setStyle(new ol.style.Style({\n image: new ol.style.Icon({\n src: url,\n rotation: Math.PI / 180 * ddeg,\n })\n }))\n }\n //拆分延迟移动定位\n let rx = (e.x - s.x) / count,\n ry = (e.y - s.y) / count;\n let isHave = false;\n for (let i = 0; i < t.movePoints.length; i++) {\n if (t.movePoints[i].id == id) {\n t.movePoints.splice(i, 1, {\n id,\n rx,\n ry,\n waitTime: 0,\n deleteTime: delay,\n });\n isHave = true;\n }\n }\n if (!isHave) {\n t.movePoints.push({\n id,\n rx,\n ry,\n waitTime: 0,\n deleteTime: delay,\n });\n }\n }\n }\n //点位角度旋转(以指向东(右)为0°)\n rotateDeg(sp, ep) {\n let t = this;\n let spLngLat = sp;\n if (Array.isArray(sp)) {\n spLngLat = new ol.geom.Point(sp[0], sp[1]);\n }\n let s = t.state.gis.getPixelFromCoordinate(spLngLat),\n //获取当前点位的经纬度\n e = t.state.gis.getPixelFromCoordinate(new ol.geom.Point(ep[0], ep[1])),\n deg = 0;\n if (e.x != s.x) {\n var tan = (e.y - s.y) / (e.x - s.x),\n atan = Math.atan(tan);\n deg = (atan * 360) / (2 * Math.PI);\n //degree correction;\n if (e.x < s.x) {\n deg = -deg + 90 + 90;\n } else {\n deg = -deg;\n }\n deg = -deg;\n } else {\n var disy = e.y - s.y;\n var bias = 0;\n if (disy > 0) bias = -1;\n else bias = 1;\n if (disy == 0) bias = 0;\n deg = -bias * 90;\n }\n return deg;\n }\n //对比对象数据是否相等\n deepEqual(a, b) {\n return Immutable.is(Immutable.fromJS(a), Immutable.fromJS(b));\n }\n //数据解析(分析,新增,更新,删除对应的数据)\n dataMatch(oldData, newData, type) {\n let onlyOldData = Set(oldData)\n .subtract(Set(newData))\n .toJS();\n let onlyNewData = Set(newData)\n .subtract(Set(oldData))\n .toJS();\n let onlyOldIDs = onlyOldData.map(item => item[type]);\n let onlyNewIDs = onlyNewData.map(item => item[type]);\n let updateDataIDs = Set(onlyOldIDs)\n .intersect(Set(onlyNewIDs))\n .toJS();\n let updatedData = onlyNewData.filter(item => updateDataIDs.indexOf(item[type]) > -1);\n let replacedData = onlyOldData.filter(item => updateDataIDs.indexOf(item[type]) > -1);\n let deletedDataIDs = onlyOldIDs.filter(oldID => updateDataIDs.indexOf(oldID) == -1);\n let addedData = onlyNewData.filter(item => updateDataIDs.indexOf(item[type]) == -1);\n\n return { deletedDataIDs, addedData, updatedData, replacedData };\n }\n //处理需要增加图元的数据(避免意外问题)\n dealAdd(ary, ids) {\n let ads = [],\n otherupds = [];\n for (let i = 0; i < ary.length; i++) {\n if (ids.indexOf(ary[i].id) > -1) {\n otherupds.push(ary[i]);\n } else {\n ads.push(ary[i]);\n }\n }\n return { ads, otherupds };\n }\n //处理需要更新图元的数据(避免意外问题)\n dealUpdate(ary, ids) {\n let upds = [],\n otherads = [];\n for (let i = 0; i < ary.length; i++) {\n if (ids.indexOf(ary[i].id) > -1) {\n upds.push(ary[i]);\n } else {\n otherads.push(ary[i]);\n }\n }\n return { upds, otherads };\n }\n\n render() {\n let t = this;\n let _map = this.props;\n return <div id={_map.mapId} style={{ width: '100%', height: '100%' }}></div>;\n }\n //初始化\n componentDidMount() {\n let t = this;\n t.loadMapComplete.then(() => {\n t.init();\n });\n }\n //已加载组件,收到新的参数时调用\n UNSAFE_componentWillReceiveProps(nextProps, prevProps) {\n let t = this;\n //点/线旧数据\n let { pointIds, lineIds, polygonIds, circleIds, drawIds } = t.state;\n let { point, polyline, polygon, circle, rectangle } = drawIds;\n //点/线新数据\n let {\n mapPoints = [], mapLines = [], mapPolygons = [], mapCircles = [], customizedBoundary = [],\n isOpenTrafficInfo, boundaryName, heatMapData,\n mapVisiblePoints, setVisiblePoints,\n setCenter, mapCenter,\n setZoomLevel, mapZoomLevel,\n setCluster, mapCluster,\n isRangingTool, mapRangingTool,\n isRemove, mapRemove,\n mapDraw, isDraw, isCloseDraw,\n editGraphicId, isDoEdit, isEndEdit,\n mapPointCollection, isclearAllPointCollection,\n isSetAreaRestriction, areaRestriction, isClearAreaRestriction,\n isClearAll, olProps, pointsFeature=[]\n } = nextProps;\n // 等待地图加载\n if (!t.mapCreated) return;\n /*点数据处理\n pointData[2]相同的点,执行刷新\n pointData[1]的数据在idsForGraphicId中不存在的,执行新增\n pointData[0]数据中多余的id,执行删除\n */\n if (pointsFeature instanceof Array && !t.deepEqual(pointsFeature, t.props.pointsFeature)){\n t.addPointLayer(pointsFeature);\n }\n if (mapPoints instanceof Array && t.props.mapPoints instanceof Array && !t.deepEqual(mapPoints, t.props.mapPoints)) {\n let oldMapPoints = t.props.mapPoints;\n let newMapPoints = mapPoints;\n //过滤编辑的图元\n if (!!t.editId) {\n oldMapPoints = t.props.mapPoints.filter((item) => { return item.id !== editGraphicId });\n newMapPoints = mapPoints.filter((item) => { return item.id !== editGraphicId });\n }\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPoints, newMapPoints, 'id');\n let { ads, otherupds } = t.dealAdd(addedData, [...pointIds, ...point]);\n let { upds, otherads } = t.dealUpdate(updatedData, [...pointIds, ...point]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n let index = 0;\n const removeGraphic = (id) => {\n t.removeGraphic(id, 'point');\n if (index < deletedDataIDs.length -1) {\n requestIdleCallback(() => removeGraphic(deletedDataIDs[++index]))\n }\n }\n if (!isEmpty(deletedDataIDs)) {\n removeGraphic(deletedDataIDs[index])\n }\n //增加\n t.addPoint([...ads, ...otherads]);\n //更新\n t.updatePoint([...upds, ...otherupds]);\n }\n /*\n 线数据处理\n 先全删除,再新增\n */\n if (mapLines instanceof Array && t.props.mapLines instanceof Array && !t.deepEqual(mapLines, t.props.mapLines)) {\n let oldMapLines = t.props.mapLines;\n let newMapLines = mapLines;\n if (!!t.editId) {\n oldMapLines = t.props.mapLines.filter((item) => { return item.id !== editGraphicId });\n newMapLines = mapLines.filter((item) => { return item.id !== editGraphicId });\n }\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapLines, newMapLines, 'id');\n let { ads, otherupds } = t.dealAdd(addedData, [...lineIds, ...polyline]);\n let { upds, otherads } = t.dealUpdate(updatedData, [...lineIds, ...polyline]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for (let id of deletedDataIDs) {\n t.removeGraphic(id, 'line');\n }\n //增加\n t.addLine([...ads, ...otherads]);\n //更新\n t.updateLine([...upds, ...otherupds]);\n }\n /*\n 面数据处理\n 先全删除,再新增\n */\n if (mapPolygons instanceof Array && t.props.mapPolygons instanceof Array && !t.deepEqual(mapPolygons, t.props.mapPolygons)) {\n let oldMapPolygons = t.props.mapPolygons;\n let newMapPolygons = mapPolygons;\n if (!!t.editId) {\n oldMapPolygons = t.props.mapPolygons.filter((item) => { return item.id !== editGraphicId });\n newMapPolygons = mapPolygons.filter((item) => { return item.id !== editGraphicId });\n }\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapPolygons, newMapPolygons, 'id');\n let { ads, otherupds } = t.dealAdd(addedData, [...rectangle, ...polygon, ...polygonIds]);\n let { upds, otherads } = t.dealUpdate(updatedData, [...rectangle, ...polygon, ...polygonIds]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for (let id of deletedDataIDs) {\n t.removeGraphic(id, 'polygon');\n }\n //增加\n t.addPolygon([...ads, ...otherads]);\n //更新\n t.updatePolygon([...upds, ...otherupds]);\n }\n /*\n 圆数据处理\n 先全删除,再新增\n */\n if (mapCircles instanceof Array && t.props.mapCircles instanceof Array && !t.deepEqual(mapCircles, t.props.mapCircles)) {\n let oldMapCircles = t.props.mapCircles;\n let newMapCircles = mapCircles;\n if (!!t.editId) {\n oldMapCircles = t.props.mapCircles.filter((item) => { return item.id !== editGraphicId });\n newMapCircles = mapCircles.filter((item) => { return item.id !== editGraphicId });\n }\n let { deletedDataIDs, addedData, updatedData } = t.dataMatch(oldMapCircles, newMapCircles, 'id');\n let { ads, otherupds } = t.dealAdd(addedData, [...circleIds, ...circle]);\n let { upds, otherads } = t.dealUpdate(updatedData, [...circleIds, ...circle]);\n //删在增之前,(因为增加后会刷新pointIds的值,造成多删的问题)\n for (let id of deletedDataIDs) {\n t.removeGraphic(id, 'circle');\n }\n //增加\n t.addCircle([...ads, ...otherads]);\n //更新\n t.updateCircle([...upds, ...otherupds]);\n }\n //图元编辑调用\n if ((typeof (isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)) {\n t.doEdit(editGraphicId);\n }\n // 获取热力图\n if (heatMapData && heatMapData.data && !t.deepEqual(heatMapData, t.props.heatMapData)) {\n t.heatMapOverlay(heatMapData);\n }else if(!t.deepEqual(heatMapData, t.props.heatMapData)){\n t.clearHeatMap(heatMapData);\n }\n //清空地图\n if ((typeof (isClearAll) == 'boolean' && isClearAll) || (isClearAll && isClearAll !== t.props.isClearAll)) {\n t.clearAll();\n }\n //测距工具调用\n if ((typeof (isRangingTool) == 'boolean' && isRangingTool) || (isRangingTool && isRangingTool !== t.props.isRangingTool)) {\n t.vtxRangingTool(mapRangingTool);\n }\n /*设置指定图元展示*/\n if ((typeof (setVisiblePoints) == 'boolean' && setVisiblePoints) || (setVisiblePoints && setVisiblePoints !== t.props.setVisiblePoints)) {\n t.setVisiblePoints(mapVisiblePoints);\n }\n //设置中心点\n // if ((typeof (setCenter) == 'boolean' && setCenter) || (setCenter && setCenter !== t.props.setCenter)) {\n // if (!(t.getCurrentCenter().lng == mapCenter[0] && t.getCurrentCenter().lat == mapCenter[1])) {\n // t.setCenter(mapCenter);\n // }\n // }\n if(nextProps.mapCenter &&nextProps.mapCenter.length>0 && JSON.stringify(nextProps.mapCenter)!==JSON.stringify(this.props.mapCenter)){\n t.setCenter(mapCenter);\n }\n //设置点聚合\n if ((typeof (setCluster) == 'boolean' && setCluster) || (setCluster && setCluster !== t.props.setCluster)) {\n t.cluster(mapCluster);\n }\n\n if(!setCluster && setCluster !== t.props.setCluster){\n t.clearCluster(mapCluster);\n }\n //图元编辑调用\n if ((typeof (isDoEdit) == 'boolean' && isDoEdit) || (isDoEdit && isDoEdit !== t.props.isDoEdit)) {\n t.doEdit(editGraphicId);\n }\n //关闭图元编辑\n if ((typeof (isEndEdit) == 'boolean' && isEndEdit) || (isEndEdit && isEndEdit !== t.props.isEndEdit)) {\n t.endEdit();\n }\n //绘制图元\n if ((typeof (isDraw) == 'boolean' && isDraw) || (isDraw && isDraw !== t.props.isDraw)) {\n t.draw(mapDraw);\n }\n //关闭绘制\n if ((typeof (isCloseDraw) == 'boolean' && isCloseDraw) || (isCloseDraw && isCloseDraw !== t.props.isCloseDraw)) {\n t.closeDraw();\n }\n //单独删除操作\n if ((typeof (isRemove) == 'boolean' && isRemove) || (isRemove && isRemove !== t.props.isRemove)) {\n mapRemove.map((item, index) => {\n t.removeGraphic(item.id, item.type);\n });\n }\n //设置区域限制\n if ((typeof (isSetAreaRestriction) == 'boolean' && isSetAreaRestriction)\n || (isSetAreaRestriction && isSetAreaRestriction !== t.props.isSetAreaRestriction)\n && areaRestriction && !!areaRestriction[0] && !!areaRestriction[1]) {\n t.setAreaRestriction(areaRestriction);\n }\n //关闭区域限制\n if ((typeof (isClearAreaRestriction) == 'boolean' && isClearAreaRestriction) || (isClearAreaRestriction && isClearAreaRestriction !== t.props.isClearAreaRestriction)) {\n t.clearAreaRestriction();\n }\n // 设置地图层级\n if((typeof(setZoomLevel) == 'boolean' && setZoomLevel) || (setZoomLevel && setZoomLevel !== t.props.setZoomLevel)){\n t.setZoomLevel(mapZoomLevel);\n }\n // 比例尺控件位置改变\n if(nextProps.showControl && JSON.stringify(nextProps.showControl)!=JSON.stringify(t.props.showControl)){\n t.showControl(nextProps);\n }\n // 更新需要加载的图层\n if(nextProps.olProps && JSON.stringify(nextProps.olProps) !== JSON.stringify(t.props.olProps)) {\n t.loadLayers(nextProps.olProps.olCoverage, t.props.olProps.olCoverage);\n }\n }\n // 地图事件\n //地图点击事件\n clickMap(e) {\n let t = this;\n if (typeof t.props.clickMap === 'function') {\n let obj = t.getMapExtent();\n obj.e = e;\n obj.clickLngLat = {\n lng: e.coordinate ? e.coordinate[0] : undefined,\n lat: e.coordinate ? e.coordinate[1] : undefined,\n };\n obj.pixel = {\n x: e.pixel ? e.pixel[0] : undefined,\n y: e.pixel ? e.pixel[1] : undefined,\n };\n let temp = [];\n t.olLayers.map(item=>{\n if(item.layer){\n temp.push(t.getFeatureInfo(e,t.state.gis.getView(),item.layer.getSource()));\n }\n })\n if(temp.length){\n obj.features = temp;\n }\n t.props.clickMap(obj);\n }\n }\n // 获取geoServer要素\n getFeatureInfo(event, view, source) {\n let sourceParam = source.getParams();\n let url = source.getFeatureInfoUrl(event.coordinate, view.getResolution(), view.getProjection(), {\n cql_filter: sourceParam?.cql_filter,\n QUERY_LAYERS: sourceParam?.layers,\n INFO_FORMAT: 'application/json',\n REQUEST: \"GetFeatureInfo\",\n FEATURE_COUNT: 50,\n });\n let {param, address} = this.formatUrl(url);\n // let temp = param.BBOX.split(\",\");\n // let BBOX = [temp[1],temp[0],temp[3],temp[2]].join(\",\");\n // param.BBOX = BBOX;\n param.QUERY_LAYERS = param.LAYERS;\n let temp=[];\n for(let key in param){\n temp.push(`${key}=${param[key]}`);\n }\n address += `?${temp.join(\"&\")}`;\n const geoJsonFormat = new ol.format.GeoJSON();\n return fetch(address)\n .then(res => res.json())\n .then(data => {\n let features = [];\n if (data?.features?.length) {\n features = geoJsonFormat.readFeatures(data);\n features.map(item => {\n item.key = this?.key;\n });\n }\n return features;\n })\n .catch(() => {\n return [];\n });\n }\n // 要素鼠标悬浮事件\n mouseOverGraphic(id, e) {\n let t = this;\n if (t.state.editId == id) return false;\n if (typeof t.props.mouseOverGraphic === 'function') {\n let obj = {\n e,\n id,\n param: t.getGraphic(id),\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\n left: e.pixel ? e.pixel[1] : undefined,\n };\n t.props.mouseOverGraphic(obj);\n }\n }\n // 要素鼠标移开事件\n mouseOutGraphic(id, e) {\n let t = this;\n //编辑中的图元关闭其他事件返回\n if (t.state.editId == id) return false;\n if (typeof t.props.mouseOutGraphic === 'function') {\n let obj = {\n e,\n id,\n param: t.getGraphic(id),\n top: e.pixel ? e.pixel[0] : undefined, //当前点所在的位置(屏幕)\n left: e.pixel ? e.pixel[1] : undefined,\n };\n t.props.mouseOutGraphic(obj);\n }\n }\n //地图拖动之前事件\n dragMapStart(e) {\n let t = this;\n if (typeof t.props.dragMapStart === 'function') {\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.dragMapStart(obj);\n }\n }\n //地图拖动结束后事件\n dragMapEnd(e) {\n let t = this;\n if (typeof t.props.dragMapEnd === 'function') {\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.dragMapEnd(obj);\n }\n }\n //热力图\n heatMapOverlay(d = {}) {\n let t = this;\n let cg = {\n radius: 20,\n max: 100,\n visible: true,\n opacity: 0.7,\n gradient: ['#00f', '#0ff', '#0f0', '#ff0', '#f00'],\n };\n if (d.config) {\n cg = { ...cg, ...d.config };\n }\n let gradient = [];\n if (cg.gradient) {\n for (let key in cg.gradient) {\n gradient.push(cg.gradient[key])\n }\n cg.gradient = gradient;\n }\n // if(d.data){\n // t.state.pointIds = [];\n // t.pointLayers.map(item => {\n // t.state.gis.removeLayer(item.layer);\n // t.pointLayers=[];\n // })\n // }\n const heatData = {\n type: 'FeatureCollection',\n features: (d.data || []).map(item => {\n return {\n type: 'Feature',\n properties: {\n weight: item.count ? item.count / 100 : 0.5,\n },\n geometry: {\n type: 'Point',\n coordinates: [item.lng, item.lat],\n }\n }\n })\n }\n let heatSource = new ol.source.Vector({\n features: new ol.format.GeoJSON().readFeatures(heatData)\n })\n t.heatmap = new ol.layer.Heatmap({\n name: 'heatmap',\n source: heatSource,\n radius: cg.radius,\n visible: cg.visible,\n blur: eval(cg.opacity) * 100,\n gradient: gradient,\n weight: (e) => {\n return e.getProperties().count;//根据权重展示热力图!关键点,weight范围为:0-1!!!\n },\n });\n t.state.gis.addLayer(t.heatmap);\n\n }\n clearHeatMap(){\n const t = this;\n if(t.heatmap)\n t.state.gis.removeLayer(t.heatmap);\n t.heatmap = null;\n t.refresh();\n }\n //地图移动之前事件\n moveStart(e) {\n let t = this;\n if (typeof t.props.moveStart === 'function') {\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.moveStart(obj);\n }\n }\n //地图移动结束后事件\n moveEnd(e) {\n let t = this;\n if (typeof t.props.moveEnd === 'function') {\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.moveEnd(obj);\n }\n }\n //地图更改缩放级别开始时触发触发此事件\n zoomStart(e) {\n let t = this;\n if (typeof (t.props.zoomStart) === 'function') {\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.zoomStart(obj);\n }\n }\n //地图更改缩放级别结束时触发触发此事件\n zoomEnd(e) {\n let t = this;\n if (typeof (t.props.zoomEnd) === 'function') {\n let obj = t.getMapExtent();\n obj.e = e;\n t.props.zoomEnd(obj);\n }\n }\n // 图元点击事件\n clickGraphic(id, e, target = {}) {\n let t = this;\n //编辑中的图元关闭其他事件返回\n if (t.editId == id) return false;\n if (typeof t.props.clickGraphic === 'function') {\n const [clientX, clientY] = e.pixel;\n let param = t.getGraphic(id, clientX, clientY);\n let obj = {\n param,\n info: target,\n type: param ? param.geometry.type : null, //图元类型\n attributes: param ? { ...param.attributes.other, ...{ config: param.attributes.config } } : (e.attributes||null), //添加时图元信息\n top: clientY, //当前点所在的位置(屏幕)\n left: clientX,\n e: e,\n };\n t.props.clickGraphic(obj);\n }\n }\n // 地图重新渲染大小\n updateSize(){\n const t = this;\n t.state.gis.updateSize();\n }\n componentWillUnmount() {\n //关闭moveTo定时\n let t = this;\n if (t.moveToTimer) {\n clearInterval(t.moveToTimer);\n }\n //关闭animation定时\n for (let j in t.animTimer) {\n if (t.animTimer[j]) {\n clearInterval(t.animTimer[j]);\n }\n }\n window.VtxMap && (window.VtxMap[t.state.mapId]= null);\n }\n}\nexport default OlMap;\n\nclass Popup extends React.Component{\n constructor(props){\n super();\n this.map = props.map;\n this.position = props.position;\n this.overlay = null;\n this.container = null;\n this.innerHTML = props.innerHTML;\n this.closeble = props.close;\n }\n \n // 弹出框\n showPopup () {\n const t = this;\n this.removePopup()\n // 获取弹出层DOM\n t.container = document.createElement(\"div\");\n t.container['className'] = \"ol-popup\";\n if(t.closeble){\n let close = document.createElement(\"a\");\n close['className'] = \"ol-popup-closer\";\n close.addEventListener(\"click\",(e)=>{\n t.removePopup();\n })\n t.container.appendChild(close);\n }\n let content = document.createElement(\"div\");\n t.container.appendChild(content);\n if (t.overlay) {\n } else {\n // 创建Overlay弹出层绑定DOM\n t.overlay = new ol.Overlay({\n element: t.container,\n autoPan: {\n animation: {\n duration: 250\n }\n }\n })\n // 添加到map\n t.map.addOverlay(t.overlay)\n }\n // 弹出层内容\n content.innerHTML = t.innerHTML;\n // 设置弹出层位置即可出现\n t.overlay.setPosition(t.position)\n }\n // 清除弹出框\n removePopup () {\n if (this.overlay) {\n this.container.remove();\n // 设置位置undefined可达到隐藏清除弹出框\n this.overlay.setPosition(undefined);\n this.overlay = null;\n }\n }\n}\n\nfunction getRgbColor(color, opacity) {\n const reg = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/;\n if (!reg.test(color) && typeof(color) !== 'string') {\n return;\n }\n let newStr = color.toLowerCase().replace(/\\#/g, '');\n let len = newStr.length;\n if (len == 3) {\n let t = '';\n for (var i = 0; i < len; i++) {\n t += newStr.slice(i, i + 1).concat(newStr.slice(i, i + 1));\n }\n newStr = t;\n }\n let arr = []; //将字符串分隔,两个两个的分隔\n for (var i = 0; i < 6; i = i + 2) {\n let s = newStr.slice(i, i + 2);\n arr.push(parseInt('0x' + s));\n }\n return 'rgba(' + arr.join(',') + ',' + opacity + ')';\n}\n\n// 压缩图片的方法\nfunction canvasDataURL(path, obj, callback) {\n var img = new Image();\n img.src = path;\n img.setAttribute(\"crossOrigin\", 'Anonymous')\n img.onload = function () {\n var that = this;\n // 默认按比例压缩\n var w = that.width,\n h = that.height,\n scale = w / h;\n w = obj.width || w;\n h = obj.height || (w / scale);\n var quality = 0.7; // 默认图片质量为0.7\n //生成canvas\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n // 创建属性节点\n var anw = document.createAttribute(\"width\");\n anw.nodeValue = w;\n var anh = document.createAttribute(\"height\");\n anh.nodeValue = h;\n canvas.setAttributeNode(anw);\n canvas.setAttributeNode(anh);\n ctx.drawImage(that, 0, 0, w, h);\n // 图像质量\n if (obj.quality && obj.quality <= 1 && obj.quality > 0) {\n quality = obj.quality;\n }\n // quality值越小,所绘制出的图像越模糊\n var base64 = canvas.toDataURL('image/png', quality);\n // 回调函数返回base64的值\n callback(base64);\n }\n}\n\nclass ImgCache{\n constructor(props){\n this.imgs = {};\n }\n\n set(key, value){\n this.imgs[key] = value;\n }\n\n get(key){\n return this.imgs[key];\n }\n\n remove(key){\n let obj = {...this.imgs};\n delete obj[key];\n this.imgs = obj;\n }\n\n clear(){\n this.imgs = {};\n }\n}"],"mappings":"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","ignoreList":[]}