? ? ? ?現在很多企業商家為了提供更準確的服務,基本都要獲取用戶當前所在的地理位置,城市是其中最基本的。而微信小程序官方提供的API只能獲取當前地理位置的經緯度,需要經過第三方轉換才可以得到我所需的城市名,經過多次測試,終于找到方法。
這兩個方法都需要用到小程序官方的API來獲取經緯度,這個API的信息如下
wx.getLocation(OBJECT)???
地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/location.html#wxgetlocationobject
獲取當前的地理位置、速度。當用戶離開小程序后,此接口無法調用;當用戶點擊“顯示在聊天頂部”時,此接口可繼續調用。
OBJECT參數說明:
success返回參數說明:
示例代碼:
?
使用實例代碼就可以獲取經緯度:可以從控制臺進行查看:
latitude:接下來用到的緯度
longitude:接下來用到的經度
用這個API結合另外兩個API即可得到想要的地理位置。
第一個是使用易源數據的api?地址與經緯度互轉? https://www.showapi.com/api/lookPoint/238/2
首先在左側的 接入點列表 選擇 經緯度-->地址 。
這個api需要的請求參數有三個:
知道這些就好辦了,直接使用wx.request(OBJECT)按照下圖操作即可獲取城市。
輸出的結果如下:
方法到此結束,附上完整代碼:
//index.js
//獲取應用實例
var app = getApp()
Page({
onLoad: function () {
console.log('onLoad')
var that = this
//調用應用實例的方法獲取全局數據
app.getUserInfo(function(userInfo){
//更新數據
that.setData({
userInfo:userInfo
})
})
wx.getLocation({ //官方獲取經緯度api
type: 'wgs84',
success: function (res) {
console.log(res)
var latitude = res.latitude //緯度
var longitude = res.longitude //經度
var speed = res.speed? //速度,這里用不到
var accuracy = res.accuracy //精確度
wx.request({ //向服務器發送請求轉換地理位置
url: 'http://route.showapi.com/238-2',//請求的url
data:{ //請求的參數
showapi_appid:'42391',//易源應用key:申請賬號可獲取
showapi_sign:'bb5250042ace47a088290abf88229a38',//數字簽名:申請賬號可獲取
lat:latitude,//緯度
lng: longitude,//經度
from:1// from
},
success:function (res){
console.log(res)
// console.log("當前城市:"+res.data.showapi_res_body.addressComponent.city)
}
})
}
})
}
})