在微信JS_SDK工具包中為我們提供了地理定位的功能,但是該接口只返回了經緯度並沒有返回准確的位置信息,此時我們可以通過調用騰訊地圖的方法進行地址逆解析。
1. 獲取地理位置接口
wx.ready(function() { wx.getLocation({ type: 'wgs84', // 默認為wgs84的gps坐標,如果要返回直接給openLocation用的火星坐標,可傳入'gcj02' success: function(res) { // alert(JSON.stringify(res)) let lat = res.latitude; // 緯度,浮點數,范圍為90 ~ -90 let lng = res.longitude; // 經度,浮點數,范圍為180 ~ -180。 } }); });
2. 地址逆解析
在頁面中引入騰訊地圖相關的js,這里的key你可以自己去申請
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=Z4MBZ-N3BHJ-NKSFN-FQ3U3-HLUOZ-KTFB3"></script>
地址逆解析代碼
geocoder = new qq.maps.Geocoder({ complete:function(result){ console.log(JSON.stringify(result.detail)); } }); var coord=new qq.maps.LatLng(lat, lng); geocoder.getAddress(coord)
console.log(JSON.stringify(result.detail));結果如下:
{ "address":"中國浙江省杭州市濱江區泰安路239號", "addressComponents":{ "country":"中國", "province":"浙江省", "city":"杭州市", "district":"濱江區", "street":"泰安路", "streetNumber":"泰安路239號", "town":"西興街道", "village":"" }, "location":{ "lat":30.21, "lng":120.21 }, "nearPois":[ { "latLng":{ "lat":30.209749, "lng":120.20974 }, "id":"6786134103275397876", "name":"杭州市濱江區文化中心", "address":"浙江省杭州市濱江區泰安路200號", "category":"文化場館:文化宮", "dist":0, "type":0 } ] }
使用微信內置地圖查看位置接口,導航功能
$('.postion')導航按鈕,這里需要注意的是如果不是float類型IOS不能調起導航
$('.postion').on('click',function(){ wx.openLocation({ longitude: parseFloat(res.shops.longitude),//必須是float類型 latitude: parseFloat(res.shops.latitude), name: res.shops.designation,//目的地的名稱 address: res.shops.province+res.shops.city+res.shops.district+res.shops.address //目的地的地址 }) })
效果圖如下: