地理編碼是將地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)轉(zhuǎn)換為地理坐標(biāo)(如緯度 37.423021 和經(jīng)度 -122.083739)的過程,您可以借此在地圖上放置標(biāo)記,或在地圖上定位。
反向地理編碼是將地理坐標(biāo)轉(zhuǎn)換為可人工讀取的地址的過程。Google Maps Geocoding API 的反向地理編碼服務(wù)還可讓您找到對(duì)應(yīng)于給定的地點(diǎn) ID 的地址。
Google Maps Geocoding API 提供了一種通過 HTTP 請(qǐng)求來訪問這些服務(wù)的直接方法。
本文檔面向需要使用其中一個(gè) Google Maps API 提供的地圖中地理編碼數(shù)據(jù)的網(wǎng)站和移動(dòng)開發(fā)者。
此服務(wù)通常用于對(duì)(預(yù)先知道的)靜態(tài)地址進(jìn)行地理編碼,以便將應(yīng)用內(nèi)容放置到地圖上;例如,此服務(wù)不用于實(shí)時(shí)響應(yīng)用戶輸入。有關(guān)動(dòng)態(tài)地理編碼(例如,在某個(gè)用戶界面元素內(nèi))的信息,請(qǐng)查閱關(guān)于 Google Maps javaScript API 客戶端地理編碼器和/或 Google Play 服務(wù) Location API 的文檔。
地理編碼是一項(xiàng)時(shí)間和資源密集型任務(wù)。只要有可能,請(qǐng)(使用此處所描述的 Google Maps Geocoding API 或其他地理編碼服務(wù))對(duì)已知地址進(jìn)行預(yù)地理編碼,并將結(jié)果存儲(chǔ)在您自己的設(shè)計(jì)的臨時(shí)緩存中。
要使用 Google Maps Geocoding API,您需要一個(gè) API 密鑰。
Google Maps Geocoding API 請(qǐng)求必須采用以下形式:
https://maps.googleapis.com/maps/api/geocode/output?parameters其中,
output可以是以下值之一:json(推薦)指示以 Javascript 對(duì)象標(biāo)記 (JSON) 輸出xml指示以 XML 格式輸出如需通過 HTTP 訪問 Google Maps Geocoding API,請(qǐng)使用:
http://maps.googleapis.com/maps/api/geocode/output?parameters對(duì)于請(qǐng)求中包含敏感用戶數(shù)據(jù)(例如用戶的位置)的應(yīng)用,不建議使用 HTTP。
有些參數(shù)是必填的,而有些是可選的。依照 URL 的標(biāo)準(zhǔn),參數(shù)都使用“與”字符 (
&) 分隔。Google Maps API for Work 用戶必須在其地理編碼請(qǐng)求中包含有效的
client和signature參數(shù)。如需了解詳細(xì)信息,請(qǐng)參閱 Google Maps API for Work Web Services。因?yàn)槊糠N請(qǐng)求類型使用的參數(shù)不同,所以本頁面的其余部分分別介紹了地理編碼和反向地理編碼。
地理編碼(緯度/經(jīng)度查詢)
地理編碼請(qǐng)求中的必填參數(shù):
address– 要進(jìn)行地理編碼的街道地址,采用相關(guān)國家/地區(qū)的全國郵政服務(wù)所使用的格式。應(yīng)避免其他地址元素,例如企業(yè)名稱以及單元號(hào)、套房號(hào)或樓層。 或components– 您希望獲得其地理編碼的組成部分過濾器。如需了解詳細(xì)信息,請(qǐng)參閱組成部分過濾。如果提供了address,還將接受組成部分過濾器作為可選參數(shù)。key– 您的應(yīng)用的 API 密鑰。此密鑰可以標(biāo)識(shí)您的應(yīng)用,以便進(jìn)行配額管理。地理編碼請(qǐng)求中的可選參數(shù):
bounds– 視口的邊框,在其中可以使地理編碼結(jié)果更顯著地發(fā)生偏向。此參數(shù)只會(huì)影響,而不會(huì)完全限制地理編碼器中的結(jié)果。(如需了解詳細(xì)信息,請(qǐng)參閱下面的視口偏向。)language– 返回結(jié)果時(shí)使用的語言。請(qǐng)參閱支持的區(qū)域語言列表。請(qǐng)注意,我們會(huì)經(jīng)常更新支持的語言,因此,此列表可能并不全面。如果未提供language,地理編碼器將盡可能嘗試使用發(fā)送請(qǐng)求區(qū)域的當(dāng)?shù)卣Z言。region– 地區(qū)代碼,指定為一個(gè) ccTLD(“頂級(jí)域名”)雙字符值。此參數(shù)只會(huì)影響,而不會(huì)完全限制地理編碼器中的結(jié)果。(如需了解詳細(xì)信息,請(qǐng)參閱下面的地區(qū)偏向。)components– 組成部分過濾器,用管道符號(hào) (|) 分隔。每個(gè)組成部分過濾器由一個(gè)component:value對(duì)組成,將完全限制地理編碼器中的結(jié)果。如需了解詳細(xì)信息,請(qǐng)參閱下面的組成部分過濾。Supported Languages
| Language Code | Language | Language Code | Language |
|---|---|---|---|
| ar | Arabic | kn | Kannada |
| bg | Bulgarian | ko | Korean |
| bn | Bengali | lt | Lithuanian |
| ca | Catalan | lv | Latvian |
| cs | Czech | ml | Malayalam |
| da | Danish | mr | Marathi |
| de | German | nl | Dutch |
| el | Greek | no | Norwegian |
| en | English | pl | Polish |
| en-AU | English (Australian) | pt | Portuguese |
| en-GB | English (Great Britain) | pt-BR | Portuguese (Brazil) |
| es | Spanish | pt-PT | Portuguese (Portugal) |
| eu | Basque | ro | Romanian |
| eu | Basque | ru | Russian |
| fa | Farsi | sk | Slovak |
| fi | Finnish | sl | Slovenian |
| fil | Filipino | sr | Serbian |
| fr | French | sv | Swedish |
| gl | Galician | ta | Tamil |
| gu | Gujarati | te | Telugu |
| hi | Hindi | th | Thai |
| hr | Croatian | tl | Tagalog |
| hu | Hungarian | tr | Turkish |
| id | Indonesian | uk | Ukrainian |
| it | Italian | vi | Vietnamese |
| iw | Hebrew | zh-CN | Chinese (Simplified) |
| ja | Japanese | zh-TW | Chinese (Traditional) |
地理編碼響應(yīng)以 URL 請(qǐng)求路徑中 output 標(biāo)志指示的格式返回。
在此示例中,Google Maps Geocoding API 請(qǐng)求針對(duì)“1600 Amphitheatre Parkway, Mountain View, CA”查詢的 json 響應(yīng)。
此請(qǐng)求演示了如何使用 JSON output 標(biāo)志:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY此請(qǐng)求演示了如何使用 XML
output標(biāo)志:https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY點(diǎn)擊下面的選項(xiàng)卡,查看 JSON 和 XML 響應(yīng)示例。
JSONXML{ "results" : [ { "address_components" : [ { "long_name" : "1600", "short_name" : "1600", "types" : [ "street_number" ] }, { "long_name" : "Amphitheatre Pkwy", "short_name" : "Amphitheatre Pkwy", "types" : [ "route" ] }, { "long_name" : "Mountain View", "short_name" : "Mountain View", "types" : [ "locality", "political" ] }, { "long_name" : "Santa Clara County", "short_name" : "Santa Clara County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "California", "short_name" : "CA", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] }, { "long_name" : "94043", "short_name" : "94043", "types" : [ "postal_code" ] } ], "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA", "geometry" : { "location" : { "lat" : 37.4224764, "lng" : -122.0842499 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 37.4238253802915, "lng" : -122.0829009197085 }, "southwest" : { "lat" : 37.4211274197085, "lng" : -122.0855988802915 } } }, "place_id" : "ChIJ2eUgeAK6j4ARbn5u_wAGqWA", "types" : [ "street_address" ] } ], "status" : "OK"}請(qǐng)注意,JSON 響應(yīng)包含兩個(gè)根元素:
"status"包含請(qǐng)求的元數(shù)據(jù)。請(qǐng)參閱下面的狀態(tài)代碼。"results"包含一個(gè)有關(guān)地理編碼地址信息和幾何信息的數(shù)組。雖然當(dāng)?shù)刂凡樵儽容^模糊時(shí),地理編碼器可能返回多個(gè)結(jié)果,但通常地址查找只返回
"results"數(shù)組中的一個(gè)條目。請(qǐng)注意,如果您想從結(jié)果中提取值,通常需要對(duì)這些結(jié)果進(jìn)行解析。JSON 的解析相對(duì)容易。如需了解一些推薦的設(shè)計(jì)模式,請(qǐng)參閱解析 JSON。
狀態(tài)代碼
地理編碼響應(yīng)對(duì)象中的
"status"字段包含了請(qǐng)求的狀態(tài),還可能包含調(diào)試信息,以幫助您查明地理編碼不工作的原因。"status"字段可以包含以下值:"OK"表示未出現(xiàn)任何錯(cuò)誤;已成功解析地址,并且至少返回了一個(gè)地理編碼。"ZERO_RESULTS"表示地理編碼成功,但未返回任何結(jié)果。如果向地理編碼器傳遞了一個(gè)不存在address,就可能會(huì)發(fā)生這種情況。"OVER_QUERY_LIMIT"表示您已超出配額。"REQUEST_DENIED"表示系統(tǒng)已拒絕您的請(qǐng)求。"INVALID_REQUEST"一般表示缺少查詢(address、components或latlng)。"UNKNOWN_ERROR"表示由于服務(wù)器發(fā)生錯(cuò)誤,因此無法處理該請(qǐng)求。如果您重試一次,請(qǐng)求可能會(huì)成功錯(cuò)誤消息
當(dāng)?shù)乩砭幋a器返回
OK以外的狀態(tài)代碼時(shí),地理編碼響應(yīng)對(duì)象中可能會(huì)包含一個(gè)附加的error_message字段。此字段更詳細(xì)地說明了給定狀態(tài)代碼背后的原因。注:此字段不保證始終出現(xiàn),并且其內(nèi)容可能會(huì)更改。
結(jié)果
當(dāng)?shù)乩砭幋a器返回結(jié)果時(shí),會(huì)將這些結(jié)果放在一個(gè) (JSON)
results數(shù)組中。即使地理編碼器沒有返回任何結(jié)果(例如,如果地址不存在),它仍然會(huì)返回一個(gè)空的results數(shù)組。(XML 響應(yīng)包含零個(gè)或更多個(gè)<result>元素。)典型的結(jié)果由以下字段組成:
types[]數(shù)組表示返回結(jié)果的類型。此數(shù)組包含一組標(biāo)記(可能為零個(gè)或多個(gè)),用于標(biāo)識(shí)結(jié)果中所返回特征的類型。例如,“芝加哥”的地理編碼返回“l(fā)ocality”,這表明“芝加哥”是一個(gè)城市,并且還返回“political”,這表明它是一個(gè)政治實(shí)體。
formatted_address:是一個(gè)包含此位置可人工讀取的地址的字符串。通常此地址相當(dāng)于“郵政地址”,有時(shí)會(huì)因國家/地區(qū)而異。(請(qǐng)注意,由于許可限制,某些國家(如英國)不允許發(fā)布真實(shí)的郵政地址。)此地址通常由一個(gè)或多個(gè)地址組成部分組成。例如,地址“111 8th Avenue, New York, NY”包含以下地址組成部分:“111”(街道號(hào))、“8th Avenue”(道路)、“New York”(城市)和“NY”(美國的一個(gè)州)。這些地址組成部分包含如下所述的附加信息。
address_components[]是包含獨(dú)立的地址組成部分的數(shù)組,如上所述。通常,每個(gè)address_component均包含:types[],一個(gè)表示地址組成部分類型的數(shù)組。long_name是地理編碼器返回的地址組成部分的完整文本說明或名稱。short_name是地址組成部分的文本名稱縮寫(如有)。例如,Alaska 州的地址組成部分可以有long_name“Alaska”和short_name“AK”(使用雙字母郵政縮寫表示)。請(qǐng)注意,
address_components[]中包含的地址組成部分可能比formatted_address中記錄的更多。postcode_localities[]是一個(gè)數(shù)組,表示一個(gè)郵政編碼中包含的所有地方。只有當(dāng)結(jié)果是一個(gè)包含多個(gè)地方的郵政編碼時(shí),才會(huì)有此數(shù)組。
geometry包含以下信息:location:其中包含地理編碼經(jīng)度、緯度值。對(duì)于普通的地址查找,此字段通常是最重要的。
location_type存儲(chǔ)有關(guān)指定位置的附加數(shù)據(jù)。目前支持以下值:"ROOFTOP"表示返回的結(jié)果是一個(gè)精確的地理編碼,我們使其位置信息精確到街道地址的精度。"RANGE_INTERPOLATED"表示返回的結(jié)果反映了兩個(gè)精確點(diǎn)(例如交叉路口)之間用內(nèi)插法計(jì)算得到的近似值(通常在道路上)。當(dāng)某個(gè)街道地址的 rooftop 地理編碼不可用時(shí),通常會(huì)返回內(nèi)插值結(jié)果。"GEOMETRIC_CENTER"表示返回的結(jié)果是某個(gè)位置(如多段線(例如街道)或多邊形(地區(qū)))的幾何中心。"APPROXIMATE"表示返回的結(jié)果是近似值。viewport包含用于顯示返回結(jié)果的推薦視口,指定為兩個(gè)緯度、經(jīng)度值,分別定義視口邊框的southwest和northeast角。視口通常用來在向用戶顯示結(jié)果時(shí)為該結(jié)果加邊框。bounds(可選返回)存儲(chǔ)可完全包含返回結(jié)果的邊框。請(qǐng)注意,這些邊界可能與推薦的視口不一致。(例如,舊金山包含費(fèi)拉隆島,理論上它是這個(gè)城市的一部分,但可能不應(yīng)該在視口中返回。)
partial_match表示雖然地理編碼器能夠匹配所請(qǐng)求的地址的一部分,但它未能返回原始請(qǐng)求的精確匹配項(xiàng)。您不妨檢查一下原始請(qǐng)求中是否有拼寫錯(cuò)誤和/或地址不完整的情況。對(duì)于請(qǐng)求中所傳遞的行政區(qū)劃內(nèi)不存在的街道地址,最常發(fā)生部分匹配的情況。當(dāng)請(qǐng)求與同一行政區(qū)劃中的兩個(gè)或更多位置相匹配時(shí),也可能會(huì)返回部分匹配。例如,“21 Henr St, Bristol, UK”將返回 Henry Street 和 Henrietta Street 這兩項(xiàng)部分匹配結(jié)果。請(qǐng)注意,如果請(qǐng)求中包含拼寫錯(cuò)誤的地址組成部分,地理編碼服務(wù)可能會(huì)建議一個(gè)備選地址。以這種方式觸發(fā)的建議也將標(biāo)記為部分匹配。
place_id是唯一一個(gè)可以與其他 Google API 結(jié)合使用的標(biāo)識(shí)符。例如,您可以在 Google Places API 請(qǐng)求中使用place_id獲取當(dāng)?shù)仄髽I(yè)的詳情,如電話號(hào)碼、營業(yè)時(shí)間、用戶評(píng)論等。請(qǐng)參閱地點(diǎn) ID 概覽。由于不能保證對(duì) Google Maps Geocoding API 請(qǐng)求的個(gè)別響應(yīng)的格式準(zhǔn)確,因此您永遠(yuǎn)不應(yīng)該假定元素處于絕對(duì)位置。(特別是,Geocoding API 響應(yīng)中
address_components的數(shù)量會(huì)根據(jù)請(qǐng)求的地址而有所不同,并且可以隨時(shí)間而改變。)相反,您應(yīng)該解析響應(yīng),并通過表達(dá)式選擇合適的值。如需了解詳細(xì)信息,請(qǐng)參閱解析 Web 服務(wù)響應(yīng)。地址類型和地址組成部分類型
結(jié)果中的
types[]數(shù)組表示地址類型。地址類型的示例包括街道地址、國家/地區(qū)或政治實(shí)體。在address_components[]中也有一個(gè)types[]數(shù)組,用來表示地址各個(gè)部分的類型。示例包括門牌號(hào)碼或國家/地區(qū)。(以下是類型的完整列表。)地址可能有多種類型。這些類型可能會(huì)被視為“標(biāo)記”。例如,許多城市都標(biāo)有political和locality類型。地理編碼器以地址類型和地址組成部分類型數(shù)組這兩種形式支持并返回以下類型:
street_address表示精確的街道地址。route:表示已命名的路線(例如“US 101”)intersection:表示主要交叉路口,通常是兩條主要道路的交叉路口political:表示政治實(shí)體。通常,這種類型表示某個(gè)民政管理部門的多邊形country:表示國家政治實(shí)體,通常是由地理編碼器返回的最高級(jí)別類型administrative_area_level_1:表示國家/地區(qū)級(jí)別以下的一級(jí)行政實(shí)體。在美國,這種行政級(jí)別就是州。并非所有國家都設(shè)有這類行政級(jí)別administrative_area_level_2:表示國家/地區(qū)級(jí)別以下的二級(jí)行政實(shí)體。在美國,這種行政級(jí)別就是縣。并非所有國家都設(shè)有這類行政級(jí)別administrative_area_level_3:表示國家/地區(qū)級(jí)別以下的三級(jí)行政實(shí)體。此類型表示較小的行政區(qū)劃單位。并非所有國家都設(shè)有這類行政級(jí)別administrative_area_level_4:表示國家/地區(qū)級(jí)別以下的四級(jí)行政實(shí)體。此類型表示較小的行政區(qū)劃單位。并非所有國家都設(shè)有這類行政級(jí)別administrative_area_level_5:表示國家/地區(qū)級(jí)別以下的五級(jí)行政實(shí)體。此類型表示較小的行政區(qū)劃單位。并非所有國家都設(shè)有這類行政級(jí)別colloquial_area:表示實(shí)體的常用替代名稱locality表示合并的城市或城鎮(zhèn)政治實(shí)體。ward表示一種特定的日本行政區(qū)劃類型,以便于區(qū)分某個(gè)日本地址中的多個(gè)行政區(qū)劃組成部分。sublocality:表示 locality 以下的一級(jí)行政實(shí)體。某些位置可能會(huì)收到其他類型之一:從sublocality_level_1到sublocality_level_5。每個(gè) sublocality 級(jí)別都是一個(gè)行政實(shí)體。數(shù)字越大,表示的地理區(qū)域越小neighborhood表示已命名的街區(qū)premise表示已命名的位置,通常是具有常見名稱的一棟或一群建筑物subpremise表示指定位置以下的一級(jí)實(shí)體,通常是同名建筑群中的單個(gè)建筑物postal_code表示郵政編碼,用于國內(nèi)的地址郵寄。natural_feature:表示著名的自然景觀airport:表示機(jī)場(chǎng)park:表示已命名的公園。point_of_interest表示已命名的景點(diǎn)。通常,這些“景點(diǎn)”是不容易歸入其他類別的著名地方實(shí)體,如“帝國大廈”或“自由女神像”。空的類型列表表示特殊的地址組成部分沒有對(duì)應(yīng)的已知類型,例如法國的地方 (Lieu-dit)。
除了上述類型之外,地址組成部分還可能包括下列類型。
注:此列表并不全面,并且隨時(shí)可能更改。
floor:表示某個(gè)建筑物地址的樓層establishment通常表示某個(gè)尚未歸類的地方。point_of_interest表示已命名的景點(diǎn)。parking表示停車場(chǎng)或停車設(shè)施。post_box表示特定的郵政信箱。postal_town表示地理區(qū)域的分組,如locality和sublocality,在某些國家/地區(qū)用于郵寄地址。room表示某個(gè)建筑物地址的房間。street_number表示確切的門牌號(hào)碼。bus_station、train_station和transit_station表示巴士、火車或公交車站的位置。視口偏向
在地理編碼請(qǐng)求中,您可以指示讓地理編碼服務(wù)傾向于使用某個(gè)給定視口(表示為邊框)中的結(jié)果。您可以通過設(shè)置
bounds參數(shù)在請(qǐng)求 URL 中執(zhí)行此操作。請(qǐng)注意,偏向只是傾向于使用邊界以內(nèi)的結(jié)果;如果在這些邊界之外存在更相關(guān)的結(jié)果,也可能會(huì)將這些結(jié)果包括在內(nèi)。
bounds參數(shù)定義了此邊框的西南角和東北角的緯度/經(jīng)度坐標(biāo),并使用管道字符 (|) 分隔這些坐標(biāo)。例如,“溫內(nèi)特卡”的地理編碼一般會(huì)返回芝加哥的以下郊區(qū):
請(qǐng)求:
https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&key=YOUR_API_KEY響應(yīng):
{ "results" : [ { "address_components" : [ { "long_name" : "Winnetka", "short_name" : "Winnetka", "types" : [ "locality", "political" ] }, { "long_name" : "New Trier", "short_name" : "New Trier", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "Cook County", "short_name" : "Cook County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "Illinois", "short_name" : "IL", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] } ], "formatted_address" : "Winnetka, IL, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 42.1282269, "lng" : -87.7108162 }, "southwest" : { "lat" : 42.0886089, "lng" : -87.7708629 } }, "location" : { "lat" : 42.10808340000001, "lng" : -87.735895 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 42.1282269, "lng" : -87.7108162 }, "southwest" : { "lat" : 42.0886089, "lng" : -87.7708629 } } }, "place_id" : "ChIJW8Va5TnED4gRY91Ng47qy3Q", "types" : [ "locality", "political" ] } ], "status" : "OK"}然而,添加一個(gè)為洛杉磯圣費(fèi)爾南多谷定義邊框的
bounds參數(shù)會(huì)使得此地理編碼返回位于該位置的名為“溫內(nèi)特卡”的鄰近地區(qū):請(qǐng)求:
https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&key=YOUR_API_KEY響應(yīng):
{ "results" : [ { "address_components" : [ { "long_name" : "Winnetka", "short_name" : "Winnetka", "types" : [ "neighborhood", "political" ] }, { "long_name" : "Los Angeles", "short_name" : "LA", "types" : [ "locality", "political" ] }, { "long_name" : "Los Angeles County", "short_name" : "Los Angeles County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "California", "short_name" : "CA", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] } ], "formatted_address" : "Winnetka, Los Angeles, CA, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 34.2355209, "lng" : -118.5534191 }, "southwest" : { "lat" : 34.1854649, "lng" : -118.588536 } }, "location" : { "lat" : 34.2048586, "lng" : -118.5739621 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 34.2355209, "lng" : -118.5534191 }, "southwest" : { "lat" : 34.1854649, "lng" : -118.588536 } } }, "place_id" : "ChIJ0fd4S_KbwoAR2hRDrsr3HmQ", "types" : [ "neighborhood", "political" ] } ], "status" : "OK"}地區(qū)偏向
在地理編碼響應(yīng)中,Google Maps Geocoding API 返回受發(fā)送請(qǐng)求地區(qū)(通常是國家)影響的地址結(jié)果。例如,在美國的某個(gè)區(qū)域和在西班牙搜索“San Francisco”,可能會(huì)返回不同的結(jié)果。
您可以使用
region參數(shù)將 Google Maps Geocoding API 設(shè)置為返回偏向于特定地區(qū)的結(jié)果。該參數(shù)帶有指定地區(qū)偏向的 ccTLD(國家代碼頂級(jí)域)自變量。大多數(shù) ccTLD 代碼與 ISO 3166-1 代碼相同,但有一些明顯的例外。例如,英國的國家代碼頂級(jí)域名為“uk”(.co.uk),而其 ISO 3166-1 代碼卻是“gb”(專指“大不列顛及北愛爾蘭聯(lián)合王國”這一實(shí)體)。地理編碼結(jié)果可以偏向于正式推出了主要 Google Maps 應(yīng)用的每個(gè)區(qū)域。請(qǐng)注意,偏向只是傾向于使用某個(gè)特定區(qū)域的結(jié)果;如果在此區(qū)域以外存在更相關(guān)的結(jié)果,也可能會(huì)將這些結(jié)果包括在內(nèi)。
例如,由于 Google Maps Geocoding API 的默認(rèn)區(qū)域設(shè)置為美國,因此“Toledo”的地理編碼返回以下結(jié)果。請(qǐng)求:
https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&key=YOUR_API_KEY響應(yīng):
{ "results" : [ { "address_components" : [ { "long_name" : "Toledo", "short_name" : "Toledo", "types" : [ "locality", "political" ] }, { "long_name" : "Lucas County", "short_name" : "Lucas County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "Ohio", "short_name" : "OH", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] } ], "formatted_address" : "Toledo, OH, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 41.732844, "lng" : -83.4547053 }, "southwest" : { "lat" : 41.580266, "lng" : -83.69423700000002 } }, "location" : { "lat" : 41.6639383, "lng" : -83.55521200000001 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 41.732844, "lng" : -83.4547053 }, "southwest" : { "lat" : 41.580266, "lng" : -83.69423700000002 } } }, "place_id" : "ChIJeU4e_C2HO4gRRcM6RZ_IPHw", "types" : [ "locality", "political" ] }, { "address_components" : [ { "long_name" : "Toledo", "short_name" : "Toledo", "types" : [ "locality", "political" ] }, { "long_name" : "Lincoln County", "short_name" : "Lincoln County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "Oregon", "short_name" : "OR", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] } ], "formatted_address" : "Toledo, OR, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 44.6383219, "lng" : -123.9129439 }, "southwest" : { "lat" : 44.598776, "lng" : -123.954585 } }, "location" : { "lat" : 44.621507, "lng" : -123.9384478 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 44.6383219, "lng" : -123.9129439 }, "southwest" : { "lat" : 44.598776, "lng" : -123.954585 } } }, "place_id" : "ChIJmcjO1AjUwVQRDsRYrfWvzyo", "types" : [ "locality", "political" ] }, { "address_components" : [ { "long_name" : "Toledo", "short_name" : "Toledo", "types" : [ "locality", "political" ] }, { "long_name" : "Toledo", "short_name" : "Toledo", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "Tama County", "short_name" : "Tama County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "Iowa", "short_name" : "IA", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] } ], "formatted_address" : "Toledo, IA, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 42.00388600000001, "lng" : -92.56695289999999 }, "southwest" : { "lat" : 41.9784431, "lng" : -92.60007299999999 } }, "location" : { "lat" : 41.9972134, "lng" : -92.5835266 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 42.00388600000001, "lng" : -92.56695289999999 }, "southwest" : { "lat" : 41.9784431, "lng" : -92.60007299999999 } } }, "place_id" : "ChIJvwoVNEOE74cR3oQfIk7m6fU", "types" : [ "locality", "political" ] }, { "address_components" : [ { "long_name" : "Toledo", "short_name" : "Toledo", "types" : [ "locality", "political" ] }, { "long_name" : "Lewis County", "short_name" : "Lewis County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "Washington", "short_name" : "WA", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] }, { "long_name" : "98591", "short_name" : "98591", "types" : [ "postal_code" ] } ], "formatted_address" : "Toledo, WA 98591, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 46.44799889999999, "lng" : -122.8419249 }, "southwest" : { "lat" : 46.43233009999999, "lng" : -122.85575 } }, "location" : { "lat" : 46.4398305, "lng" : -122.846783 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 46.44799889999999, "lng" : -122.8419249 }, "southwest" : { "lat" : 46.43233009999999, "lng" : -122.85575 } } }, "place_id" : "ChIJPw9m6cb4k1QRyA5L3wI_dRM", "types" : [ "locality", "political" ] } ], "status" : "OK"}設(shè)置了
region=es(西班牙)后,“Toledo”的地理編碼請(qǐng)求將返回西班牙的城市。請(qǐng)求:https://maps.googleapis.com/maps/api/geocode/json?address=Toledo®ion=es&key=YOUR_API_KEY響應(yīng):
{ "results" : [ { "address_components" : [ { "long_name" : "Toledo", "short_name" : "Toledo", "types" : [ "locality", "political" ] }, { "long_name" : "Toledo", "short_name" : "Toledo", "types" : [ "administrative_area_level_4", "political" ] }, { "long_name" : "Vega de Toledo", "short_name" : "Vega de Toledo", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "Toledo", "short_name" : "TO", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "Castile-La Mancha", "short_name" : "CM", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "Spain", "short_name" : "ES", "types" : [ "country", "political" ] } ], "formatted_address" : "Toledo, Toledo, Spain", "geometry" : { "bounds" : { "northeast" : { "lat" : 39.88605099999999, "lng" : -3.9192423 }, "southwest" : { "lat" : 39.8383676, "lng" : -4.0629256 } }, "location" : { "lat" : 39.8628316, "lng" : -4.027323099999999 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 39.88605099999999, "lng" : -3.9192423 }, "southwest" : { "lat" : 39.8383676, "lng" : -4.0629256 } } }, "place_id" : "ChIJ8f21C60Lag0R_q11auhbf8Y", "types" : [ "locality", "political" ] } ], "status" : "OK"}組成部分過濾
在地理編碼響應(yīng)中,Google Maps Geocoding API 可以返回限制在某個(gè)特定區(qū)域的地址結(jié)果。使用
components過濾器來指定限制。過濾器由一個(gè)component:value對(duì)列表組成,這些鍵值對(duì)用管道符號(hào) (|) 分隔。只有符合所有過濾器的結(jié)果才會(huì)被返回。過濾器值支持與其他地理編碼請(qǐng)求相同的用于拼寫校正和部分匹配的方法。如果地理編碼結(jié)果部分匹配某個(gè)組成部分過濾器,它將在響應(yīng)中包含partial_match字段。可以過濾的
components包括:route用來匹配路由的長名稱或短名稱。locality既可以匹配locality類型,也可以匹配sublocality類型。administrative_area用來匹配所有administrative_area級(jí)別。postal_code用來匹配postal_code和postal_code_prefix。country用來匹配國家/地區(qū)名稱或兩個(gè)字母的 ISO 3166-1 國家/地區(qū)代碼。注:要么在地址參數(shù)中指定每個(gè)地址組成部分,要么將其指定為組成部分過濾器,這兩種方式只能選擇其一,不可同時(shí)使用。這樣做可能會(huì)導(dǎo)致
ZERO_RESULTS。設(shè)置了
components=country:ES后,“Santa Cruz”的地理編碼將返回西班牙加那利群島的圣克魯斯特內(nèi)里費(fèi)。請(qǐng)求:https://maps.googleapis.com/maps/api/geocode/json?address=santa+cruz&components=country:ES&key=YOUR_API_KEY響應(yīng):
{ "results" : [ { "address_components" : [ { "long_name" : "Santa Cruz de Tenerife", "short_name" : "Santa Cruz de Tenerife", "types" : [ "locality", "political" ] }, { "long_name" : "Santa Cruz de Tenerife", "short_name" : "Santa Cruz de Tenerife", "types" : [ "administrative_area_level_4", "political" ] }, { "long_name" : "Anaga", "short_name" : "Anaga", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "Santa Cruz de Tenerife", "short_name" : "TF", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "Canarias", "short_name" : "CN", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "Spain", "short_name" : "ES", "types" : [ "country", "political" ] } ], "formatted_address" : "Santa Cruz de Tenerife, Santa Cruz de Tenerife, Spain", "geometry" : { "bounds" : { "northeast" : { "lat" : 28.487616, "lng" : -16.2356646 }, "southwest" : { "lat" : 28.4280248, "lng" : -16.3370045 } }, "location" : { "lat" : 28.4636296, "lng" : -16.2518467 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 28.487616, "lng" : -16.2356646 }, "southwest" : { "lat" : 28.4280248, "lng" : -16.3370045 } } }, "place_id" : "ChIJcUElzOzMQQwRLuV30nMUEUM", "types" : [ "locality", "political" ] } ], "status" : "OK"}包含組成部分過濾器的查詢將只返回匹配該過濾器的地理編碼結(jié)果。如果沒有找到匹配項(xiàng),地理編碼器會(huì)返回一個(gè)與該過濾器本身相匹配的結(jié)果。請(qǐng)求:
https://maps.googleapis.com/maps/api/geocode/json?address=Torun&components=administrative_area:TX|country:US&key=YOUR_API_KEY響應(yīng):
{ "results" : [ { "address_components" : [ { "long_name" : "Texas", "short_name" : "TX", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] } ], "formatted_address" : "Texas, USA", "geometry" : { "bounds" : { "northeast" : { "lat" : 36.5007041, "lng" : -93.5080389 }, "southwest" : { "lat" : 25.8371638, "lng" : -106.6456461 } }, "location" : { "lat" : 31.9685988, "lng" : -99.9018131 }, "location_type" : "APPROXIMATE", "viewport" : { "northeast" : { "lat" : 36.5015087, "lng" : -93.5080389 }, "southwest" : { "lat" : 25.8371638, "lng" : -106.6456461 } } }, "partial_match" : true, "place_id" : "ChIJSTKCCzZwQIYRPN4IGI8c6xY", "types" : [ "administrative_area_level_1", "political" ] } ], "status" : "OK"}只有當(dāng)您提供的過濾器相互排斥時(shí),組成部分過濾才會(huì)返回
ZERO_RESULTS響應(yīng)。請(qǐng)求:https://maps.googleapis.com/maps/api/geocode/json?components=administrative_area:TX|country:FR&key=YOUR_API_KEY響應(yīng):
{ "results" : [], "status" : "ZERO_RESULTS"}使用
components過濾器時(shí),可以在無地址參數(shù)的情況下進(jìn)行查詢,但不能在沒有值的情況下指定組成部分。請(qǐng)求:https://maps.googleapis.com/maps/api/geocode/json?components=route:Annegatan|administrative_area:Helsinki|country:Finland&key=YOUR_API_KEY響應(yīng):
{ "results" : [ { "address_components" : [ { "long_name" : "Annegatan", "short_name" : "Annegatan", "types" : [ "route" ] }, { "long_name" : "Helsingfors", "short_name" : "Helsingfors", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "Finland", "short_name" : "FI", "types" : [ "country", "political" ] } ], "formatted_address" : "Annegatan, Helsingfors, Finland", "geometry" : { "bounds" : { "northeast" : { "lat" : 60.168997, "lng" : 24.9427959 }, "southwest" : { "lat" : 60.1626627, "lng" : 24.934 } }, "location" : { "lat" : 60.1657808, "lng" : 24.938451 }, "location_type" : "GEOMETRIC_CENTER", "viewport" : { "northeast" : { "lat" : 60.168997, "lng" : 24.9427959 }, "southwest" : { "lat" : 60.1626627, "lng" : 24.934 } } }, "place_id" : "ChIJARW7C8sLkkYRgl4je4-RPUM", "types" : [ "route" ] }, { "address_components" : [ { "long_name" : "Annev?gen", "short_name" : "Annev?gen", "types" : [ "route" ] }, { "long_name" : "Vanda", "short_name" : "Vanda", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "Finland", "short_name" : "FI", "types" : [ "country", "political" ] }, { "long_name" : "01420", "short_name" : "01420", "types" : [ "postal_code" ] } ], "formatted_address" : "Annev?gen, 01420 Vanda, Finland", "geometry" : { "bounds" : { "northeast" : { "lat" : 60.3282738, "lng" : 25.1162163 }, "southwest" : { "lat" : 60.32564009999999, "lng" : 25.1076474 } }, "location" : { "lat" : 60.3271069, "lng" : 25.1118046 }, "location_type" : "GEOMETRIC_CENTER", "viewport" : { "northeast" : { "lat" : 60.3283059302915, "lng" : 25.1162163 }, "southwest" : { "lat" : 60.32560796970849, "lng" : 25.1076474 } } }, "partial_match" : true, "place_id" : "ChIJ3UJCNt4GkkYR8-_a8Dh25kA", "types" : [ "route" ] }, { "address_components" : [ { "long_name" : "Anneplatsen", "short_name" : "Anneplatsen", "types" : [ "route" ] }, { "long_name" : "Helsingfors", "short_name" : "Helsingfors", "types" : [ "administrative_area_level_3", "political" ] }, { "long_name" : "Finland", "short_name" : "FI", "types" : [ "country", "political" ] }, { "long_name" : "00100", "short_name" : "00100", "types" : [ "postal_code" ] } ], "formatted_address" : "Anneplatsen, 00100 Helsingfors, Finland", "geometry" : { "bounds" : { "northeast" : { "lat" : 60.1695664, "lng" : 24.9357125 }, "southwest" : { "lat" : 60.168997, "lng" : 24.934 } }, "location" : { "lat" : 60.1692741, "lng" : 24.9348016 }, "location_type" : "GEOMETRIC_CENTER", "viewport" : { "northeast" : { "lat" : 60.17063068029151, "lng" : 24.9362052302915 }, "southwest" : { "lat" : 60.1679327197085, "lng" : 24.9335072697085 } } }, "partial_match" : true, "place_id" : "ChIJeahMqswLkkYR2vQfG1nHI3M", "types" : [ "route" ] } ], "status" : "OK"}反向地理編碼(地址查找)
術(shù)語地理編碼一般是指將可人工讀取的地址轉(zhuǎn)換為地圖上的某個(gè)位置。與之相反,將地圖上的某個(gè)位置轉(zhuǎn)換為可人工讀取的地址的過程,就稱為反向地理編碼。
必填參數(shù):您必須在反向地理編碼請(qǐng)求中提供下列參數(shù)之一,但不可同時(shí)提供這兩個(gè)參數(shù):
要么:latlng– 經(jīng)緯度值,用于指定希望獲得其最接近的、可人工讀取的地址的位置。或者:place_id– 您希望獲得其可人工讀取的地址的地方的地點(diǎn) ID。地點(diǎn) ID 是唯一一個(gè)可以與其他 Google API 結(jié)合使用的標(biāo)識(shí)符。例如,您可以使用由 Google Maps Roads API 返回的placeID來獲取某個(gè)拍攝點(diǎn)的地址。如需了解有關(guān)地點(diǎn) ID 的詳細(xì)信息,請(qǐng)參閱地點(diǎn) ID 概覽。只有當(dāng)請(qǐng)求包括 API 密鑰或 Google Maps API for Work 客戶端 ID 時(shí),才能指定地點(diǎn) ID。反向地理編碼請(qǐng)求中的可選參數(shù):
您可以將下列可選參數(shù)包括在反向地理編碼請(qǐng)求中:
key– 您的應(yīng)用的 API 密鑰,可從 Google API Console 獲得。此密鑰可以標(biāo)識(shí)您的應(yīng)用,以便進(jìn)行配額管理。language– 返回結(jié)果時(shí)使用的語言。請(qǐng)參閱支持的區(qū)域語言列表。請(qǐng)注意,我們會(huì)經(jīng)常更新支持的語言,因此,此列表可能并不全面。如果未提供language,地理編碼器將盡可能嘗試使用發(fā)送請(qǐng)求區(qū)域的當(dāng)?shù)卣Z言。result_type– 一個(gè)或多個(gè)地址類型,用管道符號(hào) (|) 分隔。地址類型的示例:country、street_address、postal_code。如需查看允許值的完整列表,請(qǐng)參閱此頁面上的地址類型。如果指定了一種類型,會(huì)將結(jié)果限制于這種類型。如果指定了多種類型,該 API 將返回匹配其中任何類型的所有地址。注:此參數(shù)僅適用于包括 API 密鑰或客戶端 ID 的請(qǐng)求。location_type– 一個(gè)或多個(gè)位置類型,用管道符號(hào) (|) 分隔。如果指定了一種類型,會(huì)將結(jié)果限制于這種類型。如果指定了多種類型,該 API 將返回匹配其中任何類型的所有地址。注:此參數(shù)僅適用于包括 API 密鑰或客戶端 ID 的請(qǐng)求。可支持以下值:"ROOFTOP"將結(jié)果限制為我們使其位置信息精確到街道地址精度的地址。"RANGE_INTERPOLATED"將結(jié)果限制為反映了兩個(gè)精確點(diǎn)(例如交叉路口)之間用內(nèi)插法計(jì)算得到的近似值(通常在道路上)的地址。內(nèi)插的范圍通常表示某個(gè)街道地址的 rooftop 地理編碼不可用。"GEOMETRIC_CENTER"將結(jié)果限制為某個(gè)位置(如多段線(例如街道)或多邊形(地區(qū)))的幾何中心。"APPROXIMATE"將結(jié)果限制為是近似值的地址。如果
result_type和location_type限制同時(shí)存在,那么該 API 將只返回同時(shí)匹配result_type和location_type限制的結(jié)果。緯度/經(jīng)度的反向地理編碼
以下查詢包含了布魯克林某個(gè)位置的緯度/經(jīng)度值:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY注:確保在將緯度和經(jīng)度值傳入
latlng參數(shù)時(shí),兩者之間沒有空格。上述查詢返回以下結(jié)果:
{ "results" : [ { "address_components" : [ { "long_name" : "277", "short_name" : "277", "types" : [ "street_number" ] }, { "long_name" : "Bedford Avenue", "short_name" : "Bedford Ave", "types" : [ "route" ] }, { "long_name" : "Williamsburg", "short_name" : "Williamsburg", "types" : [ "neighborhood", "political" ] }, { "long_name" : "Brooklyn", "short_name" : "Brooklyn", "types" : [ "sublocality", "political" ] }, { "long_name" : "Kings", "short_name" : "Kings", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "New York", "short_name" : "NY", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] }, { "long_name" : "11211", "short_name" : "11211", "types" : [ "postal_code" ] } ], "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA", "geometry" : { "location" : { "lat" : 40.714232, "lng" : -73.9612889 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 40.7155809802915, "lng" : -73.9599399197085 }, "southwest" : { "lat" : 40.7128830197085, "lng" : -73.96263788029151 } } }, "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA", "types" : [ "street_address" ] }, ... Additionalresults[]...請(qǐng)注意,反向地理編碼器返回了多個(gè)結(jié)果。
"formatted_address"的結(jié)果不僅有郵政地址,還包括對(duì)某個(gè)位置的任何地理命名方式。例如,對(duì)芝加哥市的某個(gè)點(diǎn)進(jìn)行地理編碼時(shí),地理編碼的點(diǎn)可以表示為街道地址、城市(芝加哥)、所在州(伊利諾伊州)或國家/地區(qū)(美國)。所有這些都是地理編碼器的“地址”。反向地理編碼器返回這些類型中的任何一種作為有效結(jié)果。反向地理編碼器會(huì)匹配政治實(shí)體(國家/地區(qū)、省、市和街區(qū))、街道地址及郵政編碼。
由以前的查詢返回的
formatted_address值的完整列表如下所示。"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA","formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11211, USA","formatted_address" : "Grand St/Bedford Av, Brooklyn, NY 11249, USA","formatted_address" : "Bedford Av/Grand St, Brooklyn, NY 11211, USA","formatted_address" : "Brooklyn, NY 11211, USA","formatted_address" : "Williamsburg, Brooklyn, NY, USA","formatted_address" : "Brooklyn, NY, USA","formatted_address" : "New York, NY, USA","formatted_address" : "New York, USA","formatted_address" : "United States",通常,返回的地址按精確度從最具體到最不具體的順序排列;正如本例中所示,最準(zhǔn)確的地址在結(jié)果中擺在最突出的位置。請(qǐng)注意,我們會(huì)返回不同類型的地址,從最具體的街道地址到不那么具體的政治實(shí)體,如街區(qū)、市、縣、州等。如果您想匹配特定類型的地址,請(qǐng)參閱以下有關(guān)按類型限制結(jié)果的部分。
注:反向地理編碼是一種估計(jì)。地理編碼器將嘗試在某一誤差限度范圍內(nèi)查找最接近的可尋址位置。如果沒有找到匹配項(xiàng),地理編碼器會(huì)返回零個(gè)結(jié)果。
地點(diǎn) ID 的反向地理編碼
以下查詢包含了布魯克林某個(gè)位置的地點(diǎn) ID:
https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJd8BlQ2BZwokRAFUEcm_qrcA&key=YOUR_API_KEY上述查詢返回以下結(jié)果:
{ "results" : [ { "address_components" : [ { "long_name" : "277", "short_name" : "277", "types" : [ "street_number" ] }, { "long_name" : "Bedford Ave", "short_name" : "Bedford Ave", "types" : [ "route" ] }, { "long_name" : "Williamsburg", "short_name" : "Williamsburg", "types" : [ "neighborhood", "political" ] }, { "long_name" : "Brooklyn", "short_name" : "Brooklyn", "types" : [ "sublocality_level_1", "sublocality", "political" ] }, { "long_name" : "Kings County", "short_name" : "Kings County", "types" : [ "administrative_area_level_2", "political" ] }, { "long_name" : "New York", "short_name" : "NY", "types" : [ "administrative_area_level_1", "political" ] }, { "long_name" : "United States", "short_name" : "US", "types" : [ "country", "political" ] }, { "long_name" : "11211", "short_name" : "11211", "types" : [ "postal_code" ] } ], "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA", "geometry" : { "location" : { "lat" : 40.714232, "lng" : -73.9612889 }, "location_type" : "ROOFTOP", "viewport" : { "northeast" : { "lat" : 40.7155809802915, "lng" : -73.9599399197085 }, "southwest" : { "lat" : 40.7128830197085, "lng" : -73.96263788029151 } } }, "partial_match" : true, "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA", "types" : [ "street_address" ] } ], "status" : "OK"}受類型限制的反向地理編碼
以下示例將返回的地址限制為位置類型是
ROOFTOP且地址類型是street_address的地址。https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY注:這些限制只適用于反向地理編碼。
反向地理編碼響應(yīng)
反向地理編碼響應(yīng)的格式與地理編碼響應(yīng)相同。請(qǐng)參閱地理編碼響應(yīng)。下面是反向地理編碼響應(yīng)中可能出現(xiàn)的狀態(tài)代碼。
反向地理編碼狀態(tài)代碼
地理編碼響應(yīng)對(duì)象中的
"status"字段包含了請(qǐng)求的狀態(tài),還可能包含調(diào)試信息,以幫助您查明反向地理編碼不工作的原因。"status"字段可以包含以下值:"OK"表示未出現(xiàn)任何錯(cuò)誤,并且至少返回了一個(gè)地址。"ZERO_RESULTS"表示反向地理編碼成功,但未返回任何結(jié)果。如果向地理編碼器傳遞了某個(gè)偏遠(yuǎn)位置的latlng參數(shù),就可能會(huì)發(fā)生這種情況。"OVER_QUERY_LIMIT"表示您已超出配額。"REQUEST_DENIED"表示系統(tǒng)已拒絕該請(qǐng)求。這可能是因?yàn)樵撜?qǐng)求包含了result_type或location_type參數(shù),但未包含 API 密鑰或客戶端 ID。"INVALID_REQUEST"通常表示下列情況之一:缺少查詢(address、components或latlng)。提供的result_type或location_type無效。"UNKNOWN_ERROR"表示由于服務(wù)器發(fā)生錯(cuò)誤,因此無法處理該請(qǐng)求。如果您重試一次,請(qǐng)求可能會(huì)成功
sensor參數(shù)Google Maps API 之前要求您將
sensor參數(shù)包括在內(nèi),以指示您的應(yīng)用是否使用傳感器來確定用戶的位置。但該參數(shù)現(xiàn)在不再是必填項(xiàng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注