Loc/get location
Zhangchao2 (讨论 | 贡献) (→服务请求地址) |
Zhangchao2 (讨论 | 贡献) (→使用实例) |
||
第15行: | 第15行: | ||
客户端请求以及服务器返回举例说明如下 | 客户端请求以及服务器返回举例说明如下 | ||
− | 请求定位数据格式 | + | === '''请求定位数据格式''' === |
+ | |||
{ | { | ||
"version": "1.1.0", | "version": "1.1.0", | ||
第57行: | 第58行: | ||
] | ] | ||
} | } | ||
− | 服务器返回数据格式 | + | === '''服务器返回数据格式(JSON格式)''' === |
{ | { | ||
"location": { | "location": { |
2011年3月28日 (一) 18:18的版本
目录 |
API简介
定位服务根据客户端提供的一系列定位依据数据,通过计算获取一个固定的位置。定位依据主要包括客户端可以检测到的基站或者WIFI相关数据。本文档的主要目的,就是描述如何使用该接口发送定位依据数据至服务器,然后如何解析从服务器返回的位置数据。需要注意的是,客户端与服务器的通讯采用HTTP的方式请求,数据用POST方式向服务器请求,接口接收和返回的数据都是JSON格式,这里要注意的一点是,请求的Content-Type请使用application/json。
定位覆盖范围
目前定位服务只主要支持中国大陆地区。
服务请求地址
http://api.map.sina.com.cn:80/loc/get_location.(json|xml)
使用实例
客户端请求以及服务器返回举例说明如下
请求定位数据格式
{ "version": "1.1.0", "source":1433233234 "host": "api.map.sina.com.cn:80/loc/", "radio_type": "gsm", "request_address": true, "decode_pos":true, "location": { "latitude": 39.08943, "longitude": 116.36843 "accuracy" :678.0 }, "cell_towers": [ { "cell_id": 4466, "location_area_code": 26630, "mobile_country_code": 460, "mobile_network_code": 0, "signal_strength": -60, }, { "cell_id": 4466, "location_area_code": 25054, "mobile_country_code": 460, "mobile_network_code": 0, "signal_strength": -70, } ], "wifi_towers": [ { "mac_address": "00:0B:86:27:99:B0", “mac_name”:"Sina-web", "signal_strength": 78, }, { "mac_address": "00:0B:86:28:7B:F0", “mac_name”:"CMCC", "signal_strength": 90, } ] }
服务器返回数据格式(JSON格式)
{ "location": { "longitude": 116.30951, "latitude": 39.98384, "accuracy": 49, "altitude": 0, "altitude_accuracy": 0, "address": { "province ": "北京市", "city": "北京市", "citycode": "0010" "district": "海淀区", "addr": "海淀北二街10", } }, }
请求数据格式说明
对请求数据的详细说明如下:
名称 | 描述 | 是否必须 | 数据类型 |
---|---|---|---|
version | 新浪定位版本标识,目前我们只提供 "1.1.0"版,以前的版本停止定位服务 | 是 | string |
host | 定位的服务器地址 | 是 | string |
source | 申请应用时分配的AppKey,调用接口时候代表应用的唯一身份 | 是 | string |
radio_type | 移动通讯类型说明 (gsm,cdma,wcdma) | 否 | string |
request_address | 是否请求对应坐标的位置描述 | 否 | boolean |
decode_pos | 标识返回的位置是否需要经过偏移加密 | 否 | boolean |
location | 位置对象,详见下说明 | 否 | object |
cell_towers | 基站数据描述对象,详见下说明 | 否 | array |
wifi_towers | WIFI数据描述对象,详见下说明 | 否 | array |
位置对象
名称 | 描述 | 是否必须 | 数据类型 |
---|---|---|---|
latitude | 当前定位的纬度数据(WGS84 datum) | 否 | double |
longitude | 当前定位的经度数据(WGS84 datum) | 否 | double |
基站数据对象
名称 | 描述 | 是否必须 | 数据类型 |
---|---|---|---|
cell_id | 基站标识的唯一标识,GSM网络的CID,CDMA网络的BID | 否 | int |
location_area_code | 小区号标识数据,GSM网络的LAC,CDMA网络的NID | 否 | int |
mobile_country_code | 移动国家编码,GSM网络和CDMA都是MCC | 否 | int |
mobile_network_code | 网络标识,GSM网络的MNC,CDMA网络的SID | 否 | int |
signal_strength | 当前基站广播的信号强度,单位是DBM | 否 | int |
WIFI数据对象,WIFI对于定位这个过程不是必须的,但是对于采用WIFI定位来说,mac_address这个参数是必须的。
名称 | 描述 | 是否必须 | 数据类型 |
---|---|---|---|
mac_address | WIFI结点(路由器)的MAC地址 | 否 | String |
mac_name | WIFI结点(路由器)的名称 | 否 | String |
signal_strength | 当前WIFI广播的信号强度,单位是DBM | 否 | int |
服务器返回数据说明
服务器定位成功后,会将定位结果返回客户端,如果定位没有成功,返回结果为空。
名称 | 描述 | 是否必须 | 数据类型 |
---|---|---|---|
latitude | 定位结果的纬度数据 | 是 | double |
longtitude | 定位结果的经度数据 | 是 | double |
altitude | 定位结果的海拔高度测量数据 | 否 | double |
accuracy | 定位的水平误差,接口定位的结果是以90%的置信度进行计算,一般情况下该值是必须的 | 否 | double |
altitude_accuracy | 定位的垂直误差,接口定位的结果是以90%的置信度进行计算 | 否 | double |
address | 如果请求的时候,选择返回位置,则会有该项。但如果经过计算,无法查找该值,则返回为空 | 否 | object |
地址对象格式定义的具体说明
名称 | 描述 | 是否必须 | 数据类型 |
---|---|---|---|
addr | 地址的具体地址,如海淀北二街89号 | 否 | string |
district | 定位结果所在区号 | 是 | string |
city | 定位结果所在城市 | 否 | string |
province | 定位结果所在省 | 否 | string |
citycode | 定位结果所在城市的编码,如北京‘0010’ | 否 | string |