uniapp 使用地图定位,坐标转换

调用地图选择 

console.log("点击地区选择")
					uni.chooseLocation({
						success: (res) => {
							this.hasLocation = true,
							console.log(res);
							this.zuobiao.latitude = res.latitude;
							this.zuobiao.longitude = res.longitude;
							that.getAddress(res.latitude,res.longitude);
							this.getServerApi(res.latitude,res.longitude);
						}
					})

通过经纬度获取地址信息 

//坐标转为地址信息
			getAddress(latitude,longitude){
				mapSearch.reverseGeocode({
					point: {
						latitude: latitude,
						longitude: longitude
					}
				}, ret => {
					//console.log(JSON.stringify(ret));
					this.location=ret.address;
					var reg = /.+?(省|市|自治区|自治州|县|区)/g;
					this.locationAddress = (ret.address).match(reg).toString().split(",");
					//console.log(JSON.stringify(this.locationAddress))
					this.zuobiao.province = this.locationAddress[0];
					this.zuobiao.city = this.locationAddress[1];
					this.zuobiao.district = this.locationAddress[2];
				
				})
			},

地理坐标系转换工具,支持WGS84/GCJ02/BD09等常用坐标系互转

    详细的使用方式请查看gcoord的文档

直接在页面中引入:

//<script src="https://unpkg.com/gcoord/dist/gcoord.js"></script>

import gcoord from '@/common/gcoord.js'

 

例如从手机的GPS得到一个经纬度坐标,需要将其展示在高德地图上,则应该将当前坐标从WGS-84坐标系转换为GCJ-02坐标系

var result = gcoord.transform(
  [116.403988, 39.914266],    // 经纬度坐标
  gcoord.WGS84,               // 当前坐标系
  gcoord.GCJ02                // 目标坐标系
);
console.log(result);  // [116.41661560068297, 39.92196580126834]

 

UniApp使用百度地图进行坐标转换,可以使用百度地图开放平台提供的换接口。以下是一种实现方式: 1. 设置百度地图开放平台的开发者密钥: 在uni-app的项目中,找到`manifest.json`文件,在`App`节点下添加如下代码: ``` "baidu_map": { "ak": "你的百度地图开发者密钥" } ``` 将其中的`你的百度地图开发者密钥`替换成你自己的密钥。 2. 创建一个方法用于坐标转换: 在需要使用坐标转换的页面或组件中,创建一个方法,例如`convertCoords`: ```javascript methods: { convertCoords(lng, lat) { return new Promise((resolve, reject) => { uni.request({ url: 'https://api.map.baidu.com/geoconv/v1/', data: { ak: uni.getStorageSync('baidu_map').ak, coords: `${lng},${lat}`, from: 1, to: 5 }, success(res) { if (res.data && res.data.status === 0) { resolve(res.data.result[0]); } else { reject(new Error('坐标转换失败')); } }, fail(err) { reject(err); } }); }); } } ``` 3. 调用坐标转换方法: 在需要进行坐标转换的地方,调用`convertCoords`方法,传入需要换的经度和纬度,并处理换后的数据: ```javascript this.convertCoords(lng, lat) .then(result => { // 处理换后的坐标数据 console.log(result); }) .catch(error => { // 处理错误 console.error(error); }); ``` 这样就可以在UniApp使用百度地图进行坐标转换了。注意替换代码中的密钥和处理方法,以适应你的实际需求。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值