微信小程序JavaScript SDK
開發指南
逆地址解析(坐標位置描述)
reverseGeocoder(options:Object)
????????本接口提供由坐標到坐標所在位置的文字描述的轉換,輸入坐標返回地理位置信息和附近poi列表。
????????注:坐標系采用gcj02坐標系
options屬性說明
屬性 | 類型 | 必填 | 說明 |
---|---|---|---|
location | StringIObject | 否 | 位置坐標, ①String格式:lat<緯度>,lng<經度>(例:location: ‘39.984060,116.307520’) ②Object格式: { ??latitude: 緯度, ??longitude: 經度 } (例:location: { ??latitude: 39.984060, ??longitude: 116.307520 }) 默認是當前位置 |
coord_type | Number | 否 | 輸入的locations的坐標類型,可選值為[1,6]之間的整數,每個數字代表的類型說明: 1 GPS坐標 2 sogou經緯度 3 baidu經緯度 4 mapbar經緯度 5 [默認]騰訊、google、高德坐標 6 sogou墨卡托 |
get_poi | Number | 否 | 是否返回周邊POI列表: 1.返回;0不返回(默認) |
poi_options | String | 否 | 用于控制Poi列表: 1 poi_options=address_format=short 返回短地址,缺省時返回長地址 2 poi_options=radius=5000 半徑,取值范圍 1-5000(米) 3 poi_options=policy=1/2/3 控制返回場景, policy=1[默認] 以地標+主要的路+近距離poi為主,著力描述當前位置; policy=2 到家場景:篩選合適收貨的poi,并會細化收貨地址,精確到樓棟; policy=3 出行場景:過濾掉車輛不易到達的POI(如一些景區內POI),增加道路出路口、交叉口、大區域出入口類POI,排序會根據真實API大用戶的用戶點擊自動優化。 多個參數之間用分號分隔,示例: poi_options: “address_format=short;radius=300;policy=1” |
sig | String | 否 | 簽名校驗 開啟WebServiceAPI簽名校驗的必傳參數,只需要傳入生成的SK字符串即可,不需要進行MD5加密操作 該參數適用于?jssdkv1.2 |
調用結果
????????通過屬性success, fail, complete的回調參數來接收調用結果
????????success的回調參數可以有2個,第1個參數接收調用結果,第2個參數控制返回處理后的數據(非必須參數),示例:success:function(res,data)
????????該屬性適用于?jssdkv1.1?jssdkv1.2
名稱 | 類型 | 必填 | 說明 | ||||
---|---|---|---|---|---|---|---|
status | number | 是 | 狀態碼,0為正常, 310請求參數信息有誤, 311Key格式錯誤, 306請求有護持信息請檢查字符串, 110請求來源未被授權 | ||||
message | string | 是 | 狀態說明,即對狀態碼status進行說明, 如: status為0,message為"query ok",為正常, status為310,message為"請求參數信息有誤", status為311,message為"key格式錯誤", status為306,message為"請求有護持信息請檢查字符串", status為110,message為"請求來源未被授權" | ||||
result | object | 是 | 逆地址解析結果 | ||||
address | string | 是 | 地址描述 | ||||
formatted_addresses | object | 位置描述 | |||||
recommend | string | 經過騰訊地圖優化過的描述方式,更具人性化特點 | |||||
rough | string | 大致位置,可用于對位置的粗略描述 | |||||
address_component | object | 是 | 地址部件,address不滿足需求時可自行拼接 | ||||
nation | string | 是 | 國家 | ||||
province | string | 是 | 省 | ||||
city | string | 是 | 市 | ||||
district | string | 區,可能為空字串 | |||||
street | string | 街道,可能為空字串 | |||||
street_number | string | 門牌,可能為空字串 | |||||
ad_info | object | 是 | |||||
adcode | string | 是 | 行政區劃代碼 | ||||
name | string | 是 | 行政區劃名稱 | ||||
location | object | 是 | 行政區劃中心點坐標 | ||||
lat | number | 是 | 緯度 | ||||
lng | number | 是 | 經度 | ||||
nation | string | 是 | 國家 | ||||
province | string | 是 | 省 / 直轄市 | ||||
city | string | 是 | 市 / 地級區 及同級行政區劃 | ||||
district | string | 區 / 縣級市 及同級行政區劃 | |||||
address_reference | object | 坐標相對位置參考 | |||||
famous_area | object | 知名區域,如商圈或人們普遍認為有較高知名度的區域 | |||||
title | string | 名稱/標題 | |||||
location | object | 坐標 | |||||
lat | number | 緯度 | |||||
lng | number | 經度 | |||||
_distance | number | 此參考位置到輸入坐標的直線距離 | |||||
_dir_desc | string | 此參考位置到輸入坐標的方位關系,如:北、南、內 | |||||
town | object | 鄉鎮街道 | |||||
title | string | 名稱/標題 | |||||
location | object | 坐標 | |||||
lat | number | 緯度 | |||||
lng | number | 經度 | |||||
_distance | number | 此參考位置到輸入坐標的直線距離 | |||||
_dir_desc | string | 此參考位置到輸入坐標的方位關系,如:北、南、內 | |||||
landmark_l1 | object | 一級地標,可識別性較強、規模較大的地點、小區等 【注】對象結構同 famous_area | |||||
landmark_l2 | object | 二級地標,較一級地標更為精確,規模更小 【注】:對象結構同 famous_area | |||||
street | object | 街道 【注】:對象結構同 famous_area | |||||
street_number | object | 門牌 【注】:對象結構同 famous_area | |||||
crossroad | object | 交叉路口 【注】:對象結構同 famous_area | |||||
water | object | 水系 【注】:對象結構同 famous_area | |||||
pois | array | POI數組,對象中每個子項為一個POI對象,返回的POI數量及頁數可通過請求參數poi_options設置 | |||||
id | string | POI唯一標識 | |||||
title | string | poi名稱 | |||||
address | string | 地址 | |||||
category | string | POI分類 | |||||
location | object | 提示所述位置坐標 | |||||
id | string | POI唯一標識 | |||||
lat | number | 緯度 | |||||
lng | number | 經度 | |||||
_distance | number | 該POI到逆地址解析傳入的坐標的直線距離 |
示例
WXML 模板文件中添加組件:
<!--地圖容器-->
<!--longitude及latitude為設置為調轉到指定坐標位置,默認不顯示-->
<map id="myMap"markers="{{markers}}"style="width:100%;height:300px;"longitude="{{longitude}}"latitude="{{latitude}}" scale='16' show-location>
</map>
<!--form表單-->
<form bindsubmit="formSubmit"><!--地址輸入框,例:39.984060,116.307520--><input style="border:1px solid #000;" name="reverseGeo"></input><!--提交表單按鈕--><button form-type="submit">逆地址解析</button>
</form>
<view>當前位置為:{{address}}</view>
Javascript 關鍵代碼片段:
// 引入SDK核心類
var QQMapWX = require('xxx/qqmap-wx.js');// 實例化API核心類
var qqmapsdk = new QQMapWX({key: '開發密鑰(key)' // 必填
}); Page({data: {markers:[], // 聲明markers,存儲marker數據// 地圖展示位置latitude: 39.984060,longitude: 116.307520,address: ""},// 觸發表單提交事件,調用接口formSubmit(e) {var _this = this;qqmapsdk.reverseGeocoder({//位置坐標,默認獲取當前位置,非必須參數/*** //Object格式location: {latitude: 39.984060,longitude: 116.307520},*//***//String格式location: '39.984060,116.307520',*/location: e.detail.value.reverseGeo || '', //獲取表單傳入的位置坐標,不填默認當前位置,示例為string格式//get_poi: 1, //是否返回周邊POI列表:1.返回;0不返回(默認),非必須參數success: function(res) {//成功后的回調console.log(res);var res = res.result;var mks = [];/*** 當get_poi為1時,檢索當前位置或者location周邊poi數據并在地圖顯示,可根據需求是否使用*for (var i = 0; i < res.pois.length; i++) {mks.push({ // 獲取返回結果,放到mks數組中title: res.pois[i].title,id: res.pois[i].id,latitude: res.pois[i].location.lat,longitude: res.pois[i].location.lng,iconPath: './resources/placeholder.png', //圖標路徑width: 20,height: 20})}***///當get_poi為0時或者為不填默認值時,檢索目標位置,按需使用mks.push({ // 獲取返回結果,放到mks數組中title: res.address,id: 0,latitude: res.location.lat,longitude: res.location.lng,iconPath: './resources/placeholder.png',//圖標路徑width: 20,height: 20,callout: { //在markers上展示地址名稱,根據需求是否需要content: res.address,color: '#000',display: 'ALWAYS'}});_this.setData({ //設置markers屬性和地圖位置poi,將結果在地圖展示markers: mks,// 修改地圖展示位置latitude: res.location.lat,longitude: res.location.lng,// 當前地址address: res.address});},fail: function(error) {console.error(error);},complete: function(res) {console.log(res);}})}
})
接口調用說明
reverseGeocoder(options:Object)方法調用接口服務如下:
/ws/geocoder/v1 逆地址解析(位置描述)
注:微信小程序JavaScript SDK通過對騰訊位置服務WebServiceAPI接口進行封裝而形成,因此和直接調用WebSerivceAPI的限制是等同的,
具體可參考:騰訊位置服務WebServiceAPI配額及使用限制
資料來源:
騰訊位置商業授權微信小程序逆地址解析(坐標位置描述)-騰訊地圖代理商