Tìm điểm đến

Nhà phát triển ở Khu vực kinh tế Châu Âu (EEA)

Destination đề cập đến một vị trí hoặc địa điểm cụ thể mà người dùng muốn đến hoặc di chuyển đến. Destination cũng bao gồm một tập hợp thông tin liên quan đến vị trí hoặc địa điểm, chẳng hạn như điểm chỉ đường, địa danh, lối vào và đường viền toà nhà.

Phương thức SearchDestinations của Geocoding API cho phép bạn truy xuất thông tin chi tiết về nhiều đích đến dựa trên các tiêu chí đầu vào khác nhau, chẳng hạn như địa chỉ, mã địa điểm hoặc toạ độ vĩ độ và kinh độ.

Yêu cầu tìm điểm đến

Yêu cầu tìm kiếm điểm đến là một yêu cầu POST HTTP đến một URL có dạng:

https://geocode.googleapis.com/v4/geocode/destinations

Truyền tất cả tham số trong phần nội dung yêu cầu JSON hoặc trong tiêu đề dưới dạng một phần của yêu cầu POST. Ví dụ:

curl -X POST -d '{
  "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations

Bạn có thể chỉ định vị trí để tìm điểm đến theo một trong 3 cách sau:

  • Địa chỉ
  • Mã địa điểm
  • Vĩ độ và kinh độ

Tìm điểm đến theo địa chỉ

Bạn có thể chỉ định địa chỉ dưới dạng một chuỗi không có cấu trúc. Tính năng mã hoá địa lý địa chỉ không phân giải toạ độ vĩ độ và kinh độ hoặc các chuỗi không có cấu trúc khác không đại diện cho địa chỉ. Các yêu cầu sử dụng những chuỗi như vậy không được hỗ trợ và có thể dẫn đến phản hồi lỗi hoặc hành vi không xác định. Sau đây là ví dụ về các cụm từ tìm kiếm không được hỗ trợ:

Loại truy vấn Ví dụ
Toạ độ vĩ độ và kinh độ. Thay vào đó, hãy sử dụng cụm từ tìm kiếm vị trí. "37.422131,-122.084801"
Quá nhiều khái niệm hoặc quy tắc ràng buộc, chẳng hạn như tên của nhiều địa điểm, đường hoặc thành phố trong một cụm từ tìm kiếm "Market Street San Francisco San Jose Airport"
Các thành phần của địa chỉ bưu chính không xuất hiện trên Google Maps "C/O John Smith 123 Main Street"
"P.O. Box 13 San Francisco"
Tên của doanh nghiệp, chuỗi hoặc danh mục kết hợp với vị trí mà các pháp nhân này không có mặt "Tesco gần Dallas, Texas"
Cụm từ tìm kiếm mơ hồ có nhiều cách diễn giải "Nơi nhận bộ sạc"
Tên cũ không còn được sử dụng "Middlesex, Vương quốc Anh"
Phần tử hoặc ý định không gian địa lý "Có bao nhiêu chiếc thuyền ở Cảng Ventura?"
Tên không chính thức hoặc tên ảo "The Jenga"
"The Helter Skelter"
Các thực thể chính trị lớn (Thành phố, Tiểu bang, Quốc gia) "Thành phố New York"
"California"
"Hoa Kỳ"
Tuyến đường không có địa chỉ cụ thể "1st Ave., NYC, NY"
"I-95"
curl -X POST -d '{
  "addressQuery": {
    "addressQuery": "601 S Bernardo Ave, Sunnyvale, CA 94087, USA"
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations

hoặc dưới dạng postalAddress:

curl -X POST -d '{
  "addressQuery": {
    "address": {
      "addressLines": ["601 S Bernardo Ave"],
      "locality": "Sunnyvale",
      "postalCode": "94087",
      "administrativeArea": "CA",
      "regionCode": "US"
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations

Bạn thường sử dụng định dạng postalAddress khi xử lý các thành phần địa chỉ được thu thập trong biểu mẫu HTML.

Tìm điểm đến theo mã địa điểm

Bạn có thể truy xuất một đích đến bằng cách cung cấp một mã địa điểm:

curl -X POST -d '{
  "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations

Mã địa điểm được hỗ trợ

Phương thức Tìm điểm đến hoạt động hiệu quả nhất với Mã địa điểm đại diện cho các điểm đến cụ thể, có thể đi theo chỉ dẫn. Mã địa điểm cho các loại như establishment, point_of_interest, premise, street_address và subpremise thường được hỗ trợ. Chúng tôi không hỗ trợ những mã địa điểm không đại diện cho các vị trí riêng biệt, chẳng hạn như những mã địa điểm được suy luận từ dải địa chỉ (ví dụ: "10-20 Main St"), các đoạn đường không có số cụ thể hoặc mã cộng. Mã địa điểm cho những kết quả có diện tích quá lớn (ví dụ: "Thái Bình Dương") cũng không được hỗ trợ.

Sử dụng tính năng Tự động hoàn thành (Mới) với tính năng Điểm đến tìm kiếm

Để đảm bảo khả năng tương thích, hãy sử dụng Tính năng tự động hoàn thành (Mới) để tìm mã địa điểm dùng với tính năng Địa điểm tìm kiếm. Khi sử dụng tính năng Tự động hoàn thành (Mới), bạn nên lọc kết quả theo loại bằng cách sử dụng tham số includedPrimaryTypes. Search Destinations hỗ trợ mã địa điểm do tính năng Autocomplete (Mới) trả về bằng cách sử dụng bộ lọc được đề xuất sau:

"includedPrimaryTypes": [ "establishment", "point_of_interest", "premise", "street_address", "subpremise" ]

Ngoài ra, bạn không nên đặt cờ include_pure_service_area_businesses thành true trong yêu cầu Tự động hoàn thành (Mới).

Tìm kiếm điểm đến theo vị trí

Bạn có thể tìm một điểm đến bằng cách cung cấp toạ độ vĩ độ và kinh độ:

curl -X POST -d '{
  "locationQuery": {
    "location": {
      "latitude": 37.37348780,
      "longitude": -122.05678064
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4/geocode/destinations

Sử dụng OAuth để đưa ra yêu cầu

Geocoding API phiên bản 4 hỗ trợ OAuth 2.0 để xác thực. Để sử dụng OAuth với Geocoding API, bạn phải chỉ định phạm vi chính xác cho mã thông báo OAuth. Geocoding API hỗ trợ các phạm vi sau để sử dụng với phương thức Destinations:

  • https://www.googleapis.com/auth/maps-platform.geocode – Sử dụng với tất cả các phương thức Geocoding API.

Ngoài ra, bạn có thể sử dụng phạm vi https://www.googleapis.com/auth/cloud-platform chung cho tất cả các phương thức của Geocoding API. Phạm vi đó hữu ích trong quá trình phát triển nhưng không hữu ích trong quá trình phát hành công khai, vì đây là một phạm vi chung cho phép truy cập vào tất cả các phương thức.

Để biết thêm thông tin và ví dụ, hãy xem bài viết Sử dụng OAuth.

Câu trả lời về điểm đến tìm kiếm

Phản hồi của Điểm đến tìm kiếm cung cấp bối cảnh phong phú, theo từng khu vực cụ thể về vị trí.

Các đối tượng PlaceView trong phản hồi của API Search Destinations (chẳng hạn như primary, các mục trong containingPlaces và landmarks) sử dụng các trường để cho biết loại địa điểm:

  • types: Một mảng chuỗi cho biết(các) loại địa điểm.
  • primaryType: Một chuỗi cho biết loại địa điểm chính.

Các giá trị chuỗi có thể có cho cả types và primaryType được lấy từ Bảng A và Bảng B trên trang Loại địa điểm (Mới).

Phần này mô tả các trường phản hồi chính. Để biết đầy đủ thông tin chi tiết về tất cả các trường phản hồi, hãy xem Tài liệu tham khảo API.

primary

Địa điểm chính được xác định bằng cụm từ tìm kiếm trong yêu cầu.

addressComponents

Một mảng chứa các thành phần riêng biệt áp dụng cho địa chỉ này.

Mỗi thành phần địa chỉ thường chứa các trường sau:

  • types[] là một mảng cho biết loại thành phần địa chỉ. Xem danh sách các loại được hỗ trợ.
  • longText là nội dung mô tả hoặc tên đầy đủ của thành phần địa chỉ do Trình mã hoá địa lý trả về.
  • shortText là tên viết tắt của thành phần địa chỉ (nếu có). Ví dụ: một thành phần địa chỉ cho tiểu bang Alaska có thể có longText là "Alaska" và shortText là "AK" bằng cách sử dụng chữ viết tắt gồm 2 chữ cái của mã bưu chính.
  • languageCode là ngôn ngữ dùng để định dạng thành phần này, theo ký hiệu CLDR.

containingPlaces

Các thực thể lớn hơn mà vị trí chính thuộc về (ví dụ: một trung tâm mua sắm có chứa một cửa hàng).

subDestinations

Các vị trí cụ thể hơn trong điểm đến chính (ví dụ: căn hộ trong một toà nhà).

entrances

Các đối tượng trong mảng entrances[] có các trường sau:

  • location

    Một cặp toạ độ vĩ độ/kinh độ duy nhất xác định vị trí của điểm vào và điểm ra của một địa điểm.

  • entrance_tags[]

    Một mảng các thẻ lối vào mô tả đặc điểm của lối vào. Giá trị sau đây được hỗ trợ:

    • "PREFERRED"

    Cho biết lối vào này có thể là lối vào thực tế của địa điểm được trả về. Một địa điểm có thể có nhiều lối vào ưu tiên. Nếu một lối vào không có thẻ này, thì có nghĩa là lối vào đó nằm trong cùng một toà nhà nhưng không nhất thiết phải cung cấp lối vào địa điểm.

    Ví dụ: nếu địa điểm được trả về là một nhà hàng trong trung tâm mua sắm, thì các lối vào "PREFERRED" sẽ là những lối vào dẫn đến chính nhà hàng đó, còn các lối vào khác được trả về sẽ là những lối vào khác của toà nhà, chẳng hạn như lối vào các nhà hàng khác trong trung tâm mua sắm.

    Nếu địa điểm được trả về là một toà nhà, thì lối vào "PREFERRED" sẽ là lối vào dẫn đến phần "chính" của toà nhà. Ví dụ: trong một trung tâm mua sắm, lối vào "PREFERRED" sẽ là lối vào cho phép đi vào khu vực sảnh chính, nhưng nếu một lối vào chỉ cho phép đi vào một cửa hàng ở bên hông toà nhà, thì đó sẽ không phải là lối vào "PREFERRED".

  • streetViewThumbnail và streetViewAnnotation

    Các tham số cho Street View Static API, cho phép bạn hiển thị hình ảnh có liên quan cho các vị trí này. Tìm hiểu thêm về các trường này.

structureType

Loại cấu trúc mà địa điểm này đại diện.

  • POINT

    Vị trí điểm.

  • SECTION

    Một phần của toà nhà.

  • BUILDING

    Một toà nhà.

  • GROUNDS

    Một khu vực rộng lớn thường có nhiều toà nhà, chẳng hạn như khuôn viên trường đại học, khu chung cư hoặc trung tâm mua sắm.

Trường navigationPoints trong phản hồi Mã hoá địa lý chứa danh sách các điểm hữu ích cho việc di chuyển đến địa điểm. Cụ thể, các điểm này phải được dùng làm điểm xuất phát hoặc điểm kết thúc khi định tuyến trên mạng lưới đường bộ từ hoặc đến địa điểm đó.

Mỗi điểm điều hướng chứa các giá trị sau:

  • navigationPointToken là một mã thông báo chứa thông tin theo bối cảnh trong trường navigationPoints. Bạn có thể gửi mã thông báo này đến các API định tuyến và điều hướng để cải thiện trải nghiệm định tuyến và điều hướng trong ứng dụng của mình. Hãy xem bài viết Định tuyến bằng mã thông báo điểm điều hướng để biết thêm thông tin.
  • location chứa giá trị vĩ độ, kinh độ của điểm điều hướng. Vị trí này sẽ luôn ở rất gần mạng lưới đường và là điểm dừng hoặc điểm xuất phát lý tưởng để đi đến và đi từ một địa điểm. Điểm này được cố ý đặt lệch một chút so với đường tâm của đường để đánh dấu rõ ràng bên đường nơi có địa điểm.
  • travelModes là danh sách các chế độ di chuyển mà điểm điều hướng có thể truy cập:
    • "DRIVE" là chế độ di chuyển tương ứng với chỉ đường lái xe.
    • "WALK" là phương tiện đi lại tương ứng với đường đi bộ.
  • usages là danh sách các cách sử dụng được điểm điều hướng hỗ trợ. Các trường hợp sử dụng có thể là:
    • "DROPOFF"
    • "PICKUP"
    • "PARKING"

Đối với điểm đón và trả khách, hãy sử dụng điểm đi theo chỉ dẫn có phương thức di chuyển là DRIVE và mục đích sử dụng là PICKUP hoặc DROPOFF. Nếu không có điểm đến lấy hàng hoặc trả hàng, hãy sử dụng điểm điều hướng lái xe ở trên cùng.

  • altitude_meters chứa độ cao của điểm điều hướng tính bằng mét so với hình elip WGS-84. Trong trường hợp có các đoạn đường xếp chồng theo chiều dọc, hãy sử dụng trường altitude_meters để chọn đoạn đường phù hợp nhất cho hệ thống của bạn điều hướng đến.

landmarks

Các địa điểm lân cận nổi bật để giúp người dùng hiểu rõ khu vực xung quanh điểm đến.

Mỗi điểm mốc chứa các trường sau:

  • place là đối tượng PlaceView đại diện cho địa danh này.
  • relationalDescription là nội dung mô tả mà con người có thể đọc được về mối quan hệ giữa điểm đến và địa danh, chẳng hạn như "Gần Toà nhà Empire State" hoặc "Đối diện Nhà Trắng".
  • tags[] là một mảng các thẻ mô tả cách sử dụng địa danh trong bối cảnh của điểm đến:
    • "ADDRESS": Một địa điểm nổi bật tại địa phương có thể dùng để xác định vị trí khái quát của điểm đến.
    • "ARRIVAL": Một địa điểm có thể giúp bạn đến đích, hữu ích cho việc đi theo chỉ dẫn khi gần đến đích.
  • straightLineDistanceMeters là khoảng cách theo đường thẳng từ địa danh này đến điểm đến, tính bằng mét.
  • travelDistanceMeters là khoảng cách đi bộ từ địa danh này đến đích đến, tính bằng mét.

arrivalSummary

Thông tin chi tiết dựa trên AI để hỗ trợ bạn đến nơi. Xem bản tóm tắt do AI tạo.

parkingOptions

Thông tin chi tiết về bãi đỗ xe.

Định dạng phản hồi

SearchDestinations trả về một SearchDestinationsResponse có dạng JSON sau:

{
  "destinations": [
    {
      "primary": {
        "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w",
        "displayName": {
          "text": "Arby's",
          "languageCode": "en"
        },
        "primaryType": "fast_food_restaurant",
        "types": [
          "fast_food_restaurant",
          "sandwich_shop",
          "deli",
          "meal_takeaway",
          "food_delivery",
          "american_restaurant",
          "restaurant",
          "food_store",
          "store",
          "food",
          "point_of_interest",
          "establishment"
        ],
        "formattedAddress": "Arby's, 601 S Bernardo Ave, Sunnyvale, CA 94087, USA",
        "postalAddress": {
          "regionCode": "US",
          "languageCode": "en",
          "postalCode": "94087",
          "administrativeArea": "CA",
          "locality": "Sunnyvale",
          "addressLines": [
            "601 S Bernardo Ave"
          ]
        },
        "structureType": "BUILDING",
        "location": {
          "latitude": 37.3734545,
          "longitude": -122.05693269999998
        },
        "displayPolygon": {
          "type": "Polygon",
          "coordinates": [
            [
              [
                -122.056930138027,
                37.3735253692531
              ],
              [
                -122.056960139391,
                37.3735372663597
              ],
              [
                -122.056994129366,
                37.3734828786847
              ],
              [
                -122.056969677395,
                37.3734731161089
              ],
              [
                -122.057061762447,
                37.3733261309656
              ],
              [
                -122.056979388817,
                37.3732935577128
              ],
              [
                -122.056798860285,
                37.3735818838642
              ],
              [
                -122.056875858081,
                37.3736121235316
              ],
              [
                -122.056930138027,
                37.3735253692531
              ]
            ]
          ]
        }
      },
      "containingPlaces": [
        {
          "place": "places/ChIJYfdAFum2j4ARIcL2tjME3Sw",
          "displayName": {
            "text": "Cherry Chase Shopping Center",
            "languageCode": "en"
          },
          "primaryType": "shopping_mall",
          "types": [
            "shopping_mall",
            "point_of_interest",
            "establishment"
          ],
          "formattedAddress": "Cherry Chase Shopping Center, 663 S Bernardo Ave, Sunnyvale, CA 94087, USA",
          "postalAddress": {
            "regionCode": "US",
            "languageCode": "en",
            "postalCode": "94087-1020",
            "administrativeArea": "CA",
            "locality": "Sunnyvale",
            "addressLines": [
              "663 S Bernardo Ave"
            ]
          },
          "structureType": "GROUNDS",
          "location": {
            "latitude": 37.3731231,
            "longitude": -122.0578211
          },
          "displayPolygon": {
            "type": "Polygon",
            "coordinates": [
              [
                [
                  -122.057112227103,
                  37.3714618008523
                ],
                [
                  -122.057076849821,
                  37.3715743611411
                ],
                [
                  -122.056963607756,
                  37.3719081793948
                ],
                [
                  -122.056865279559,
                  37.3722026053835
                ],
                [
                  -122.056687872374,
                  37.3727258358476
                ],
                [
                  -122.056580005889,
                  37.3730511370747
                ],
                [
                  -122.056498845827,
                  37.3732994782583
                ],
                [
                  -122.056338259713,
                  37.3737878663325
                ],
                [
                  -122.056618678291,
                  37.373887693582
                ],
                [
                  -122.056912102521,
                  37.3740010327191
                ],
                [
                  -122.057532418159,
                  37.3742476426462
                ],
                [
                  -122.057673926626,
                  37.3742441740031
                ],
                [
                  -122.057735663106,
                  37.3742328516943
                ],
                [
                  -122.057766531332,
                  37.3742220604378
                ],
                [
                  -122.057797572967,
                  37.37420520725
                ],
                [
                  -122.057828267759,
                  37.3741852342085
                ],
                [
                  -122.058060299297,
                  37.3740060842535
                ],
                [
                  -122.058199726081,
                  37.3737861673422
                ],
                [
                  -122.05836707267,
                  37.373524542556
                ],
                [
                  -122.058569622393,
                  37.3732018598683
                ],
                [
                  -122.0587638478,
                  37.3728890198039
                ],
                [
                  -122.058934661823,
                  37.3726036257774
                ],
                [
                  -122.059164956851,
                  37.3722498383629
                ],
                [
                  -122.058997784906,
                  37.3721804442035
                ],
                [
                  -122.057936479838,
                  37.3717605636234
                ],
                [
                  -122.057495827092,
                  37.3715860151634
                ],
                [
                  -122.057112227103,
                  37.3714618008523
                ]
              ]
            ]
          }
        }
      ],
      "landmarks": [
        {
          "place": {
            "place": "places/ChIJXXTe7Oi2j4ARoMTA-D6Hjpg",
            "displayName": {
              "text": "Chase Bank",
              "languageCode": "en"
            },
            "primaryType": "bank",
            "types": [
              "bank",
              "atm",
              "finance",
              "point_of_interest",
              "establishment"
            ],
            "formattedAddress": "Chase Bank, 1234 W El Camino Real, Sunnyvale, CA 94087, USA",
            "postalAddress": {
              "regionCode": "US",
              "languageCode": "en",
              "postalCode": "94087",
              "administrativeArea": "CA",
              "locality": "Sunnyvale",
              "addressLines": [
                "1234 W El Camino Real"
              ]
            },
            "structureType": "POINT",
            "location": {
              "latitude": 37.373579,
              "longitude": -122.05752700000001
            }
          },
          "relationalDescription": {
            "text": "Near Chase Bank",
            "languageCode": "en"
          },
          "tags": [
            "ARRIVAL",
            "ADDRESS"
          ],
          "straightLineDistanceMeters": 61.182193756103516,
          "travelDistanceMeters": 63.075645446777344
        },
        {
          "place": {
            "place": "places/ChIJteQ0Fum2j4ARGi3tqK4Zm14",
            "displayName": {
              "text": "Safeway",
              "languageCode": "en"
            },
            "primaryType": "grocery_store",
            "types": [
              "grocery_store",
              "butcher_shop",
              "florist",
              "deli",
              "supermarket",
              "bakery",
              "food_delivery",
              "market",
              "manufacturer",
              "food_store",
              "store",
              "food",
              "service",
              "point_of_interest",
              "establishment"
            ],
            "formattedAddress": "Safeway, 639 S Bernardo Ave, Sunnyvale, CA 94087, USA",
            "postalAddress": {
              "regionCode": "US",
              "languageCode": "en",
              "postalCode": "94087",
              "administrativeArea": "CA",
              "locality": "Sunnyvale",
              "addressLines": [
                "639 S Bernardo Ave"
              ]
            },
            "structureType": "POINT",
            "location": {
              "latitude": 37.3727912,
              "longitude": -122.0581172
            }
          },
          "relationalDescription": {
            "text": "Around the corner from Safeway",
            "languageCode": "en"
          },
          "tags": [
            "ARRIVAL",
            "ADDRESS"
          ],
          "straightLineDistanceMeters": 158.65606689453125,
          "travelDistanceMeters": 131.1669921875
        },
        {
          "place": {
            "place": "places/ChIJu-PSYui2j4ARNiwOwBApGqk",
            "displayName": {
              "text": "Oil Changers",
              "languageCode": "en"
            },
            "types": [
              "car_repair",
              "service",
              "point_of_interest",
              "establishment"
            ],
            "formattedAddress": "Oil Changers, 1240 W El Camino Real, Sunnyvale, CA 94087, USA",
            "postalAddress": {
              "regionCode": "US",
              "languageCode": "en",
              "postalCode": "94087",
              "administrativeArea": "CA",
              "locality": "Sunnyvale",
              "addressLines": [
                "1240 W El Camino Real"
              ]
            },
            "structureType": "POINT",
            "location": {
              "latitude": 37.3743054,
              "longitude": -122.0584272
            }
          },
          "relationalDescription": {
            "text": "Down the road from Oil Changers",
            "languageCode": "en"
          },
          "tags": [
            "ARRIVAL"
          ],
          "straightLineDistanceMeters": 140.52459716796875,
          "travelDistanceMeters": 143.24220275878906
        },
        {
          "place": {
            "place": "places/ChIJKRbl5oG3j4ARwuvPGUmtCj0",
            "displayName": {
              "text": "Apni Mandi Farmers Market Sunnyvale",
              "languageCode": "en"
            },
            "primaryType": "grocery_store",
            "types": [
              "grocery_store",
              "cake_shop",
              "supermarket",
              "asian_grocery_store",
              "indian_restaurant",
              "meal_takeaway",
              "bakery",
              "manufacturer",
              "wholesaler",
              "restaurant",
              "food_store",
              "store",
              "food",
              "point_of_interest",
              "establishment"
            ],
            "formattedAddress": "Apni Mandi Farmers Market Sunnyvale, 1111 W El Camino Real, Sunnyvale, CA 94087, USA",
            "postalAddress": {
              "regionCode": "US",
              "languageCode": "en",
              "postalCode": "94087-1056",
              "administrativeArea": "CA",
              "locality": "Sunnyvale",
              "addressLines": [
                "1111 W El Camino Real"
              ]
            },
            "structureType": "POINT",
            "location": {
              "latitude": 37.3737199,
              "longitude": -122.0522958
            }
          },
          "relationalDescription": {
            "text": "Near Apni Mandi Farmers Market Sunnyvale",
            "languageCode": "en"
          },
          "tags": [
            "ADDRESS"
          ],
          "straightLineDistanceMeters": 410.37435913085938,
          "travelDistanceMeters": 479.49893188476562
        },
        {
          "place": {
            "place": "places/ChIJ8enMlui2j4AR2xXK5EHDhBs",
            "displayName": {
              "text": "Starbird Chicken",
              "languageCode": "en"
            },
            "primaryType": "chicken_restaurant",
            "types": [
              "chicken_restaurant",
              "fast_food_restaurant",
              "restaurant",
              "food",
              "point_of_interest",
              "establishment"
            ],
            "formattedAddress": "Starbird Chicken, 1241 W El Camino Real, Sunnyvale, CA 94087, USA",
            "postalAddress": {
              "regionCode": "US",
              "languageCode": "en",
              "postalCode": "94087-1028",
              "administrativeArea": "CA",
              "locality": "Sunnyvale",
              "addressLines": [
                "1241 W El Camino Real"
              ]
            },
            "structureType": "BUILDING",
            "location": {
              "latitude": 37.3746764,
              "longitude": -122.05708860000001
            },
            "displayPolygon": {
              "coordinates": [
                [
                  [
                    -122.057003840785,
                    37.3747648209809
                  ],
                  [
                    -122.057136852459,
                    37.3747919153144
                  ],
                  [
                    -122.057205005705,
                    37.3745815131859
                  ],
                  [
                    -122.057071994114,
                    37.3745544186944
                  ],
                  [
                    -122.057003840785,
                    37.3747648209809
                  ]
                ]
              ],
              "type": "Polygon"
            }
          },
          "relationalDescription": {
            "text": "Near Starbird Chicken",
            "languageCode": "en"
          },
          "tags": [
            "ADDRESS"
          ],
          "straightLineDistanceMeters": 87.348007202148438,
          "travelDistanceMeters": 214.08084106445312
        }
      ],
      "entrances": [
        {
          "location": {
            "latitude": 37.3735328,
            "longitude": -122.05694879999999
          },
          "tags": [
            "PREFERRED"
          ],
          "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w"
        }
      ],
      "navigationPoints": [
        {
          "navigationPointToken": "ChIJeMt61tqvQkARWT2716SDXsASEgljyy_n6LaPgBH9LoGUMNHjbBoSCWPLL-foto-AEf0ugZQw0eNsIhIJhf5y6ei2j4ARz7yBW5KAPI4",
          "location": {
            "latitude": 37.3738659,
            "longitude": -122.05693620000001
          },
          "travelModes": [
            "DRIVE",
            "WALK"
          ],
          "usages": [
            "PARKING"
          ]
        }
      ]
    }
  ]
}

Tham số bắt buộc

  • Yêu cầu API phải có một trong 3 tham số sau đây, trong đó chỉ định địa chỉ, địa điểm hoặc vị trí để tìm kiếm điểm đến:
    • addressQuery – địa chỉ cần tìm.
    • place – Mã địa điểm của địa điểm cần tìm.
    • locationQuery – toạ độ vĩ độ và kinh độ của vị trí cần tìm.
  • FieldMask

    Chỉ định danh sách các trường cần trả về trong phản hồi bằng cách tạo một mặt nạ trường phản hồi. Truyền mặt nạ trường phản hồi đến phương thức bằng cách sử dụng tham số URL $fields hoặc fields, hoặc bằng cách sử dụng tiêu đề HTTP X-Goog-FieldMask. Ví dụ: yêu cầu bên dưới sẽ chỉ trả về lối vào, điểm đi theo chỉ dẫn và mã địa điểm của điểm đến chính.

      curl -X POST -d '{"place": "places/ChIJG3kh4hq6j4AR_XuFQnV0_t8"}' \
        -H "X-Goog-Api-Key: API_KEY" \
        -H "Content-Type: application/json" \
        -H "X-Goog-FieldMask: destinations.entrances,destinations.navigationPoints,destinations.primary.place" \
        https://geocode.googleapis.com/v4/geocode/destinations
      

    Không có danh sách mặc định về các trường được trả về trong phản hồi. Nếu bạn bỏ qua mặt nạ trường, phương thức này sẽ trả về lỗi. Đặt mặt nạ trường thành * để trả về tất cả các trường. Hãy xem phần Chọn các trường cần trả về để biết thêm thông tin chi tiết.

Thông số tùy chọn

  • travelModes

    Chỉ định loại navigationPoints cần trả về. Các điểm điều hướng cho các phương thức di chuyển khác sẽ bị lọc bỏ. Nếu bạn không đặt travelModes, thì hệ thống có thể trả về điểm đi theo chỉ dẫn của tất cả phương tiện đi lại.

  • languageCode

    Ngôn ngữ để trả về kết quả.

    • Xem danh sách ngôn ngữ được hỗ trợ. Google thường xuyên cập nhật các ngôn ngữ được hỗ trợ, vì vậy danh sách này có thể chưa đầy đủ.
    • Nếu bạn không cung cấp languageCode, API sẽ mặc định sử dụng ngôn ngữ và tập lệnh của vị trí. Nếu bạn chỉ định một mã ngôn ngữ không hợp lệ, API sẽ trả về lỗi INVALID_ARGUMENT.
    • API này cố gắng hết sức để cung cấp địa chỉ đường phố mà cả người dùng và người dân địa phương đều có thể đọc được. Để đạt được mục tiêu đó, API này sẽ trả về địa chỉ đường phố bằng ngôn ngữ địa phương, được chuyển tự sang một hệ thống chữ viết mà người dùng có thể đọc được (nếu cần), đồng thời tuân thủ ngôn ngữ ưu tiên. Tất cả các địa chỉ khác được trả về bằng ngôn ngữ ưu tiên. Tất cả thành phần địa chỉ đều được trả về bằng cùng một ngôn ngữ, được chọn từ thành phần đầu tiên.
    • Nếu không có tên bằng ngôn ngữ ưu tiên, API sẽ sử dụng kết quả trùng khớp gần nhất.
    • Ngôn ngữ ưu tiên có ảnh hưởng nhỏ đến nhóm kết quả mà API chọn trả về và thứ tự trả về. Trình mã hoá địa lý diễn giải các từ viết tắt theo nhiều cách tuỳ thuộc vào ngôn ngữ, chẳng hạn như từ viết tắt cho các loại đường phố hoặc từ đồng nghĩa có thể hợp lệ trong một ngôn ngữ nhưng không hợp lệ trong ngôn ngữ khác.
  • regionCode

    Mã vùng dưới dạng giá trị mã CLDR gồm hai ký tự. Không có giá trị mặc định. Hầu hết mã CLDR đều giống với mã ISO 3166-1.

    Khi mã hoá địa lý một địa chỉ, mã hoá địa lý chuyển tiếp, tham số này có thể ảnh hưởng nhưng không hạn chế hoàn toàn kết quả từ dịch vụ đến khu vực được chỉ định. Khi mã hoá địa lý một vị trí hoặc một địa điểm, mã hoá địa lý ngược hoặc mã hoá địa lý địa điểm, bạn có thể dùng tham số này để định dạng địa chỉ. Trong mọi trường hợp, tham số này có thể ảnh hưởng đến kết quả dựa trên luật hiện hành.

  • placeFilter

    Cho phép bạn lọc kết quả của một lượt tìm kiếm locationQuery để đáp ứng yêu cầu của bạn, chẳng hạn như chỉ trả về những điểm đến là toà nhà hoặc chỉ trả về những điểm đến có địa chỉ rõ ràng.

    Lọc theo mức độ chi tiết của cấu trúc

    Bộ lọc structureType cho phép bạn chỉ định loại cấu trúc mà truy vấn trả về:

    • Tách riêng toà nhà: Sử dụng "structureType": "BUILDING" để hiển thị đường viền toà nhà trên bản đồ hoặc xem thông tin chi tiết về một công trình cụ thể.
    • Tìm hiểu về khu phức hợp: Sử dụng "structureType": "GROUNDS" để đảm bảo kết quả chính là toàn bộ khuôn viên. Điều này hữu ích khi truy vấn các khu vực lớn hơn như khuôn viên trường đại học hoặc trung tâm mua sắm.
    • Tập trung vào các căn hộ/khu vực: Sử dụng "structureType": "SECTION" để xác định các khu vực trong một toà nhà.

    Đảm bảo địa chỉ hữu ích

    Không phải địa điểm nào cũng có địa chỉ đường phố rõ ràng. Bộ lọc addressability giúp bạn kiểm soát chất lượng của địa chỉ trong kết quả:

    • Yêu cầu địa chỉ chính rõ ràng: Để đảm bảo kết quả đích đến chính luôn có địa chỉ hoặc tên ở cấp đường, hãy sử dụng "addressability": "PRIMARY". Điều này rất hữu ích cho mục đích chỉ đường hoặc hiển thị, trong đó địa chỉ rõ ràng là rất quan trọng.
    • Cho phép địa chỉ trong các đích đến phụ: Trong trường hợp địa điểm chính có thể không có địa chỉ, nhưng các đơn vị trong địa điểm đó thì có (chẳng hạn như các căn hộ trong một toà nhà), "addressability": "WEAK" đảm bảo rằng ít nhất địa điểm chính hoặc một trong các đích đến phụ của địa điểm đó có địa chỉ.
    • Mọi kết quả: Nếu sự hiện diện của địa chỉ không liên quan đến trường hợp sử dụng của bạn, hãy dùng "addressability": "ANY". Bạn nên sử dụng tính năng này khi chỉ cần các thuộc tính hình học như đường viền toà nhà và điểm điều hướng, vì tính năng này sẽ cải thiện độ chính xác của những kết quả này.
    Ví dụ: Lọc các toà nhà có địa chỉ
    curl -X POST -d '{
      "locationQuery": {
        "location": {
          "latitude": 37.37348780,
          "longitude": -122.05678064
        },
        "placeFilter": {
          "structureType": "BUILDING",
          "addressability": "PRIMARY"
        }
      },
      "languageCode": "en"
    }' \\
    -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \\
    -H "X-Goog-FieldMask: place" \\
    https://geocode.googleapis.com/v4/geocode/destinations