From fa05dfcce55b8589d7f76175700a92fe196dcd9b Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期三, 13 三月 2024 17:59:52 +0800 Subject: [PATCH] 图层切换叠压 --- src/utils/tool.js | 60 ++++++++++++++++++++++++------------------------------------ 1 files changed, 24 insertions(+), 36 deletions(-) diff --git a/src/utils/tool.js b/src/utils/tool.js index 7ffd440..e4384d4 100644 --- a/src/utils/tool.js +++ b/src/utils/tool.js @@ -30,9 +30,12 @@ _GLOBAL.ImageLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ url: `${'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'}/tile/{z}/{y}/{x}`, + projection:"EPSG:3857", + tileSize: 512 }), }); - window.mapapi.addLayer(_GLOBAL.ImageLayer); + // window.mapapi.addLayer(_GLOBAL.ImageLayer); + layersArray.insertAt(1, _GLOBAL.ImageLayer); } //鍔犺浇鐧借壊鍦板浘 @@ -43,14 +46,15 @@ url: "https://skyzt.bda.gov.cn/gisserver/wmsserver/shiliangditu_baisexi_wms", //鍥惧眰鍦板潃 params: { VERSION: "1.1.1", - SRS: "EPSG:4326", + SRS: "EPSG:3857", FORMAT: "image/png", TILED: true, LAYERS: "", }, }), }); - window.mapapi.addLayer(_GLOBAL.baseMap) + // window.mapapi.addLayer(_GLOBAL.baseMap) + layersArray.insertAt(1, _GLOBAL.baseMap); } @@ -63,8 +67,8 @@ url: ` https://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}`, }), }); - window.mapapi.addLayer(_GLOBAL.geoMap); - + // window.mapapi.addLayer(_GLOBAL.geoMap); + layersArray.insertAt(1, _GLOBAL.geoMap); } @@ -88,7 +92,7 @@ url: 'https://skyzt.bda.gov.cn/gisserver/wmsserver/YZ_BJ60', params: { 'VERSION': '1.1.1', - 'SRS': 'EPSG:4326', + 'SRS': 'EPSG:3857', 'FORMAT': 'image/png', 'TILED': true, "LAYERS": '' @@ -106,7 +110,7 @@ url: 'https://skyzt.bda.gov.cn/gisserver/wmsserver/YZ_BJ',//鍥惧眰鍦板潃 params: { 'VERSION': '1.1.1', - 'SRS': 'EPSG:4326', + 'SRS': 'EPSG:3857', 'FORMAT': 'image/png', 'TILED': true, "LAYERS": '' @@ -124,48 +128,31 @@ } _GLOBAL.historyLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ + projection:"EPSG:3857", url: `https://skyzt.bda.gov.cn/yzAdapter/Vector/?request=1&year=${layerName}&type=Sate&level={z}&x={x}&y={y}`, }) }); window.mapapi.addLayer(_GLOBAL.historyLayer); } - -//鑾峰彇褰撳墠瀹氫綅 -var _rotate = 90; -var _marker = null; -var points = []; - -export function randomPoint() { - let t = 116.505348; - let e = 39.795592; - t += .01 * Math.random(); - e += .01 * Math.random(); - points.push([t, e]); -} - - +//瀹炴椂鑾峰彇瀹氫綅 export function getCurrentPosition() { - // setInterval(() => { - // randomPoint(); - // }, 1000) - - // console.log(points, '鐐逛綅娴嬭瘯') - // _marker = createGPSMarker(points, _rotate); - // window.mapapi.addLayer(_marker) - if (navigator.geolocation) { navigator.geolocation.watchPosition((res) => { let lat = res.coords.latitude; let lon = res.coords.longitude; - _marker = createGPSMarker([lon, lat], _rotate); - window.mapapi.addLayer(_marker) + if (_GLOBAL.GPSMarker) { + window.mapapi.removeLayer(_GLOBAL.GPSMarker) + } + _GLOBAL.GPSMarker = createGPSMarker([lon, lat], _GLOBAL.rotate); + window.mapapi.addLayer(_GLOBAL.GPSMarker) + }); } } - +//鍒涘缓褰撳墠瀹氫綅鐐� export function createGPSMarker(position, rotate) { const GPSMarkerLayer = new ol.layer.Vector({ id: 'LocationPoint', @@ -194,17 +181,18 @@ }; +//鐩戝惉瀹氫綅鐐硅窡闅忔棆杞� export function listenDirection() { window.addEventListener('deviceorientation', function (e) { - if (_marker) { - _rotate = e.alpha * (Math.PI / -180); + if (_GLOBAL.GPSMarker) { + _GLOBAL.rotate = e.alpha * (Math.PI / -180); _marker.setStyle( new ol.style.Style({ image: new ol.style.Icon({ anchor: [0.5, 0.5], anchorOrigin: 'top-left', src: require('@/assets/img/collection/mark.png'), - rotation: _rotate, + rotation: _GLOBAL.rotate, anchorXUnits: "fraction", anchorYUnits: "fraction", scale: 0.5, -- Gitblit v1.9.3