微信小程序(Taro)获取经纬度并转化为具体城市
1、获取经纬度
申请权限,想要使用微信小程序获取经纬度的方法是要申请该方面的权限。
获取经纬度的方法有很多选择其中一个使用就好。
我使用的是Taro.getFuzzyLocation()
在app.config.js中需要添加设置
requiredPrivateInfos: [ "getFuzzyLocation", ],
直接上代码,获取经纬度
Taro.getFuzzyLocation({ type: "wgs84", success: async (res) => { const latitude = res.latitude; const longitude = res.longitude; console.log(latitude, longitude, "纬度 经度"); }, fail: function (e) { console.log(e, "获取失败"); }, });
2、逆转地理编码
在获取到经纬度后,想要转换为具体的位置地点,需要使用高德地图或者腾讯地图,我使用的是高德地图。
地理/逆地理编码-基础 API 文档-开发指南-Web服务 API | 高德地图API
在高德开发平台注册账号后申请key
在添加key的过程中一定要选择web服务,因为只有它支持逆地理编码API
上逆转经纬度的代码
// 根据坐标获取地址 const wz = await requst.get( "https://restapi.amap.com/v3/geocode/regeo?key=&extensions=all&location=" + longitude + "," + latitude ); console.log( wz.data.regeocode.addressComponent, wz.data.regeocode.addressComponent.city, "地点" );
在获取经纬度的方法中,要把方法放到生命周期里面。不然可能会一直调用
3、全部代码
// 获取地理位置 const handleClick = () => { Taro.getFuzzyLocation({ type: "wgs84", success: async (res) => { const latitude = res.latitude; const longitude = res.longitude; console.log(latitude, longitude, "纬度 经度"); // 根据坐标获取地址 const wz = await requst.get( "https://restapi.amap.com/v3/geocode/regeo?key=&extensions=all&location=" + longitude + "," + latitude ); console.log( wz, wz.data.regeocode.addressComponent, wz.data.regeocode.addressComponent.city, "地点" ); }, fail: function (e) { console.log(e, "获取失败"); }, }); }; useEffect(() => { handleClick(); }, []);
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。