前言:
前段時(shí)間有一個(gè)關(guān)于通過(guò)獲取用戶當(dāng)前經(jīng)緯度坐標(biāo),計(jì)算出該用戶距離某指定地點(diǎn)之間的距離。因?yàn)樽鲞@個(gè)項(xiàng)目需要能夠獲取到比較精確的經(jīng)緯度坐標(biāo),剛開(kāi)始使用的是百度地圖結(jié)果發(fā)現(xiàn)百度地圖地位不太準(zhǔn)確(有時(shí)候相差的比較的大,后來(lái)了解到了百度獲取用戶經(jīng)緯度與用戶當(dāng)前使用的網(wǎng)絡(luò)有很大的關(guān)系),后來(lái)?yè)Q成了高德地圖結(jié)果還是一樣。最后我想剛好做的是個(gè)微信網(wǎng)站項(xiàng)目,為什么不使用微信自帶接口呢?所以最后使用了微信JS-SDK來(lái)獲取用戶當(dāng)前地理位置的接口。
微信JS-SDK的使用步驟,配置信息的生成獲取講解:
關(guān)于JS-SDK的使用步驟和timestamp(時(shí)間戳),nonceStr(隨機(jī)串),signature(簽名),access_token(接口調(diào)用憑據(jù))生成獲取的詳細(xì)說(shuō)明在此:https://www.cnblogs.com/Can-daydayup/p/11124092.html
前往微信公眾平臺(tái)查看是否開(kāi)通獲取用戶地理位置接口權(quán)限:


調(diào)用微信JS-SDK獲取地理位置接口,獲取用戶當(dāng)前準(zhǔn)確經(jīng)緯度坐標(biāo):
微信官方文檔使用說(shuō)明:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#35
< script type = "text/javascript" >//通過(guò)config接口注入權(quán)限驗(yàn)證配置wx.config({ debug: false, // 開(kāi)啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來(lái),若要查看傳入的參數(shù),可以在pc端打開(kāi),參數(shù)信息會(huì)通過(guò)log打出,僅在pc端時(shí)才會(huì)打印。 appId: 'your AppId', // 必填,公眾號(hào)的唯一標(biāo)識(shí) timestamp: 'your timestamp', // 必填,生成簽名的時(shí)間戳 nonceStr: 'your nonceStr', // 必填,生成簽名的隨機(jī)串 signature: 'your signature', // 必填,簽名 jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表});//注意,我們的經(jīng)緯度坐標(biāo)是要在頁(yè)面加載完成后立即獲取,不需要觸發(fā)獲取,因此需要把獲取地理位置的接口放在ready(function(){});里面wx.ready(function() { try { wx.getLocation({ type: 'wgs84', // 默認(rèn)為wgs84的gps坐標(biāo),如果要返回直接給openLocation用的火星坐標(biāo),可傳入'gcj02' success: function(res) { var latitude = res.latitude; // 緯度,浮點(diǎn)數(shù),范圍為90 ~ -90 var longitude = res.longitude; // 經(jīng)度,浮點(diǎn)數(shù),范圍為180 ~ -180。 var speed = res.speed; // 速度,以米/每秒計(jì) var accuracy = res.accuracy; // 位置精度 $("#Longitude").val(longitude); $("#Latitude").val(latitude); alert("微信經(jīng)緯度獲取結(jié)果:" + latitude + "經(jīng)度" + longitude); } }); } catch(e) { console.log(e); }}); < /script>/
新聞熱點(diǎn)
疑難解答
圖片精選