GPSspg 基站地理定位 API 經過相關參數返回基於基站的客戶端位置。一般在不能接受到GPS信號的狀況下,用於得到基於基站的粗略位置,精確度取決於客戶端設備和基站之間的距離。javascript
相比於其它平臺,GPSspg 基站地理定位 API 的特點:可輸出供多種地圖使用的經緯度座標,如 Google Earth(WGS84) / Google Maps / 百度地圖 / 騰訊高德地圖 / MapBar 圖吧地圖;輸出6位中國行政區劃代碼及12位統計用區劃代碼;使用 DNSpod 域名解析及 Azure 構建平臺隨時擴充可響應海量請求,爲你的業務提升穩定性。java
咱們對這些請求設置了次數限制(視訂閱套餐限制請求次數,見用戶後臺訂閱處),以防出現濫用服務的現象。而且此限制之後可能會在不另做通知的狀況下 發生變化。此外,咱們還設定了請求速率限制,以防濫用此服務。若是您超出了 24 小時限制或以其餘方式濫用此服務,API 可能會臨時中止運行。若是您繼續超出此限制,那麼系統將阻止您訪問 API。不能註冊多個帳戶使用未充值積分(贈送積分)進行請求,不然你的帳戶或IP可能被永久鎖定。ajax
注意:不能以採集保存結果目的使用此API,不然你的帳戶或IP可能被永久鎖定。json
須要先在用戶後臺 API 下面訂閱,訂閱成功後,在 我訂閱的API 下面能夠看到OID與KEY。一個帳戶只能訂閱一個API。訂閱之套餐級別可隨時更改。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。詳見:全球移動設備國家代碼 MCCmnc
:移動設備網絡代碼(Mobile Network Code,MNC),中國移動 = 00 / 02 / 07, 中國聯通 = 01 / 06, 中國電信 = 03 / 05。詳見:全球移動設備網絡代碼 MNCtype
:空值 或 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,表示輸出經緯度類型。詳見上述:經緯度類型選填參數async
key
:32位文本值。在 我訂閱的API 下面查看。若是附加了訂閱之KEY參數,將只驗證KEY是否相符(不驗證綁定之IP與網址)。請勿暴露你的KEY。 建議:在你的網站上進行 JSONP 跨域請求,請綁定網址;在固定 IP 上請求,請綁定 IP。output
:輸出格式 json
(默認),用於表示以 JavaScript 對象表示法 (JSON) 的形式輸出。 jsonp
,用於以 JavaScript 對象跨域訪問數據。 xml
,用於表示以 XML 的形式輸出。callback
:1~60位英文數字下劃線。在輸出JSONP時需指定,默認值爲 callback。返回的結果響應格式由網址請求的參數中的 output
標記指定。默認爲json。jsonp
返回結果中的 lat lng
對應請求參數 to
的座標類型。當 to=0(GPS座標) 時,會附加一個 lats/lngs,用於 Google 地圖模式下顯示用座標。當 to=1(Google 地圖模式座標)時,會附加一個 lats/lngs,用於 Google Maps 衛星圖模式下顯示用座標。
返回結果中的 roads
少部份可能無結果會空。
返回結果中的 match
:1 = 匹配,2 = 推算,8 = 國家。
在此示例中,查詢請求了 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是一個非官方的協議,它容許在服務器端集成 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
響應:
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 | 超過套餐限額 | 可次日使用或升級套餐 |