一、获取用户地址位置消息
用户发送位置时的消息及格式如下

后台格式:
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后该值必填。
调用举例如下:
百度地图类定义如下
获取附近的调用代码如下:
计算两坐标之间距离如下
对于用户的坐标记录,我们使用数据库的方式来存储,
如果用户发送查询命令,则直接查询,
如果用户发了位置,则进行更新
对于用户发送的内容,先提取坐标,然后进行组合查询
实现效果如下:
---------------------------------------------------------------------------------------------------------------------------