From a6b15483b832fc1fc27a050c93a3a6f371b57a19 Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期五, 14 三月 2025 14:02:38 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/threeSide

---
 H5/pages/location/location.vue |  144 +++++++++---------------------------------------
 1 files changed, 27 insertions(+), 117 deletions(-)

diff --git a/H5/pages/location/location.vue b/H5/pages/location/location.vue
index 6da253f..d4c5c79 100644
--- a/H5/pages/location/location.vue
+++ b/H5/pages/location/location.vue
@@ -50,56 +50,7 @@
 			};
 		},
 		methods: {
-			 outOfChina(lng, lat) {
-				return (lng < 72.004 || lng > 137.8347) || (lat < 0.8293 || lat > 55.8271);
-			},
-			
-			// 纬度转换函数
-			 transformLat(x, y) {
-				let ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
-				ret += (20.0 * Math.sin(6.0 * x * Math.PI) + 20.0 * Math.sin(2.0 * x * Math.PI)) * 2.0 / 3.0;
-				ret += (20.0 * Math.sin(y * Math.PI) + 40.0 * Math.sin(y / 3.0 * Math.PI)) * 2.0 / 3.0;
-				ret += (160.0 * Math.sin(y / 12.0 * Math.PI) + 320 * Math.sin(y * Math.PI / 30.0)) * 2.0 / 3.0;
-				return ret;
-			},
-			
-			// 经度转换函数
-			 transformLon(x, y) {
-				let ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
-				ret += (20.0 * Math.sin(6.0 * x * Math.PI) + 20.0 * Math.sin(2.0 * x * Math.PI)) * 2.0 / 3.0;
-				ret += (20.0 * Math.sin(x * Math.PI) + 40.0 * Math.sin(x / 3.0 * Math.PI)) * 2.0 / 3.0;
-				ret += (150.0 * Math.sin(x / 12.0 * Math.PI) + 300.0 * Math.sin(x / 30.0 * Math.PI)) * 2.0 / 3.0;
-				return ret;
-			},
-			
-			// WGS - 84 转 GCJ - 02
-			 wgs84ToGcj02(lng, lat) {
-				if (this.outOfChina(lng, lat)) {
-					return [lng, lat];
-				}
-				let dLat = this.transformLat(lng - 105.0, lat - 35.0);
-				let dLng = this.transformLon(lng - 105.0, lat - 35.0);
-				let radLat = lat / 180.0 * Math.PI;
-				let magic = Math.sin(radLat);
-				magic = 1 - 0.00669342162296594323 * magic * magic;
-				let sqrtMagic = Math.sqrt(magic);
-				dLat = (dLat * 180.0) / ((6378245.0 / (1 - magic)) * Math.cos(radLat) * Math.PI);
-				dLng = (dLng * 180.0) / (6378245.0 / sqrtMagic * Math.cos(radLat) * Math.PI);
-				let mgLat = lat + dLat;
-				let mgLng = lng + dLng;
-				return [mgLng, mgLat];
-			},
-			
-			// GCJ - 02 转 BD - 09
-			 gcj02ToBd09(lng, lat) {
-				let x = lng;
-				let y = lat;
-				let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * 3000.0 * Math.PI / 180.0);
-				let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * 3000.0 * Math.PI / 180.0);
-				let bdLng = z * Math.cos(theta) + 0.0065;
-				let bdLat = z * Math.sin(theta) + 0.006;
-				return [bdLng, bdLat];
-			},
+
 			clearMarkers() {
 				// 清除所有标点
 				this.markers.forEach((marker) => {
@@ -149,35 +100,6 @@
 
 					}
 				})
-				return
-				uni.request({
-					url: `https://api.map.baidu.com/place/v2/search`,
-					method: 'GET',
-					data: {
-						query: this.keyword,
-						location: `${this.latitude},${this.longitude }`,
-						radius: 10000, // 搜索半径,单位:米
-						output: 'json',
-						ak: '3mHKIXMArjgIkgADzOlTYp4XssNSNkwr' // 替换为你自己的 AK
-					},
-					success: (res) => {
-
-						if (res.data.status === 0) {
-							this.searchResults = res.data.results;
-							this.latitude = res.data.results[0].location.lat
-							this.longitude = res.data.results[0].location.lng
-							this.locationList = res.data.results.map((result, index) => {
-
-								result.id = index + 1
-
-								return result
-							});
-						}
-					},
-					fail: (err) => {
-						console.error('搜索失败:', err);
-					}
-				});
 			},
 		},
 		onLoad() {
@@ -186,42 +108,34 @@
 		onReady() {
 			this.map = new BMapGL.Map("container"); // 创建地图实例 
 			const that = this
-			// uni.getLocation({
-			// 	type: 'wgs84',
-			// 	success: (res) => {
-			// 判断是否在中国境外
-	
-
 			navigator.geolocation.getCurrentPosition(success, error, options);
 
 			function success(position) {
-				const latitude = position.coords.latitude;
-				const longitude = position.coords.longitude;
-				let arr = that.wgs84ToGcj02(longitude, latitude);
-			
-				// 转换为 BD - 09
-				let arrs = that.gcj02ToBd09(arr[0], arr[1]);
-				
-				const accuracy = position.coords.accuracy; // 精度,单位米
-				//  在这里可以使用获取到的经纬度信息,例如在地图上显示位置等。
-				var point = new BMapGL.Point(arrs[0], arrs[1]); // 创建点坐标
-				that.map.enableScrollWheelZoom(true);
-				that.map.centerAndZoom(point, 12);
-				var marker = new BMapGL.Marker(point);
-				that.map.addOverlay(marker);
-				that.markers.push(marker);
-				var myGeo = new BMapGL.Geocoder();
-				// 根据坐标得到地址描述    
-				myGeo.getLocation(new BMapGL.Point(arrs[0], arrs[1]), (result) => {
-					that.locationList = result.surroundingPois.map((item, index) => {
-						item.id = index + 1
-						return item
-					})
-				})
+				uni.request({
+					url: `https://api.map.baidu.com/geoconv/v2/?coords=${position.coords.longitude},${position.coords.latitude}&model=2&ak=3mHKIXMArjgIkgADzOlTYp4XssNSNkwr`,
+					method: 'GET',
+					success: (res) => {
+						const latitude = res.data.result[0].y;
+						const longitude = res.data.result[0].x;
+						var point = new BMapGL.Point(longitude, latitude); // 创建点坐标
+						that.map.enableScrollWheelZoom(true);
+						that.map.centerAndZoom(point, 12);
+						var marker = new BMapGL.Marker(point);
+						that.map.addOverlay(marker);
+						that.markers.push(marker);
+						var myGeo = new BMapGL.Geocoder();
+						// 根据坐标得到地址描述    
+						myGeo.getLocation(new BMapGL.Point(longitude, latitude), (result) => {
+							that.locationList = result.surroundingPois.map((item, index) => {
+								item.id = index + 1
+								return item
+							})
+						})
+					},
+				});
 			}
 
 			function error(err) {
-
 				switch (err.code) {
 					case err.PERMISSION_DENIED:
 						console.error("用户拒绝了位置请求。");
@@ -242,6 +156,7 @@
 				timeout: 5000, // 5 秒超时
 				maximumAge: 0 //  不使用缓存
 			};
+
 			this.map.addEventListener('click', (e) => {
 				this.clearMarkers()
 				var mercator = this.map.lnglatToMercator(e.latlng.lng, e.latlng.lat);
@@ -252,8 +167,8 @@
 				var myGeo = new BMapGL.Geocoder();
 				// 根据坐标得到地址描述    
 				myGeo.getLocation(new BMapGL.Point(e.latlng.lng, e.latlng.lat), (result) => {
-										this.city = result.addressComponents.city
-					if( result.surroundingPois.length>0){
+					this.city = result.addressComponents.city
+					if (result.surroundingPois.length > 0) {
 						this.locationList = result.surroundingPois.map((item, index) => {
 							item.id = index + 1
 							return item
@@ -274,12 +189,7 @@
 				this.map.addOverlay(marker);
 				this.markers.push(marker);
 			});
-			// },
-			// error:err=>{
-			// 	
-			// }
-			// });
-
+	
 		}
 	}
 </script>

--
Gitblit v1.7.1