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 0000000..4018154
Binary files /dev/null and b/src/assets/img/located.png differ
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 @@
+
+
+ class="my-click-transition">
+
+ {{ item.name }}
+ {{ item.address }}
+
+
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
+ }
+ })
+ })
+ }
}
}