天天看點

微信公衆平台消息接口開發(11)地理位置查詢附近商家

一、擷取使用者位址位置消息

使用者發送位置時的消息及格式如下

微信公衆平台消息接口開發(11)地理位置查詢附近商家

背景格式:

 XML格式講解

百度地圖Place API 是一類簡單的HTTP接口,用于傳回查詢某個區域的某類POI資料,且提供單個POI的詳情查詢服務,使用者可以使用C#、C++、Java等開發語言發送HTTP請求且接收json、xml的資料。

Place API 提供區域檢索POI服務、POI詳情服務與團購資訊檢索服務、商家團購詳情查詢。區域檢索POI服務提供三種區域檢索方法:城市内檢索、矩形檢索、圓形區域檢索。

我們使用圓形區域檢索來實作附近搜尋功能。

place區域檢索POI服務接口如下:

http://api.map.baidu.com/place/v2/search

參數

是否必須

預設值

格式舉例

含義

location

38.76623,116.43213 

lat<緯度>,lng<經度>

周邊檢索中心點,不支援多個點

radius(r)

2000

周邊檢索半徑,機關為米

q(query)

中關村、ATM、百度大廈

檢索關鍵字,周邊檢索和矩形區域内檢索支援多個關鍵字并集檢索,不同關鍵字間以$符号分隔,最多支援10個關鍵字檢索。如:”銀行$酒店”。

tag

日式燒烤/鐵闆燒、朝外大街

标簽項,與q組合進行檢索

output

xml

json或xml

輸出格式為json或者xml

scope

1

1、2

檢索結果詳細程度。取值為1 或空,則傳回基本資訊;取值為2,傳回檢索POI詳細資訊

filter

filter=industry_type:cater

|sort_name:price

|sort_rule:0

|price_section:100,200

|groupon:0

|discount:0

檢索過濾條件,當scope取值為2時,可以設定filter進行排序。

industry_type:行業類型

sort_name:排序字段

sort_rule:排序規則,取值如下:0:從高到低,1:從低到高;

price_section:價格區間;

groupon:是否有團購,1為有團購,0為無團購;

discount:是否打折,1為有打折,0為無打折;

page_size

10

範圍記錄數量,預設為10條記錄,最大傳回20條。多關鍵字檢索時,傳回的記錄數為關鍵字個數*page_size。

page_num

0、1、2

分頁頁碼,預設為0,0代表第一頁,1代表第二頁,以此類推。

ak

E4805d16520de693a3fe707cdc962045

使用者的通路密鑰,必填項。v2之前該屬性為key。

sn

 

使用者的權限簽名。

timestamp

設定sn後該值必填。

調用舉例如下:

百度地圖類定義如下

擷取附近的調用代碼如下:

計算兩坐标之間距離如下

對于使用者的坐标記錄,我們使用資料庫的方式來存儲,

如果使用者發送查詢指令,則直接查詢,

如果使用者發了位置,則進行更新

對于使用者發送的内容,先提取坐标,然後進行組合查詢

微信公衆平台消息接口開發(11)地理位置查詢附近商家

實作效果如下:

微信公衆平台消息接口開發(11)地理位置查詢附近商家
微信公衆平台消息接口開發(11)地理位置查詢附近商家
微信公衆平台消息接口開發(11)地理位置查詢附近商家

---------------------------------------------------------------------------------------------------------------------------