根據經緯度獲取所在城市的相關信息以及根據地點城市獲取經緯度


什么是Geocoding

Geocoding API是一個供程序員調用的、http形式的地圖服務接口。主要服務那些非網頁程序的調用。例如C#C++Java等開發語言都能發送http請求且能接收返回數據。

用戶只需在請求的url字串中拼接好關鍵字或者經緯度信息,即可獲取到相應的百度經緯度或者結構化地理信息。

Geocoding API有哪些功能?

Geocoding API包括地址解析和逆地址解析功能。

·        地址解析是指,由詳細到街道的結構化地址得到百度經緯度信息,且支持名勝古跡、標志性建築名稱直接解析返回百度經緯度。例如:北京市海淀區中關村南大街27地址解析的結果是“lng:116.31985,lat:39.959836”百度大廈地址解析的結果是“lng:116.30815,lat:40.056885”

·        逆地址解析是指,由百度經緯度信息得到結構化地址信息。例如:“lat:31.325152,lng:120.558957”逆地址解析的結果是江蘇省蘇州市虎丘區塔園路318


 

使用限制

目前無任何使用限制。請申請key,然后使用該接口。

如何使用

第一步,申請key,點擊這里獲取密鑰,申請key需要注冊百度賬號;

第二步,拼寫發送http請求的url,注意需使用第一步申請的key

第三步,接收http請求返回的數據(支持jsonxml格式)。

服務地址

 

服務地址

·        地址解析:根據地址獲取坐標

http://api.map.baidu.com/geocoder?address=地址&output=輸出格式類型&key=用戶密鑰&city=城市名

·        逆地址解析:根據坐標獲取地址

http://api.map.baidu.com/geocoder?location=緯度,經度&output=輸出格式類型&key=用戶密鑰

備注:

1. city屬於可選參數,通常情況可以不使用,若解析無結果,請嘗試增加此字段。

2. 支持名勝古跡、標志性建築物名稱解析返回百度經緯度坐標,如address=“百度大廈

3. 支持使用“*路與*路交叉口方式解析返回百度經緯度坐標,若地址庫中存在該地址描述,返回百度經緯度坐標。

4. 若解析status字段為OK,若結果內容為空,原因分析及可嘗試方法:

·       地址庫里無此數據,本次結果為空。

·       加入city字段重新解析;

·       將過於詳細或簡單的地址更改至省市區縣街道重新解析;

5. 特別提醒:逆地址解析location參數傳入的參數格式是(緯度lat,經度lng)

接口參數

參數

是否必須

默認值

格式舉例

含義

output

json

json或xml

輸出格式為json或者xml

address

北京市海淀區上地十街10號

根據指定地址進行坐標的反定向解析

location

38.76623,116.43213
lat<緯度>,lng<經度>

根據指定坐標來進行地址的解析

city

“北京市”

“廣州市”

地址所在的城市名

key

8cb976834235d8cbcde2dce4835ae191

用戶申請注冊的key

上表中addresslocation兩個字段如果同時出現,則優先選擇address執行地理編碼功能。對於address字段可能會出現中文或其它一些特殊字符(如:空格),所以對於類似的字符都要進行編碼處理,編碼成 UTF-8 字符的二字符十六進制值,凡是不在下表中的字符都要進行編碼。

字符集合

字符

URL非保留字

a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - _ . ~

URL保留字

! * ' ( ) ; : @ & = + $ , / ? % # [ ]

附注:

(1)javascript中一般采用encodeURIComponent函數對特殊字符進行編碼。

(2) Java中可以使用函數URLEncoder.encode對特殊字符進行編碼。

(3) C#中可以使用函數HttpUtility.UrlEncode對特殊字符進行編碼。

(4) php中可以使用函數urlencode對特殊字符進行編碼。

返回數據說明

返回結果(地址解析的結果)

 {status: '字符串狀態常量', 取值如下:

 //OK成功

 INVILID_KEY 非法密鑰

 INVALID_PARAMETERS 非法參數,參數錯誤時候給出。

 result: {   

 location: {

 lat:緯度:數值,

 lng:經度:數值

 },

 precise:’位置的附加信息,是否精確查找1為精確查找,0為不精確查找),

 confidence: 可信度,

 level:'級別'

 },

 }

返回結果(反地址解析的結果)

 {status: '字符串狀態常量', 取值如下:

 //OK 成功

 INVILID_KEY 非法密鑰  

 INVALID_PARAMETERS 非法參數,參數錯誤時候給出。

 result: {   

 location: {

 lat: 緯度:數值,

 lng: 經度:數值

 },

 formatted_address: ‘詳細地址描述’,

 business: '周圍商圈',

 addressComponent:{

 city:’城市名稱’,

 district: ‘區縣名稱’,

 province:’省份名稱’,

 street: ‘街道名稱’,

 streetNumber: '門牌號碼'

 },

 cityCode: '城市代碼'

 }

 }

 

接口示例

根據詳細地址獲取坐標

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=json&key=37492c0ee6f924cb5e934fa08c6b1676

//根據上地十街10返回坐標“lng:116.307175, lat:40.057098”,以json格式輸出

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676

//根據上地十街十號返回坐標“lng:116.307175, lat:40.057098”,以xml格式輸出

 

在指定城市內檢索詳細地址的坐標

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=json&key=37492c0ee6f924cb5e934fa08c6b1676&city=%E5%8C%97%E4%BA%AC%E5%B8%82

// 在北京市內根據上地十街10返回坐標“lng:116.307175, lat:40.057098”,以json格式輸出

http://api.map.baidu.com/geocoder?address=%E4%B8%8A%E5%9C%B0%E5%8D%81%E8%A1%9710%E5%8F%B7&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676&city=%E5%8C%97%E4%BA%AC%E5%B8%82

// 在北京市內根據上地十街10返回坐標“lng:116.307175, lat:40.057098”,以json格式輸出

 

根據特定建築物獲取它的坐標

http://api.map.baidu.com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=json&key=37492c0ee6f924cb5e934fa08c6b1676  //根據百度大廈名稱返回坐標“lng:116.307175, lat:40.057098”,以json格式輸入

http://api.map.baidu.com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676  //根據百度大廈名稱返回坐標“lng:116.307175, lat:40.057098”,以xml格式輸入

 

根據“*路與*路交叉路口類型地址描述獲得它的坐標

 

根據坐標獲取它的地址

http://api.map.baidu.com/geocoder?output=json&location=39.983424,%20116.322987&key=37492c0ee6f924cb5e934fa08c6b1676

//解析“lat:39.983424, lng:116.322987”坐標返回北京市海淀區中關村大街271101-08,以json格式輸出

http://api.map.baidu.com/geocoder?output=xml&location=39.983424,%20116.322987&key=37492c0ee6f924cb5e934fa08c6b1676

//解析“lat:39.983424, lng:116.322987”坐標返回北京市海淀區中關村大街271101-08,以xml格式輸出


為了更精確。建議使用同一種接口獲取經緯度跟地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM