国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

谷歌地圖開發(fā):地理編碼和反地理編碼

2019-11-09 13:53:57
字體:
供稿:網(wǎng)友

谷歌地圖Geocoding說明:內(nèi)容主要來自谷歌官網(wǎng)的文檔,谷歌地圖android api地理和反地理編碼反應(yīng)遲鈍內(nèi)容有時(shí)不準(zhǔn)確,這里使用的googlemap的webapi接口。嗯,需要vpn這個(gè)不多做說明了...

什么是地理編碼?

地理編碼是將地址(如“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ù)的直接方法。

開始前的準(zhǔn)備工作

本文檔面向需要使用其中一個(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)求格式

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 CodeLanguageLanguage CodeLanguage
arArabicknKannada
bgBulgariankoKorean
bnBengaliltLithuanian
caCatalanlvLatvian
csCzechmlMalayalam
daDanishmrMarathi
deGermannlDutch
elGreeknoNorwegian
enEnglishplPolish
en-AUEnglish (Australian)ptPortuguese
en-GBEnglish (Great Britain)pt-BRPortuguese (Brazil)
esSpanishpt-PTPortuguese (Portugal)
euBasqueroRomanian
euBasqueruRussian
faFarsiskSlovak
fiFinnishslSlovenian
filFilipinosrSerbian
frFrenchsvSwedish
glGaliciantaTamil
guGujaratiteTelugu
hiHindithThai
hrCroatiantlTagalog
huHungariantrTurkish
idIndonesianukUkrainian
itItalianviVietnamese
iwHebrewzh-CNChinese (Simplified)
jaJapanesezh-TWChinese (Traditional)

地理編碼響應(yīng)

地理編碼響應(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" 一般表示缺少查詢(addresscomponents 或 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_stationtrain_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&region=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_prefixcountry 用來匹配國家/地區(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) (|) 分隔。地址類型的示例:countrystreet_addresspostal_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" ]      },  ... Additional results[] ...

請(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" 通常表示下列情況之一:缺少查詢(addresscomponents 或 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)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 襄垣县| 前郭尔| 张北县| 报价| 皋兰县| 平阳县| 万安县| 上高县| 辽阳市| 金昌市| 谷城县| 磐安县| 香港 | 兴国县| 威海市| 威远县| 库尔勒市| 武清区| 墨竹工卡县| 芦山县| 福建省| 桐梓县| 井冈山市| 宁强县| 平遥县| 光泽县| 阳春市| 杂多县| 张北县| 新平| 海淀区| 彩票| 紫阳县| 济源市| 夹江县| 沭阳县| 台南县| 沙洋县| 日土县| 郓城县| 黔南|