地理編碼要求和回應

要求

Geocoding API 要求的格式如下:

https://maps.googleapis.com/maps/api/geocode/outputFormat?parameters

其中 outputFormat 可為下列其中一個值:

  • json (建議使用) 表示輸出格式為 JavaScript 物件註釋 (JSON);或
  • xml 表示輸出格式為 XML

必須使用 HTTPS。

有些參數為必要,而有些參數為選用參數。跟網址的標準一樣 參數則以 & 字元分隔。

本頁其餘部分會說明地理編碼。 反向地理編碼,因為 可用的參數也不同

地理編碼 (經緯度查詢) 參數

地理編碼要求中的必要參數:

  • address — 街道地址或 plus code 您要進行地理編碼的容器類型。請依格式指定地址 使用這項資訊。其他資訊 地址元素,例如商家名稱和單位、套房或樓層編號 街道地址元素應以空格分隔 (這裡顯示網址逸出為 %20):
    address=24%20Sussex%20Drive%20Ottawa%20ON
    請按照這裡指定的格式設定 Plus Codes (加號在網址中會逸出為 %2B,空格則逸出為 %20):
    • 全域代碼是 4 個半形字元的區碼,且長度至少為 6 個半形字元 本地代碼 (849VCWC8+R9 為 849VCWC8%2BR9)。
    • 複合代碼是 6 個字元以上的當地代碼, 明確的位置 (CWC8+R9 Mountain View, CA, USA 為 CWC8%2BR9%20Mountain%20View%20CA%20USA)。

    --OR--
    components - 包含元素的元件篩選器 並以直立線 (|) 分隔。系統接受元件篩選器 做為提供 address 的選用參數。 元件篩選器中的每個元素都含有 component:value 配對,並完全限制結果 擷取自地理編碼。進一步瞭解 元件篩選
  • key:應用程式的 API 金鑰。這組金鑰會指出 以便管理應用程式瞭解詳情 取得金鑰

相關詳情請參閱常見問題 額外指引

地理編碼要求中的選用參數:

  • bounds:可視區域的定界框 中可進一步自訂地理編碼結果。這個參數會 只會影響但不會完全限制地理編碼器提供的結果。( 相關資訊,請參閱下方的可視區域自訂調整)。
  • language — 目標語言 傳回結果。
    • 請參閱支援清單 語言。Google 會經常更新支援的語言,因此這項資訊 清單可能不夠詳盡。
    • 如果未提供 language,地理編碼器會嘗試 使用 Accept-Language 標頭或 網域。
    • 地理編碼器會盡可能提供 使用者和當地使用者都能讀取為了達成這個目標 會傳回以當地語言寫成的街道地址,然後音譯為 使用者可以視需要讀取指令碼 語言。其他地址都會以偏好的方式傳回 語言。地址元件都會以相同的語言傳回 從第一個元件中選擇
    • 如果無法設定偏好的語言的名稱,地理編碼器會使用 最相符的結果
    • 偏好的語言對於 Google 提供的 API 選擇傳回的 物件,以及傳回的順序。 地理編碼器會根據 例如街道類型的縮寫,或是可能以 並在某種語言中有效,但是在另一種語言中則無效。例如:utcatér 分別是街道和正方形的同義詞 。
  • region:區碼,以 ccTLD 指定 (「頂層網域」) 的兩位字元值。這個參數只會 不會完全限制地理編碼器提供的結果( 詳情請參閱下方的區域自訂調整)。 參數也會影響適用法律的結果。
  • components:包含元素的元件篩選器 並以直立線 (|) 分隔。元件篩選器是 如果要求不包含 address,則為「必要」。 元件篩選器中的每個元素都含有 component:value 配對,並完全限制結果 擷取自地理編碼。進一步瞭解 元件篩選
  • extra_computations:使用這個參數指定 下列額外功能: 如要為同一個 API 要求啟用多項功能,請加入 要求中的 extra_computations 參數、 例如:
    extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES

回應

地理編碼回應的傳回格式會以 output 標記表示 網址要求中或預設採用 JSON 格式。

在這個範例中,Geocoding API 會要求 json 收到一項查詢,地址為「1600 Amphitheatre Parkway, Mountain View, 。」

這項要求示範如何使用 JSON output 標記:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

這項要求示範如何使用 XML output 標記:

https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

選取下列分頁標籤,查看 JSON 和 XML 回應範例。

JSON

{
    "results": [
        {
            "address_components": [
                {
                    "long_name": "1600",
                    "short_name": "1600",
                    "types": [
                        "street_number"
                    ]
                },
                {
                    "long_name": "Amphitheatre Parkway",
                    "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"
                    ]
                },
                {
                    "long_name": "1351",
                    "short_name": "1351",
                    "types": [
                        "postal_code_suffix"
                    ]
                }
            ],
            "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
            "geometry": {
                "location": {
                    "lat": 37.4222804,
                    "lng": -122.0843428
                },
                "location_type": "ROOFTOP",
                "viewport": {
                    "northeast": {
                        "lat": 37.4237349802915,
                        "lng": -122.083183169709
                    },
                    "southwest": {
                        "lat": 37.4210370197085,
                        "lng": -122.085881130292
                    }
                }
            },
            "place_id": "ChIJRxcAvRO7j4AR6hm6tys8yA8",
            "plus_code": {
                "compound_code": "CWC8+W7 Mountain View, CA",
                "global_code": "849VCWC8+W7"
            },
            "types": [
                "street_address"
            ]
        }
    ],
    "status": "OK"
}

請注意,JSON 回應包含兩個根元素:

  • "status" 包含要求的中繼資料,詳情請見 狀態碼
  • "results" 包含地理編碼地址資訊的陣列, 幾何圖形資訊

通常,系統只會針對 "results" 陣列傳回一個項目 地址查詢,不過地理編碼器可能會在輸入地址時傳回多個結果 都是模稜兩可的查詢

XML

<GeocodeResponse>
    <status>OK</status>
    <result>
        <type>street_address</type>
        <formatted_address>1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA</formatted_address>
        <address_component>
            <long_name>1600</long_name>
            <short_name>1600</short_name>
            <type>street_number</type>
        </address_component>
        <address_component>
            <long_name>Amphitheatre Parkway</long_name>
            <short_name>Amphitheatre Pkwy</short_name>
            <type>route</type>
        </address_component>
        <address_component>
            <long_name>Mountain View</long_name>
            <short_name>Mountain View</short_name>
            <type>locality</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>Santa Clara County</long_name>
            <short_name>Santa Clara County</short_name>
            <type>administrative_area_level_2</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>California</long_name>
            <short_name>CA</short_name>
            <type>administrative_area_level_1</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>United States</long_name>
            <short_name>US</short_name>
            <type>country</type>
            <type>political</type>
        </address_component>
        <address_component>
            <long_name>94043</long_name>
            <short_name>94043</short_name>
            <type>postal_code</type>
        </address_component>
        <geometry>
            <location>
                <lat>37.4224428</lat>
                <lng>-122.0842467</lng>
            </location>
            <location_type>ROOFTOP</location_type>
            <viewport>
                <southwest>
                    <lat>37.4212648</lat>
                    <lng>-122.0856069</lng>
                </southwest>
                <northeast>
                    <lat>37.4239628</lat>
                    <lng>-122.0829089</lng>
                </northeast>
            </viewport>
        </geometry>
        <place_id>ChIJeRpOeF67j4AR9ydy_PIzPuM</place_id>
        <plus_code>
            <global_code>849VCWC8+X8</global_code>
            <compound_code>CWC8+X8 Mountain View, CA</compound_code>
        </plus_code>
    </result>
</GeocodeResponse>

請注意,XML 回應包含一個 <GeocodeResponse> 及兩個頂層元素:

  • <status> 包含要求的中繼資料,詳情請見 狀態碼
  • 零或多個 <result> 元素,每個元素各包含一個 一組經過地理編碼的地址資訊和幾何圖形資訊。

XML 回應要長於 JSON 回應長。適用對象 因此,我們建議您將 json 做為偏好的來源 輸出旗標,不過您的服務因故需要使用 xml。 此外,處理 XML 樹狀結構需要很小心,因此 適當的節點和元素詳情請見 使用 XPath 剖析 XML,瞭解用於輸出處理的建議設計模式。

  • XML 結果會包裝在根層級 <GeocodeResponse> 元素中。
  • JSON 會用複數陣列的元素 (types) 表示有多個元素, 而 XML 則使用多個單數元素 (<type>) 來表示。
  • 空白的元素會在 JSON 中以空白陣列表示,但不含任何 這類元素未產生任何結果的回應會傳回空白 JSON 中的 results 陣列,但在 XML 中不含 <result> 元素, 例如

狀態碼

地理編碼回應物件中的 "status" 欄位包含狀態 請求中,可能包含偵錯資訊,以協助您追查地理編碼的原因。 沒有作用。"status" 欄位可能包含下列值:

  • "OK" 表示沒有發生任何錯誤。地址剖析成功,且系統傳回至少一組地理編碼。
  • "ZERO_RESULTS" 表示地理編碼成功,但沒有傳回任何結果。如果地理編碼器收到不存在的 address,就有可能發生這種情況。
  • OVER_DAILY_LIMIT 表示下列任一項:
    • API 金鑰遺失或無效。
    • 您的帳戶尚未啟用帳單功能。
    • 已超過自行設定的用量上限。
    • 您提供的付款方式已失效 (例如 信用卡已過期)。

    請參閱 Google 地圖常見問題瞭解詳情 如何解決這個問題

  • "OVER_QUERY_LIMIT" 表示您已超過配額。
  • "REQUEST_DENIED" 表示您的要求遭拒。
  • "INVALID_REQUEST" 通常表示缺少查詢內容 (addresscomponentslatlng)。
  • "UNKNOWN_ERROR" 表示伺服器發生錯誤,因此無法處理要求。如果再試一次,要求可能會成功。

錯誤訊息

如果地理編碼器傳回 OK 以外的狀態碼, 地理編碼回應物件中的 error_message 欄位。這個欄位包含更多資訊 進一步瞭解指定狀態碼背後的理由。

結果

Geocoder 傳回的結果會放置在 (JSON) results 中 陣列。即使地理編碼器並未傳回任何結果 (例如地址不存在時) 會傳回空白的 results 陣列。(XML 回應包含 0 或多個值 <result> elements.)

典型的結果包含下列欄位:

  • types[] 陣列表示傳回的「類型」 結果。這個陣列不含任何標記或包含多個標記的組合,用於識別 功能中傳回的地圖項目。例如,「臺北」的地理編碼。return 「locality」就表示「芝加哥」為城市,且會傳回「政治」 代表這是政治實體。元件可能有空白類型 陣列。API 可能會視需要新增類型值。詳情請參閱「地址類型和地址元件」一文。
  • formatted_address 字串包含使用者可理解的內容 地址。

    這個地址通常等於郵寄地址。請注意,由於授權上的限制,部分國家/地區 (例如英國) 不允許散布真實的郵寄地址。

    理論上,格式化地址是由一或多個「地址元件」組成。舉例來說,「111 8th Avenue, New York, NY」這個地址包含以下元件:「111」(門牌號碼)、「8th Avenue」(路名)、「New York」(城市) 和「NY」(美國州名)。

    請勿以程式輔助方式剖析格式化地址。建議您改用個別地址元件,API 回應除了包含格式化地址欄位之外,也會包含這些元件。

  • address_components[] 陣列包含 元件。

    每個地址元件通常會包含下列欄位:

    • types[] 是一個陣列,用來指出地址元件的「類型」。請參閱支援類型清單。
    • long_name 是地理編碼器所傳回地址元件的完整文字說明或名稱。
    • short_name 是地址元件的縮寫文字名稱 (如有)。舉例來說,阿拉斯加州地址元件的 long_name 可能為「Alaska」,而 short_name 則為 2 個字母的郵政簡碼「AK」。

    address_components[] 陣列的注意事項如下:

    • 地址元件陣列包含的元件可能比 formatted_address 更多。
    • 除了 formatted_address 中所含的政治實體以外,這個陣列不一定會納入內含地址的所有政治實體。如要擷取包含特定地址的所有政治實體,建議您使用反向地理編碼,將地址的經緯度做為參數傳遞至要求。
    • 兩次要求之間的回應格式不一定相同。特別是,address_components 的數量會因要求的地址而異,對於同一個地址,數量也可能會隨時間改變。元件在陣列中的位置可能會變更。元件類型也可能會變更。後續回應中可能會缺少特定元件。

    如要處理元件陣列,請剖析回應 並透過運算式選取適當的值請參閱以下指南: 剖析回應

  • postcode_localities[] 陣列最多可以表示 100 個縣市 。只有在結果為郵遞區號時才會顯示 程式碼包含多個縣市
  • geometry 包含下列資訊:
    • location 包含經過地理編碼的經緯度值。適用一般裝置 那麼這個欄位通常最重要。
    • location_type 會儲存指定位置的其他相關資料, 以下是目前支援的值:

      • "ROOFTOP" 表示傳回結果是以下項目的精確地理編碼: 我們擁有精確的位置資訊,可精確縮小至街道地址。
      • "RANGE_INTERPOLATED" 表示 表示傳回的結果反映 插入在兩個精確點之間 (例如十字路口) 的約略位置 (通常在道路上)。 如果街道沒有精準的地理編碼,系統通常就會傳回插入的結果 讓我們看看 DNS 解析 進一步探索內部和外部位址
      • "GEOMETRIC_CENTER" 表示 傳回的結果是 結果,例如折線 (例如街道) 或多邊形 (區域)。
      • "APPROXIMATE" 表示 傳回的結果是約略位置。
    • viewport 包含建議顯示的可視區域 傳回的結果,指定為定義 「southwest」和 northeast 可視區域定界框的邊角。一般來說, 可視區域是用於向使用者顯示結果時,在結果周圍加上頁框。
    • bounds (選擇性傳回) 會儲存定界框 ,可完全包含傳回的結果。請注意,這些邊界可能與 建議可視區域(舉例來說,舊金山包含 法拉隆群島, 嚴格來說是城市的一部分,但應該不會在可視區域中傳回)。
  • plus_code (詳情請參閱 開啟位置代碼plus code) 會將 地點參照,衍生自經緯度座標,則 代表面積:有 1/8000 度的 1/8000 度 (約 14 公尺 x 赤道為 14 公尺) 以下。Plus Code 可用來取代 地址不存在的地點中的街道地址 (但建築物不是 無編號或街道名稱)。API 不一定會傳回 Plus code。

    當服務傳回 Plus Code 時,則會採用全域代碼和複合代碼的格式:

    • global_code 是 4 個字元的區碼,加上 6 個字元以上的當地代碼 (849VCWC8+R9)。
    • compound_code 是 6 個字元以上的當地代碼,加上明確的位置 (CWC8+R9, Mountain View, CA, USA)。請勿以程式輔助方式剖析這個內容。
    在適用情況下,API 會傳回全域代碼和複合代碼。不過, 結果只是在偏遠地點 (例如海洋或沙漠) 時, 系統可能會傳回全域代碼
  • partial_match 指出地理編碼器沒有傳回與原始要求完全相符的結果,但可以比對部分要求的地址。建議您檢查原始要求,確認是否有拼寫錯誤和/或不完整的地址。

    出現部分相符結果的最常見原因,是系統在要求中傳遞的縣市內找不到街道地址。如果要求比對同一個縣市內的兩個或更多地點,也可能會傳回部分相符的結果。舉例來說,「Hillpar St, Bristol, UK」會傳回 Henry Street 和 Henrietta Street 這兩項部分相符的結果。請注意,如果要求包含拼寫錯誤的地址元件,地理編碼服務可能就會建議使用替代地址。透過這種方式觸發的建議,也會標示為部分相符。

  • place_id 是獨一無二的 以便與其他 Google API 搭配使用。舉例來說: 使用 place_id 取得 Places API 要求,以取得 當地商家的詳細資料,例如電話號碼、營業時間、使用者 評論等等。查看地點 ID 總覽頁面

地址類型和地址元件類型

結果中的 types[] 陣列會指出 「位址類型」。地址類型範例包括街道地址 國家/地區或政治實體當中也有 types[] 陣列 address_components[],用於指出 讓我們看看 DNS 解析 進一步探索內部和外部位址例如門牌號碼或國家/地區。(以下是 types.)地址可能有多種類型。這些類型可視為「代碼」。 舉例來說,許多城市都會加上 politicallocality 類型。

以下是地理編碼器支援及傳回的類型 位址類型和地址元件類型陣列:

  • street_address 表示精確的街道地址。
  • route 表示具名道路 (例如「國道一號」)。
  • intersection 表示主要的十字路口,通常有兩條主要道路交會。
  • political 表示政治實體。這個類型通常表示某些行政管理區的多邊形區域。
  • country 表示國家政治實體,且通常是地理編碼器所傳回的最高順位類型。
  • administrative_area_level_1 表示國家/地區層級底下的第一順位行政實體。在美國境內,這類行政層級是指州。部分國家沒有這類行政層級。在大多數情況下,administrative_area_level_1 簡稱會與 ISO 3166-2 子行政區以及其他廣泛流通的清單密切相符。然而,地理編碼結果是根據多種信號和位置資料計算得出,因此我們對於結果無法做出保證。
  • administrative_area_level_2 表示國家/地區層級底下的第二順位行政實體。在美國境內,這類行政層級是指郡。部分國家沒有這類行政層級。
  • administrative_area_level_3 表示國家/地區層級底下的第三順位行政實體。這個類型表示小型行政單位。部分國家沒有這類行政層級。
  • administrative_area_level_4 表示國家/地區層級底下的第四順位行政實體。這個類型表示小型行政單位。部分國家沒有這類行政層級。
  • administrative_area_level_5 表示國家/地區層級底下的第五順位行政實體。這個類型表示小型行政單位。部分國家沒有這類行政層級。
  • administrative_area_level_6 表示國家/地區層級底下的第六順位行政實體。這個類型表示小型行政單位。部分國家沒有這類行政層級。
  • administrative_area_level_7 表示國家/地區層級底下的第七順位行政實體。這個類型表示小型行政單位。部分國家沒有這類行政層級。
  • colloquial_area 表示實體的常用替代名稱。
  • locality 表示自治城市或鄉鎮的政治實體。
  • sublocality 表示縣市底下的第一順位行政實體。某些地點可能會收到以下其中一種額外類型:sublocality_level_1sublocality_level_5。每個鄉鎮市區層級都是一個行政實體。數字越大表示地理區域越小。
  • neighborhood 表示具名社區
  • premise 表示具名地點,通常是建築物或具有共同名稱的建築物群
  • subpremise 表示具名地點底下的第一順位實體,通常是具有共同名稱的建築物群中的單一建築物
  • plus_code 表示經過編碼的位置參照,衍生自經緯度。對於沒有詳細地址的地點,Plus Codes 可用於取代街道地址,例如無編號的建築物或無名街道。詳情請參閱 https://plus.codes
  • postal_code 表示國家/地區郵政地址所使用的郵遞區號。
  • natural_feature 表示明顯的自然地貌。
  • airport 表示機場。
  • park 表示具名公園。
  • point_of_interest 表示具名搜尋點。一般來說,這些「搜尋點」是當地著名的實體,無法輕易歸入其他類別,例如「帝國大廈」或「艾菲爾鐵塔」。

如果類型清單為空白,表示特定地址元件沒有已知的類型 (例如法國的 Lieu-dit)。

除了上述類型以外,地址元件也可能包含這裡列出的類型。這份清單 並非完整清單,而且隨時可能變更。

  • floor 表示建築物地址的樓層。
  • establishment 通常表示尚未歸類的地點。
  • landmark 表示附近地點,做為導航輔助參考。
  • point_of_interest 表示具名搜尋點。
  • parking 表示停車場。
  • post_box 表示特定郵政信箱。
  • postal_town 表示地理區域分組 (例如 localitysublocality),在部分國家/地區用於郵寄地址。
  • room 表示建築物地址的房號。
  • street_number 表示精確的門牌號碼。
  • bus_stationtrain_stationtransit_station 表示公車、火車或大眾運輸停靠站的位置。

可視區域自訂調整

在地理編碼要求中,您可以指示地理編碼服務優先使用 特定檢視區內的結果 (以定界框表示)。您成功了 設定 bounds 參數。

bounds 參數會定義經緯度座標 此定界框的西南角和東北角並使用直立線 (|) 字元來分隔座標。

舉例來說,「Washington」的地理編碼通常會傳回美國的 華盛頓州:

要求:

https://maps.googleapis.com/maps/api/geocode/json?address=Washington&key=YOUR_API_KEY

回應:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Washington",
               "short_name" : "WA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Washington, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 49.0024442,
                  "lng" : -116.91558
               },
               "southwest" : {
                  "lat" : 45.543541,
                  "lng" : -124.8489739
               }
            },
            "location" : {
               "lat" : 47.7510741,
               "lng" : -120.7401385
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 49.0024442,
                  "lng" : -116.91558
               },
               "southwest" : {
                  "lat" : 45.543541,
                  "lng" : -124.8489739
               }
            }
         },
         "place_id" : "ChIJ-bDD5__lhVQRuvNfbGh4QpQ",
         "types" : [ "administrative_area_level_1", "political" ]
      }
   ],
   "status" : "OK"
}

不過,您可以新增 bounds 引數來定義定界框 美國的東北部部分會產生此地理編碼,並傳回 華盛頓特區:

要求:

https://maps.googleapis.com/maps/api/geocode/json?address=Washington&bounds=36.47,-84.72%7C43.39,-65.90&key=YOUR_API_KEY

回應:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Washington",
               "short_name" : "Washington",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "District of Columbia",
               "short_name" : "District of Columbia",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "District of Columbia",
               "short_name" : "DC",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Washington, DC, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 38.9958641,
                  "lng" : -76.90939299999999
               },
               "southwest" : {
                  "lat" : 38.7916449,
                  "lng" : -77.119759
               }
            },
            "location" : {
               "lat" : 38.9071923,
               "lng" : -77.03687069999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 38.9958641,
                  "lng" : -76.90939299999999
               },
               "southwest" : {
                  "lat" : 38.7916449,
                  "lng" : -77.119759
               }
            }
         },
         "place_id" : "ChIJW-T2Wt7Gt4kRKl2I1CJFUsI",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

區域自訂調整

在地理編碼要求中,您可以指示地理編碼服務傳回 使用 region,調整成特定區域的結果 參數。這個參數會採用 ccTLD (國家/地區代碼頂層) domain) 引數,指定區域偏誤。多數 ccTLD 代碼與 ISO 3166-1 代碼,部分例外。例如,美國 英國的 ccTLD 是「uk」(.co.uk),但 ISO 3166-1 代碼是「gb」 (根據技術規定,「英國與 北愛爾蘭」)。

您可以為主要網站的每個網域調整地理編碼結果, Google 地圖應用程式已正式推出。請注意,只有自訂調整 偏好特定網域的結果;(如果找到更多相關的結果) 網域外,也可能包括成員。

舉例來說,「Toledo」的地理編碼傳回這個結果 (做為預設值 Geocoding API 的 網域設為美國。要求:

https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&key=YOUR_API_KEY

回應:

{
   "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.454229
               },
               "southwest" : {
                  "lat" : 41.580266,
                  "lng" : -83.69423700000002
               }
            },
            "location" : {
               "lat" : 41.6639383,
               "lng" : -83.55521200000001
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 41.732844,
                  "lng" : -83.454229
               },
               "southwest" : {
                  "lat" : 41.580266,
                  "lng" : -83.69423700000002
               }
            }
         },
         "place_id" : "ChIJeU4e_C2HO4gRRcM6RZ_IPHw",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

「Toledo」的地理編碼要求region=es (西班牙) 將會: 傳回西班牙城市

要求:

https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&region=es&key=YOUR_API_KEY

回應:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Toledo",
               "short_name" : "Toledo",
               "types" : [ "locality", "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, Spain",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 39.88605099999999,
                  "lng" : -3.9192423
               },
               "southwest" : {
                  "lat" : 39.8383676,
                  "lng" : -4.0796176
               }
            },
            "location" : {
               "lat" : 39.8628316,
               "lng" : -4.027323099999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 39.88605099999999,
                  "lng" : -3.9192423
               },
               "southwest" : {
                  "lat" : 39.8383676,
                  "lng" : -4.0796176
               }
            }
         },
         "place_id" : "ChIJ8f21C60Lag0R_q11auhbf8Y",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

元件篩選

在 Geocoding API 中,Geocoding API 可以傳回地址 只能顯示特定區域的結果您可以使用 components 篩選器。篩選器是由清單中 component:value 組合:以直立線 (|) 分隔。 篩選器值支援的拼字校正和部分功能相同 來比對系統。如果地理編碼器發現 元件篩選器,回應會包含 partial_match 欄位。

可篩選的 components 包括:

  • postal_codepostal_code相符 和 postal_code_prefix
  • country 用於比對國家/地區名稱或雙字母 ISO 3166-1 國家/地區代碼。API 遵循 ISO 標準, 定義國家/地區,而使用篩選指令時, 國家/地區的相應 ISO 代碼。

下列components可能會影響結果,但不會使用 已強制執行:

  • route 用於比對道路的全名或簡稱。
  • localitylocalitysublocality 類型。
  • administrative_area符合所有 administrative_area 個等級。

元件篩選相關注意事項:

  • 請勿在要求中重複這些元件篩選器,否則 API 會傳回 Invalid_requestcountrypostal_coderoute
  • 如果要求包含重複的元件篩選器,API 會評估這些篩選器 視為 AND,而不是 OR。
  • 顯示的結果與 Google 地圖一致,因此偶爾會出現 非預期的 ZERO_RESULTS 回應。使用 Place Autocomplete 在某些情況下可能會提供更好的結果詳情請參閱: 本 常見問題
  • 請在 address 中,為每個地址元件指定 參數或 components 篩選器中,但兩者只能擇一。指定 兩個相同的值可能會產生 ZERO_RESULTS

「High St, Hastings」的地理編碼合作頻道:components=country:GB 這樣的結果就會傳回英國哈斯丁,而不是美國哈斯丁-上哈德森。

要求:

https://maps.googleapis.com/maps/api/geocode/json?address=high+st+hasting&components=country:GB&key=YOUR_API_KEY

回應:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "High Street",
               "short_name" : "High St",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Hastings",
               "short_name" : "Hastings",
               "types" : [ "postal_town" ]
            },
            {
               "long_name" : "East Sussex",
               "short_name" : "East Sussex",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "England",
               "short_name" : "England",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United Kingdom",
               "short_name" : "GB",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "TN34 3EY",
               "short_name" : "TN34 3EY",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "High St, Hastings TN34 3EY, UK",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 50.8601041,
                  "lng" : 0.5957329
               },
               "southwest" : {
                  "lat" : 50.8559061,
                  "lng" : 0.5906163
               }
            },
            "location" : {
               "lat" : 50.85830319999999,
               "lng" : 0.5924594
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 50.8601041,
                  "lng" : 0.5957329
               },
               "southwest" : {
                  "lat" : 50.8559061,
                  "lng" : 0.5906163
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJ-Ws929sa30cRKgsMNVkPyws",
         "types" : [ "route" ]
      }
   ],
   "status" : "OK"
}

「聖克魯斯」地區的地理編碼要求合作頻道:components=country:ES 會傳回西班牙加那利群島的聖克魯斯德特內裡費

要求:

https://maps.googleapis.com/maps/api/geocode/json?components=locality:santa+cruz|country:ES&key=YOUR_API_KEY

回應:

{
   "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" : "TF",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Canary Islands",
               "short_name" : "CN",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Spain",
               "short_name" : "ES",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "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"
}

元件篩選會傳回 ZERO_RESULTS 回應 但前提是您提供能互相排除的篩選器。

要求:

https://maps.googleapis.com/maps/api/geocode/json?components=administrative_area:TX|country:FR&key=YOUR_API_KEY

回應:

{
   "results" : [],
   "status" : "ZERO_RESULTS"
}

您可以在不加位址參數的情況下進行有效查詢,方法是使用 「components」篩選器。(為完整地址進行地理編碼時, 如果要求包含 address 參數,則必須提供 建築物的名稱和號碼)。

要求:

https://maps.googleapis.com/maps/api/geocode/json?components=route:Annankatu|administrative_area:Helsinki|country:Finland&key=YOUR_API_KEY

回應:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Annankatu",
               "short_name" : "Annankatu",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Helsinki",
               "short_name" : "HKI",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Finland",
               "short_name" : "FI",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "00101",
               "short_name" : "00101",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Annankatu, 00101 Helsinki, Finland",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 60.168997,
                  "lng" : 24.9433353
               },
               "southwest" : {
                  "lat" : 60.16226160000001,
                  "lng" : 24.9332897
               }
            },
            "location" : {
               "lat" : 60.1657808,
               "lng" : 24.938451
            },
            "location_type" : "GEOMETRIC_CENTER",
            "viewport" : {
               "northeast" : {
                  "lat" : 60.168997,
                  "lng" : 24.9433353
               },
               "southwest" : {
                  "lat" : 60.16226160000001,
                  "lng" : 24.9332897
               }
            }
         },
         "place_id" : "ChIJARW7C8sLkkYRgl4je4-RPUM",
         "types" : [ "route" ]
      }
   ],
   "status" : "OK"
}