基站地理定位 API (移动联通) - 快了
概述
GPSspg 基站地理定位 API 通过相关参数返回基于基站的客户端位置。通常在不能接受到GPS信号的情况下,用于获得基于基站的粗略位置,精确度取决于客户端设备和基站之间的距离。
相比于其它平台,GPSspg 基站地理定位 API 的特色:可输出供多种地图使用的经纬度坐标,如 Google Earth(WGS84) / Google Maps / 百度地图 / 腾讯高德地图 / MapBar 图吧地图;输出6位中国行政区划代码及12位统计用区划代码;使用 DNSpod 域名解析及 Azure 构建平台随时扩充可响应海量请求,为你的业务提高稳定性。
使用限制
我们对这些请求设置了次数限制(视订阅套餐限制请求次数,见用户后台订阅处),以防出现滥用服务的现象。并且此限制以后可能会在不另作通知的情况下 发生变化。此外,我们还设定了请求速率限制,以防滥用此服务。如果您超出了 24 小时限制或以其他方式滥用此服务,API 可能会临时停止运行。如果您继续超出此限制,那么系统将阻止您访问 API。不能注册多个账户使用未充值积分(赠送积分)进行请求,否则你的账户或IP可能被永久锁定。
注意:不能以采集保存结果目的使用此API,否则你的账户或IP可能被永久锁定。
订阅 (开通API)
需要先在用户后台 API 下面订阅,订阅成功后,在 我订阅的API 下面可以看到OID与KEY。一个账户只能订阅一个API。订阅之套餐级别可随时更改。
经纬度类型
-
0
= WGS84 / GPS硬件 / Google Earth / Google Maps的卫星模式 -
1
= Google Maps的地图模式 -
2
= 百度地图坐标 -
3
= QQ腾讯地图坐标 / 高德坐标地图 -
4
= MapBar图吧地图坐标
基站地理定位请求
请求采用以下形式:
http://api.gpsspg.com/bs/?parameters
有些参数是必填的,有些则是可选的。根据网址的标准,所有参数均使用和号字符 (&) 进行分隔。下面的列表枚举了这些参数及其可能的值。
必填参数
-
oid
:订阅之OID。在 我订阅的API 下面查看。 -
mcc
:移动设备国家代码(Mobile Country Code,MCC),中国 = 460。详见:全球移动设备国家代码 MCC -
mnc
:移动设备网络代码(Mobile Network Code,MNC),中国移动 = 00 / 02 / 07, 中国联通 = 01 / 06, 中国电信 = 03 / 05。详见:全球移动设备网络代码 MNC -
type
:空值 或 lte, 表示网络类型。 空值:适用于 GSM / WCDMA / TD-SWCDMA 网络。 lte:适用于 LTE 网络。 -
a
:LAC / eNodeB-ID LAC 值范围:0~65535,适用于 GSM / WCDMA / TD-SWCDMA 网络。 eNodeB-ID 值范围:0~1048575,适用于 LTE 网络。 -
b
:CELL ID 值标准:0~65535,适用于 GSM / WCDMA / TD-SWCDMA 网络。部份设备软件获得的 3G CELL ID 可能大于 65535(即业界的长 CI = RNCID * 65536 + Cell ID),系统自动 mod 65536 取模即得标准 CI。 值范围:0~255,适用于 LTE 网络。 -
hex
:指定 A、B 参数的进制。10 = 10进制 (默认),16 = 16进制。 -
to
:0~4,表示输出经纬度类型。详见上述:经纬度类型
选填参数
-
key
:32位文本值。在 我订阅的API 下面查看。如果附加了订阅之KEY参数,将只验证KEY是否相符(不验证绑定之IP与网址)。请勿暴露你的KEY。 建议:在你的网站上进行 JSONP 跨域请求,请绑定网址;在固定 IP 上请求,请绑定 IP。 -
output
:输出格式json
(默认),用于表示以 JavaScript 对象表示法 (JSON) 的形式输出。jsonp
,用于以 JavaScript 对象跨域访问数据。xml
,用于表示以 XML 的形式输出。 -
callback
:1~60位英文数字下划线。在输出JSONP时需指定,默认值为 callback。
基站地理定位 API 结果响应
返回的结果响应格式由网址请求的参数中的 output
标记指定。默认为json。
返回结果中的 lat lng
对应请求参数 to
的坐标类型。当 to=0(GPS坐标) 时,会附加一个 lats/lngs,用于 Google 地图模式下显示用坐标。当 to=1(Google 地图模式坐标)时,会附加一个 lats/lngs,用于 Google Maps 卫星图模式下显示用坐标。
返回结果中的 roads
少部份可能无结果会空。
返回结果中的 match
:1 = 匹配,2 = 推算,8 = 国家。
JSON 输出格式
在此示例中,查询请求了 json
响应:
http://api.gpsspg.com/bs/?oid=我订阅的oid&mcc=460&mnc=00&a=34860&b=62043&hex=10&type=&to=1&output=json
此请求返回的 JSON 如下所示:请注意,实际的 JSON 可能包含较少的空白。您不应假定请求之间的空白数量或格式。
{ "status": "200", "result": { "lat": 22.01621, "lng": 100.749268, "lats": 22.01903, "lngs": 100.748125, "radius": 1500, "rid": "532801", "rids": "532801502000", "address": "云南省西双版纳傣族自治州景洪市嘎洒镇西双版纳金星啤酒有限公司", "roads": "026乡道西约536米" }, "match": 1 }
JSONP 输出格式
JSONP是一个非官方的协议,它允许在服务器端集成 Script tags 返回至客户端,通过 javascript callback 的形式实现跨域访问(这仅仅是 JSONP 简单的实现形式)。
在此示例中,我们使用 JQuery 查询请求 jsonp
响应:
var o_r = []; //请求成功的处理 function showAjaxOK() { //判断状态是否成功 if (o_r.status == 200) { //成功后的处理显示位置等 } else { if (o_r.status == 404) { //没有收录此数据的处理 } else { //请求参数及其它错误的处理 } } } //请求失败的处理 function showAjaxError() { //错误处理; } function ajaxGetBS() { var t_url; //**这里处理参数获取及检查格式 t_url = "&mcc=" + t_mcc + "&mnc=" + t_mnc + "&a=" + t_lac + "&b=" + t_cell + "&hex=" + t_hex + "&type=" + t_type + "&to=1&output=jsonp"; t_url = t_url.replace(/\s+/g, ""); $.ajax({ type: "get", async: false, url: "http://api.gpsspg.com/bs/?oid=我订阅的oid" + t_url, dataType: "jsonp", success: function (results) { o_r = results; showAjaxOK(); }, error: function () { showAjaxError(); } }); }
最终 JQuery 发起的 JSONP 请求 URL :
http://api.gpsspg.com/bs/?oid=我订阅的oid&mcc=460&mnc=00&a=34860&b=62043&hex=10&type=&to=1&output=jsonp&callback=jQuery110208981719282643435_1412312866399&_=1412312866401
此请求返回的 文本 如下所示:请注意,实际的 文本 可能包含较少的空白。您不应假定请求之间的空白数量或格式。
jQuery110208981719282643435_1412312866399&&jQuery110208981719282643435_1412312866399({ "status": "200", "result": { "lat": 22.016210, "lng": 100.749268, "lats": 22.019030, "lngs": 100.748125, "radius": 1500, "rid": "532801", "rids": "532801502000", "address": "云南省西双版纳傣族自治州景洪市嘎洒镇西双版纳金星啤酒有限公司", "roads": "026乡道西约536米" }, "match": 1 })
XML 输出格式
在此示例中,查询请求了 xml
响应:
http://api.gpsspg.com/bs/?oid=我订阅的oid&mcc=460&mnc=00&a=34860&b=62043&hex=10&type=&to=1&output=xml
此请求返回的 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?> <ResultResponse> <status>200</status> <result> <lat>22.016210</lat> <lng>100.749268</lng> <lats>22.019030</lats> <lngs>100.748125</lngs> <radius>1500</radius> <rid>532801</rid> <rids>532801502000</rids> <address>云南省西双版纳傣族自治州景洪市嘎洒镇西双版纳金星啤酒有限公司</address> <roads>026乡道西约536米</roads> </result> <match>1</match> </ResultResponse>
结果响应状态码
status | 错误描述 | 备注 |
---|---|---|
0 | 未知错误 | |
100 | 站点数据维护中 | |
110 | 参数格式错误 | 11*格式错误 |
112 | 参数 Type 格式错误 | |
113 | 参数 MCC 格式错误 | |
114 | 参数 MNC 格式错误 | |
115 | 参数 A 格式错误 | LAC / eNodeB-ID |
116 | 参数 B 格式错误 | CELL ID |
117 | 参数 to 格式错误 | 经纬度类型 |
120 | 参数校验错误 | 12*不存在的值 |
121 | MCC 校验错误 | |
122 | MNC 校验错误 | |
123 | A 校验错误 | LAC / eNodeB-ID |
124 | B 校验错误 | CELL ID |
200 | OK | |
300 | SQL数据连接错误 | |
301 | 读取SQL数据时处理出错 | |
404 | 未收录此数据 | |
701 | 未订阅该api服务 | 订阅后才可以使用 |
702 | 订阅过期 | 继续订阅 |
709 | 违规暂停 | 账户违规锁定或因违规当天暂停 |
900 | 拒绝请求 | KEY不正确或IP/网址未绑定 |
901 | 超过套餐限额 | 可第二天使用或升级套餐 |