最近做微信小程序項目中遇到根據(jù)后臺接口獲取城市某個區(qū)域內(nèi)的信息,后臺接口要求傳入城市的區(qū)域名稱,例如上海市楊浦區(qū),小程序官方地址提供的API只能獲取到用戶當(dāng)前的經(jīng)緯度,如何通過經(jīng)緯度查詢到用戶的當(dāng)前位置 ...
最近做微信小程序項目中遇到根據(jù)后臺接口獲取城市某個區(qū)域內(nèi)的信息,后臺接口要求傳入城市的區(qū)域名稱,例如上海市楊浦區(qū),小程序官方地址提供的API只能獲取到用戶當(dāng)前的經(jīng)緯度,如何通過經(jīng)緯度查詢到用戶的當(dāng)前位置成了一個問題。所以通過研究和查詢資料解決了這個問題,現(xiàn)共享給大家。
我是通過騰訊地圖逆地址解析,在通過經(jīng)緯度獲取詳細(xì)的位置信息數(shù)據(jù)。
根據(jù)騰訊地圖API,以圖文的方式說明如何獲取詳細(xì)的位置信息數(shù)據(jù)。具體參考騰訊地圖Webservice API的介紹。地址:騰訊位置服務(wù)
step1:申請騰訊地圖密鑰(key),申請地址:申請密鑰
填寫完成后即可獲取到對應(yīng)的key值。
申請騰訊地圖密鑰.png
step2:通過小程序官方API獲取用戶當(dāng)前位置經(jīng)緯度。然后根據(jù)騰訊Webservice API逆地址解析相關(guān)介紹,傳入獲取到的經(jīng)緯度,即可獲取。
示例代碼:
//獲取當(dāng)前位置經(jīng)緯度
wx.getLocation({
type: 'wgs84',
success: function (res) {
//console.log("獲取當(dāng)前經(jīng)緯度:" + JSON.stringify(res));
//發(fā)送請求通過經(jīng)緯度反查地址信息
var getAddressUrl = "https://apis.map.qq.com/ws/geocoder/v1/?location=" + res.latitude + "," + res.longitude + "&key=你的key值&get_poi=1";
common.Request(getAddressUrl, "get", "", function (ops) {
//console.log(JSON.stringify(ops));
})
}
})
獲取當(dāng)前經(jīng)緯度.jpg 獲取的位置示例,根據(jù)項目提取需要的數(shù)據(jù)。
{
"status": 0,
"message": "query ok",
"request_id": "7e11ac8e-f763-11e7-b568-6c92bf3a15eb",
"result": {
"location": {
"lat": 39.984154,
"lng": 116.30749
},
"address": "北京市海淀區(qū)北四環(huán)西路66號",
"formatted_addresses": {
"recommend": "海淀區(qū)中國技術(shù)交易大廈(左岸工社東)",
"rough": "海淀區(qū)中國技術(shù)交易大廈(左岸工社東)"
},
"address_component": {
"nation": "中國",
"province": "北京市",
"city": "北京市",
"district": "海淀區(qū)",
"street": "北四環(huán)西路",
"street_number": "北四環(huán)西路66號"
},
"ad_info": {
"nation_code": "156",
"adcode": "110108",
"city_code": "156110000",
"name": "中國,北京市,北京市,海淀區(qū)",
"location": {
"lat": 39.984154,
"lng": 116.307487
},
"nation": "中國",
"province": "北京市",
"city": "北京市",
"district": "海淀區(qū)"
},
"address_reference": {
"business_area": {
"title": "中關(guān)村",
"location": {
"lat": 39.984089,
"lng": 116.307564
},
"_distance": 0,
"_dir_desc": "內(nèi)"
},
"famous_area": {
"title": "中關(guān)村",
"location": {
"lat": 39.984089,
"lng": 116.307564
},
"_distance": 0,
"_dir_desc": "內(nèi)"
},
"crossroad": {
"title": "彩和坊路/北四環(huán)西路輔路(路口)",
"location": {
"lat": 39.985001,
"lng": 116.308113
},
"_distance": 102.8,
"_dir_desc": "西南"
},
"town": {
"title": "海淀街道",
"location": {
"lat": 39.984154,
"lng": 116.307487
},
"_distance": 0,
"_dir_desc": "內(nèi)"
},
"street_number": {
"title": "北四環(huán)西路66號",
"location": {
"lat": 39.984119,
"lng": 116.307503
},
"_distance": 6.2,
"_dir_desc": ""
},
"street": {
"title": "彩和坊路",
"location": {
"lat": 39.984169,
"lng": 116.308098
},
"_distance": 46.6,
"_dir_desc": "西"
},
"landmark_l1": {
"title": "左岸工社",
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)