From a722837a11b8caf1ec6a4e5934247267b5371294 Mon Sep 17 00:00:00 2001 From: unknown <2548700810@qq.com> Date: Mon, 31 Oct 2022 15:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9D=90=E6=A0=87=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/gis/coordinate-conversion.js | 35 +++--- src/assets/img/located.png | Bin 0 -> 15620 bytes src/components/PositionMatching/index.vue | 139 ++++++++++++++++++++-- src/views/dashboard/index.vue | 60 ++++++++-- 4 files changed, 195 insertions(+), 39 deletions(-) create mode 100644 src/assets/img/located.png diff --git a/src/api/gis/coordinate-conversion.js b/src/api/gis/coordinate-conversion.js index 09ec518..511a47b 100644 --- a/src/api/gis/coordinate-conversion.js +++ b/src/api/gis/coordinate-conversion.js @@ -9,7 +9,7 @@ export default { * @param bd_lat * @returns {*[]} */ - bd09togcj02(bd_lon, bd_lat) { + bd09togcj02 (bd_lon, bd_lat) { const x = bd_lon - 0.0065 const y = bd_lat - 0.006 const z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * this.x_pi) @@ -25,7 +25,7 @@ export default { * @param lat * @returns {*[]} */ - gcj02tobd09(lng, lat) { + gcj02tobd09 (lng, lat) { const z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * this.x_pi) const theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * this.x_pi) const bd_lng = z * Math.cos(theta) + 0.0065 @@ -38,7 +38,7 @@ export default { * @param lat * @returns {*[]} */ - wgs84togcj02(lng, lat) { + wgs84togcj02 (lng, lat) { if (this.out_of_china(lng, lat)) { return [lng, lat] } else { @@ -61,7 +61,7 @@ export default { * @param lat * @returns {*[]} */ - gcj02towgs84(lng, lat) { + gcj02towgs84 (lng, lat) { if (this.out_of_china(lng, lat)) { return [lng, lat] } else { @@ -84,7 +84,7 @@ export default { * @param {*} lat * @returns */ - bd09towgs84(lng, lat) { + bd09towgs84 (lng, lat) { // 百度坐标系先转为火星坐标系 const gcj02 = this.bd09togcj02(lng, lat) // 火星坐标系转wgs84坐标系 @@ -97,21 +97,21 @@ export default { * @param {*} lat * @returns */ - wgs84tobd09(lng, lat) { + wgs84tobd09 (lng, lat) { // wgs84先转为火星坐标系 const gcj02 = this.wgs84togcj02(lng, lat) // 火星坐标系转百度坐标系 const result = this.gcj02tobd09(gcj02[0], gcj02[1]) return result }, - transformlat(lng, lat) { + transformlat (lng, lat) { let ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng)) ret += (20.0 * Math.sin(6.0 * lng * Math.PI) + 20.0 * Math.sin(2.0 * lng * Math.PI)) * 2.0 / 3.0 ret += (20.0 * Math.sin(lat * Math.PI) + 40.0 * Math.sin(lat / 3.0 * Math.PI)) * 2.0 / 3.0 ret += (160.0 * Math.sin(lat / 12.0 * Math.PI) + 320 * Math.sin(lat * Math.PI / 30.0)) * 2.0 / 3.0 return ret }, - transformlng(lng, lat) { + transformlng (lng, lat) { let ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng)) ret += (20.0 * Math.sin(6.0 * lng * Math.PI) + 20.0 * Math.sin(2.0 * lng * Math.PI)) * 2.0 / 3.0 ret += (20.0 * Math.sin(lng * Math.PI) + 40.0 * Math.sin(lng / 3.0 * Math.PI)) * 2.0 / 3.0 @@ -124,7 +124,7 @@ export default { * @param lat * @returns {boolean} */ - out_of_china(lng, lat) { + out_of_china (lng, lat) { return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false) }, /** @@ -133,14 +133,14 @@ export default { * @returns {{}} * @private */ - LngLatToMercator(poi) { + LngLatToMercator (lng, lat) { const mercator = {} const earthRad = 6378137.0 - mercator.x = poi.lng * Math.PI / 180 * earthRad - const a = poi.lat * Math.PI / 180 + mercator.x = lng * Math.PI / 180 * earthRad + const a = lat * Math.PI / 180 mercator.y = earthRad / 2 * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a))) - return mercator + return [mercator.x, mercator.y] }, /** @@ -149,12 +149,13 @@ export default { * @returns {{}} * @private */ - MercatorToLngLat(poi) { + MercatorToLngLat (x, y) { const lnglat = {} - lnglat.lng = poi.x / 20037508.34 * 180 - const mmy = poi.y / 20037508.34 * 180 + lnglat.lng = x / 20037508.34 * 180 + const mmy = y / 20037508.34 * 180 lnglat.lat = 180 / Math.PI * (2 * Math.atan(Math.exp(mmy * Math.PI / 180)) - Math.PI / 2) - return lnglat + // console.log(lnglat, '经纬度') + return [lnglat.lng, lnglat.lat] } } diff --git a/src/assets/img/located.png b/src/assets/img/located.png new file mode 100644 index 0000000000000000000000000000000000000000..4018154feacbd7c1f6453467729a2388b3a755a8 GIT binary patch literal 15620 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 literal 0 HcmV?d00001 diff --git a/src/components/PositionMatching/index.vue b/src/components/PositionMatching/index.vue index b8b0b64..98db67d 100644 --- a/src/components/PositionMatching/index.vue +++ b/src/components/PositionMatching/index.vue @@ -1,30 +1,115 @@ diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 11b96ea..9e11eee 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -94,7 +94,7 @@ export default { }, methods: { initMap () { - mapboxgl.accessToken = 'pk.eyJ1IjoibHh0aWFudGlhbiIsImEiOiJjaXd2ZjlkYnQwMTZvMnRtYWZnM2lpbHFvIn0.ef3rFZTr9psmLWahrqap2A' + // mapboxgl.accessToken = 'pk.eyJ1IjoibHh0aWFudGlhbiIsImEiOiJjaXd2ZjlkYnQwMTZvMnRtYWZnM2lpbHFvIn0.ef3rFZTr9psmLWahrqap2A' this.map = new mapboxgl.Map({ container: 'map', @@ -151,30 +151,35 @@ export default { } }, changeCoordinate (transformStyle) { + const arr = this.coordinateBefore.split(',') + switch (transformStyle) { case 'bd09togcj02': - this.coordinateAfter = Transform.bd09togcj02(this.coordinateBefore) + + this.coordinateAfter = Transform.bd09togcj02(arr[0], arr[1]) break case 'gcj02tobd09': - this.coordinateAfter = Transform.gcj02tobd09(this.coordinateBefore) + this.coordinateAfter = Transform.gcj02tobd09(arr[0], arr[1]) break case 'wgs84togcj02': - this.coordinateAfter = Transform.wgs84togcj02(this.coordinateBefore) + this.coordinateAfter = Transform.wgs84togcj02(arr[0], arr[1]) break case 'gcj02towgs84': - this.coordinateAfter = Transform.gcj02towgs84(this.coordinateBefore) + this.coordinateAfter = Transform.gcj02towgs84(arr[0], arr[1]) break case 'bd09towgs84': - this.coordinateAfter = Transform.bd09towgs84(this.coordinateBefore) + this.coordinateAfter = Transform.bd09towgs84(arr[0], arr[1]) break case 'wgs84tobd09': - this.coordinateAfter = Transform.wgs84tobd09(this.coordinateBefore) + this.coordinateAfter = Transform.wgs84tobd09(arr[0], arr[1]) break case 'LngLatToMercator': - this.coordinateAfter = Transform.LngLatToMercator(this.coordinateBefore) + this.coordinateAfter = Transform.LngLatToMercator(arr[0], arr[1]) break case 'MercatorToLngLat': - this.coordinateAfter = Transform.MercatorToLngLat(this.coordinateBefore) + + this.coordinateAfter = Transform.MercatorToLngLat(arr[0], arr[1]) + break } }, @@ -339,6 +344,43 @@ export default { 22.49156056685961 ) console.log(lng_lat_2, 'gc坐标') + }, + flyTo (point, id) { + console.log(point, '传过来的点!') + this.map.flyTo({ + center: point, + zoom: 10 + }) + if (this.map.getLayer(id)) { + + } else { + this.map.loadImage(new URL('../../assets/img/located.png', import.meta.url).href, (error, image) => { + if (error) throw error + this.map.addImage(id + 'image', image) + this.map.addLayer({ + id: id, + type: 'symbol', + source: { + type: 'geojson', + data: { + type: 'FeatureCollection', + features: [{ + type: 'Feature', + geometry: { + type: 'Point', + coordinates: point + } + }] + + } + }, + layout: { + 'icon-image': id + 'image', + 'icon-size': 0.3 + } + }) + }) + } } }