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