注意:Google Geocoding API 不再需要 Maps API 金鑰。
什麼是地理編碼
地理編碼是指將地址 (例如 1600 Amphitheatre Parkway, Mountain View, CA) 轉換成地理座標(例如緯度 37.423021 和經度 -122.083739)的程序,而您可以使用這些座標來放置標記或設定地圖位置。Google Geocoding API 可讓使用者直接透過 HTTP 要求存取 Geocoder。另外,此服務能讓您執行反向作業 (將座標轉換為位址);此程序也就是「反向地理編碼」。
使用限制
Google Geocoding API 有查詢限制,每天只能要求 2,500 個地理位置 (Google Maps API Premier 使用者每天最多可查詢 100,000 個要求)。此限制以後如有變更,恕不另行通知。此外,我們也限制要求頻率,以避免發生濫用服務的狀況。如果您已超過24小時的使用上限或是濫用服務,Geocoding API 將暫時無法使用。如果您持續超過上限,則會遭到封鎖,無法使用 Geocoding API。
注意:Geocoding API 必須搭配 Google 地圖一起使用;如未在地圖上顯示結果,即無法使用地理編碼產生結果。
使用方法
Geocoding API 要求必須使用下列其中一種格式:
http://maps.google.com/maps/api/geocode/output?parameters
其中
output
可為下列任一個值︰json
(建議使用) 表示輸出格式為 JavaScript 物件註解 (JSON)xml
表示輸出格式為 XML
&
字元分隔。參數清單和其可能的值列舉如下︰Geocoding API 使用下列網址參數來定義地理編碼要求:
address
(必要):您要進行地理編碼的地址。*
或
latlng
(必要):您將為此文字經/緯度值取得最接近的人類可讀地址。*bounds
(選用):您可在此檢視區的邊框中,進一步自訂調整地理編碼結果。(如需詳細資訊,請參閱「檢視區自訂調整」)。region
(選用):將區域代碼指定為 ccTLD (「頂層網域」) 的兩位字元值。(如需詳細資訊,請參閱「區域自訂調整」)。language
(選用):結果傳回時使用的語言。請參閱「支援的網域語言清單」。請注意,google 經常更新支援的語言,因此這份清單可能會有遺漏。如果未提供language
,Geocoder 會嘗試使用要求傳送所在網域 (不管位於何處) 的預設語言。sensor
(必要):指出地理編碼要求的來源裝置是否附有位置感應器。這個值必須是true
或false
。
address
或 latlng
以進行查閱。如果您傳送的是 latlng
,Geocoder 會執行稱為「反向地理編碼」的程序 (詳情請見「反向地理編碼」)。bounds
和 region
參數會影響但不會完全限制 Geocoder 的結果。地理編碼回應
JSON 輸出格式
回應包含兩個根元素
"status"
包含要求的中繼資料。"OK"
表示沒有發生任何錯誤;地址的剖析已成功完成且至少傳回一個地理編碼。-
"ZERO_RESULTS"
表示地理編碼成功,但是並未傳回任何結果。如果 Geocoder 收到的是遠處的latlng
或是不存在的address
,就有可能發生這種情況。 "OVER_QUERY_LIMIT"
表示您已超過配額。-
"REQUEST_DENIED"
表示您的要求已遭拒絕,通常是因為缺少sensor
參數。 "INVALID_REQUEST"
通常表示查詢 (address
或latlng
) 遺失。- "results" 包含一個地理編碼地址資訊和幾何圖形資訊的陣列。 即使 Geocoder 未傳回任何結果 (例如地址不存在時),它還是會傳回一個空的 (JSON)
results
陣列 (XML 回應是由零或更多的
元素組成)。一般結果中會包含下列欄位: types[]
陣列指出傳回結果的「類型」。這個陣列包含一組 (一或多個) 標記,標有結果傳回的特性類型。例如: locality(地區), political(政治實體)。formatted_address
這個字串包含這個位置的人類可讀地址。通常,這個地址即等於「郵政地址」。-
address_components[]
是一個陣列,包含上述的個別地址元件(數量可能多於formatted_address
中所標示的數量)。每一個address_component
通常包含: types[]
,一個指出地址元件的「類型」的陣列。long_name
,Geocoder 所傳回地址元件的完整文字說明或名稱。short_name
,為地址元件的縮短文字名稱 (如果有的話)。例如,Alaska 州的地址元件中long_name
為「Alaska」,而short_name
則為 2 個字母的郵政簡碼「AK」。geometry
包含下列資訊:location
包含地理編碼的經緯度值。location_type
會儲存指定位置的其他相關資料,目前支援的值如下:"ROOFTOP"
會指出傳回的結果是精準的地理編碼,因為結果中位置資訊的精確範圍已縮小至街道地址。"RANGE_INTERPOLATED"
表示傳回的結果反映的是插入在兩個精確定點之間 (例如十字路口) 的約略位置 (通常會在街道上)。如果 Geocoder 無法取得街道地址的精確定點地理編碼,就會傳回插入的結果。"GEOMETRIC_CENTER"
表示傳回的結果是結果的幾何中心,包括折線 (例如街道) 和多邊形 (區域)。"APPROXIMATE"
表示傳回的結果是約略位置。viewport
包含建議用來顯示傳回結果的檢視區,檢視區的值兩個經緯度值,分別定義檢視區邊框的southwest
角和northeast
角。一般來說,檢視區是指您對使用者顯示結果時,用於結果的邊框。bounds
(選擇性傳回) 會儲存可完全包含傳回結果的邊框。請注意,這些邊界可能與建議的檢視區不同。(舉例來說,舊金山行政區涵蓋 法拉倫島 (英文網頁),雖然這在技術上是舊金山的一部分,但是可能不會在檢視區中傳回)。
XML 輸出格式
(略)
地址元件類型
傳回結果內的
types[]
陣列會指出「地址類型」。這些類型也可能透過 address_components[]
陣列傳回,以指出特定地址元件的類型。Geocoder 中的地址能夠擁有多個類型;我們可以將這些類型視為「標記」。常看到的列表如下...country
會指出國家/地區政治實體,且通常是 Geocoder 所能傳回的最高順位類型。floor
會指出建築物地址的樓層。intersection
會指出主要的十字路口,通常包含兩條主要道路。political
會指出政治實體。通常,這個類型會顯示某些公家機關建築物的多邊形。postal_code
會指出國家/地區郵政地址所使用的郵遞區號。room
會指出建築物地址的房號。route
會指出具名的路線 (例如「US 101」)。street_address
會指出精確的街道地址。street_number
會指出精確的街道號碼。
更多定義可以看這裡。
舉例:
針對「1600 Amphitheatre Parkway, Mountain View, CA」的查詢要求一個
json
格式的回應:http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false
反向地理編碼
「地理編碼」一詞通常是指將人類可讀的地址轉譯成地圖位置的程序。如果我們反向執行這個程序,也就是將地圖位置轉譯成人類可讀的地址,則是在執行「反向地理編碼」。
Geocoding API 支援直接使用
latlng
參數執行反向地理編碼。例如,下方查詢包含 Brooklyn 某處的經緯度:http://maps.google.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=false
注意:傳入
latlng
參數時,請確定經度和緯度的值之間沒有任何空格。注意:反向地理編碼只是一個估計值。Geocoder 將在容許的範圍內,嘗試找出最接近的地址位置;如果找不到任何符合的項目,Geocoder 會傳回零個結果。
自定檢視區
你也可以自定檢視區。利用
bounds
參數定義了此邊框的西南角和東北角的經/緯度座標,並以管道 (|
) 字元來分隔座標。例如,下方查詢...http://maps.google.com/maps/api/geocode/json?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&sensor=false
自訂區域
或者使用
region
參數得到自訂區域(特定國家/地區)的結果。例如,下方查詢"西班牙的 Toledo"...http://maps.google.com/maps/api/geocode/json?address=Toledo&sensor=false®ion=es
region
這個參數接受的 ccTLD (國家/地區代碼頂層網域) 引數可用來指定區域自訂調整(預設網域為美國)。多數 ccTLD 代碼與 ISO 3166-1 代碼相同,只有少數例外。例如,英國的 ccTLD 是「uk」(.co.uk
),但 ISO 3166-1 代碼卻是「gb」(正式的國名是「大不列顛暨北愛爾蘭聯合王國」)。--
詳情請參閱 這裡
沒有留言:
張貼留言