Menelusuri tujuan

Developer Wilayah Ekonomi Eropa (EEA)

Destination mengacu pada tempat menarik yang signifikan atau lokasi tertentu yang ingin dicapai atau dituju oleh pengguna. Destination dapat menyertakan informasi seperti titik navigasi, landmark, pintu masuk, dan garis batas bangunan.

Endpoint SearchDestinations Geocoding API memungkinkan Anda mengambil informasi mendetail tentang berbagai tujuan berdasarkan kriteria input yang berbeda, seperti alamat, ID tempat, atau koordinat lintang dan bujur.

Permintaan penelusuran tujuan

Permintaan penelusuran tujuan adalah permintaan HTTP POST ke URL dalam bentuk:

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

Teruskan semua parameter di isi permintaan JSON atau di header sebagai bagian dari permintaan POST. Contoh:

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/v4alpha/geocode/destinations

Anda dapat menentukan lokasi untuk menelusuri tujuan dengan salah satu dari 3 cara berikut:

  • Alamat
  • ID tempat
  • Koordinat lintang dan bujur

Menelusuri tujuan berdasarkan alamat

Anda dapat menentukan alamat sebagai string yang tidak terstruktur:

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/v4alpha/geocode/destinations

atau sebagai 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/v4alpha/geocode/destinations

Anda biasanya menggunakan format postalAddress saat memproses komponen alamat yang diambil dalam formulir HTML.

Menelusuri tujuan berdasarkan ID tempat

Anda dapat mengambil tujuan dengan memberikan ID tempat:

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/v4alpha/geocode/destinations

Menelusuri tujuan berdasarkan lokasi

Anda dapat menelusuri tujuan dengan memberikan koordinat lintang dan bujur:

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/v4alpha/geocode/destinations

Menggunakan OAuth untuk membuat permintaan

Geocoding API v4 mendukung OAuth 2.0 untuk autentikasi. Untuk menggunakan OAuth dengan Geocoding API, token OAuth harus diberi cakupan yang benar. Geocoding API mendukung cakupan berikut untuk digunakan dengan endpoint Destinations:

  • https://www.googleapis.com/auth/maps-platform.geocode — Gunakan dengan semua endpoint Geocoding API.

Selain itu, Anda dapat menggunakan cakupan https://www.googleapis.com/auth/cloud-platform umum untuk semua endpoint Geocoding API. Cakupan tersebut berguna selama pengembangan, tetapi tidak untuk produksi, karena merupakan cakupan umum yang memungkinkan akses ke semua endpoint.

Untuk informasi dan contoh selengkapnya, lihat Menggunakan OAuth.

Respons penelusuran tujuan

Konteks hiperlokal tentang lokasi

Respons Tujuan Penelusuran memberikan konteks hiperlokal yang kaya tentang lokasi. Kolom utama meliputi:

  • primary: Tempat utama yang diidentifikasi oleh kueri dalam permintaan.
  • containingPlaces: Entitas yang lebih besar yang menjadi bagian dari tujuan utama (misalnya, pusat perbelanjaan yang berisi toko).
  • subDestinations: Lokasi yang lebih spesifik dalam tujuan utama (misalnya, apartemen di sebuah gedung).
  • entrances: Titik masuk dan keluar tertentu untuk tujuan.
  • navigationPoints: Lokasi yang sesuai di dekat jalan untuk navigasi ke tujuan akhir.
  • arrivalSummary: Insight berteknologi AI untuk membantu kedatangan. Lihat Ringkasan berteknologi AI.
  • landmarks: Tempat terdekat yang penting untuk membantu pengguna memahami lingkungan sekitar tujuan.

Untuk mengetahui detail selengkapnya tentang semua kolom respons, lihat Referensi API.

Format respons

SearchDestinations menampilkan SearchDestinationsResponse dalam bentuk JSON berikut:

{
  "destinations": [
    {
      "primary": {
        "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w",
        "displayName": {
          "text": "Arby's",
          "languageCode": "en"
        },
        "primaryType": "fast_food_restaurant",
        "types": [
          "fast_food_restaurant",
          "sandwich_shop",
          "deli",
          "american_restaurant",
          "meal_takeaway",
          "restaurant",
          "food_store",
          "food",
          "point_of_interest",
          "store",
          "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/ChIJteQ0Fum2j4ARGi3tqK4Zm14", "displayName": { "text": "Safeway", "languageCode": "en" }, "primaryType": "grocery_store", "types": [ "grocery_store", "florist", "butcher_shop", "deli", "bakery", "food_delivery", "supermarket", "market", "food_store", "food", "point_of_interest", "store", "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 } }, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Around the corner from Safeway", "languageCode": "en" }, "straightLineDistanceMeters": 158.65607, "travelDistanceMeters": 131.16699 }, { "place": { "place": "places/ChIJ8enMlui2j4AR2xXK5EHDhBs", "displayName": { "text": "Starbird Chicken", "languageCode": "en" }, "types": [ "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":
{ ... } { "type": "Polygon", "coordinates": [ [ [ -122.057003840785, 37.3747648209809 ], [ -122.057136852459, 37.3747919153144 ], [ -122.057205005705, 37.3745815131859 ], [ -122.057071994114, 37.3745544186944 ], [ -122.057003840785, 37.3747648209809 ] ] ] }
}, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Near Starbird Chicken", "languageCode": "en" }, "straightLineDistanceMeters": 87.34801, "travelDistanceMeters": 214.08084 }, { "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 } }, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Near Chase Bank", "languageCode": "en" }, "straightLineDistanceMeters": 61.182194, "travelDistanceMeters": 63.075645 }, { "place": { "place": "places/ChIJlbIO1Oi2j4ARp17Uf24xkHk", "displayName": { "text": "Madras Café", "languageCode": "en" }, "primaryType": "indian_restaurant", "types": [ "indian_restaurant", "coffee_shop", "cafe", "restaurant", "food_store", "food", "point_of_interest", "store", "establishment" ], "formattedAddress": "Madras Café, 1177 W El Camino Real, Sunnyvale, CA 94087, USA", "postalAddress": { "regionCode": "US", "languageCode": "en", "postalCode": "94087-1026", "administrativeArea": "CA", "locality": "Sunnyvale", "addressLines": [ "1177 W El Camino Real" ] }, "structureType": "POINT", "location": { "latitude": 37.3743, "longitude": -122.0549333 } }, "tags": [ "ARRIVAL", "ADDRESS" ], "relationalDescription": { "text": "Near Madras Café", "languageCode": "en" }, "straightLineDistanceMeters": 204.45102, "travelDistanceMeters": 235.12041 } ]
, "entrances": [ { "location": { "latitude": 37.373531299999996, "longitude": -122.05694519999999 }, "tags": [ "PREFERRED" ], "place": "places/ChIJY8sv5-i2j4AR_S6BlDDR42w" } ], "navigationPoints": [ { "location": { "latitude": 37.3738659, "longitude": -122.05693620000001 }, "travelModes": [ "DRIVE", "WALK" ], "usages": [ "UNKNOWN" ] } ] } ] }

Parameter yang diperlukan

  • Salah satu dari 3 parameter berikut harus ada dalam permintaan API, yang menentukan alamat, tempat, atau lokasi untuk menelusuri tujuan:
    • addressQuery - alamat yang akan ditelusuri.
    • place - ID tempat yang akan ditelusuri.
    • locationQuery - koordinat lintang dan bujur dari lokasi yang akan ditelusuri.
  • FieldMask

    Tentukan daftar kolom yang akan ditampilkan dalam respons dengan membuat mask kolom respons. Teruskan mask kolom respons ke metode menggunakan parameter URL $fields atau fields, atau menggunakan header HTTP X-Goog-FieldMask. Misalnya, permintaan di bawah hanya akan menampilkan pintu masuk, titik navigasi, dan ID tempat tujuan utama.

      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/v4alpha/geocode/destinations
      

    Tidak ada daftar kolom yang ditampilkan secara default dalam respons. Jika Anda menghilangkan masker kolom, metode akan menampilkan error. Setel mask kolom ke * untuk menampilkan semua kolom. Lihat Memilih kolom yang akan ditampilkan untuk mengetahui detail selengkapnya.

Parameter opsional

  • travelModes

    Menentukan jenis navigationPoints yang akan ditampilkan. Titik navigasi untuk moda transportasi lain akan difilter. Jika travelModes tidak disetel, titik navigasi semua moda transportasi dapat ditampilkan.

  • languageCode

    Bahasa yang digunakan untuk menampilkan hasil.

    • Lihat daftar bahasa yang didukung. Google sering memperbarui bahasa yang didukung, sehingga daftar ini mungkin tidak lengkap.
    • Jika languageCode tidak diberikan, API akan menggunakan nilai default en. Jika Anda menentukan kode bahasa yang tidak valid, API akan menampilkan error INVALID_ARGUMENT.
    • API ini berupaya sebaik mungkin untuk memberikan alamat jalan yang dapat dibaca oleh pengguna dan penduduk setempat. Untuk mencapai tujuan tersebut, API ini menampilkan alamat jalan dalam bahasa lokal, yang ditransliterasi ke skrip yang dapat dibaca oleh pengguna jika perlu, dengan memperhatikan bahasa pilihan. Semua alamat lainnya ditampilkan dalam bahasa pilihan. Komponen alamat semuanya ditampilkan dalam bahasa yang sama, yang dipilih dari komponen pertama.
    • Jika nama tidak tersedia dalam bahasa pilihan, API akan menggunakan kecocokan terdekat.
    • Bahasa pilihan memiliki sedikit pengaruh pada kumpulan hasil yang dipilih API untuk ditampilkan, dan urutan penampilannya. Geocoder menafsirkan singkatan secara berbeda bergantung pada bahasa, seperti singkatan untuk jenis jalan, atau sinonim yang mungkin valid dalam satu bahasa, tetapi tidak dalam bahasa lain.
  • regionCode

    Kode wilayah sebagai nilai kode CLDR dua karakter. Tidak ada nilai default. Sebagian besar kode CLDR identik dengan kode ISO 3166-1.

    Saat melakukan geocoding alamat, geocoding maju, parameter ini dapat memengaruhi, tetapi tidak sepenuhnya membatasi, hasil dari layanan ke wilayah yang ditentukan. Saat melakukan geocoding lokasi atau tempat, geocoding terbalik atau geocoding tempat, parameter ini dapat digunakan untuk memformat alamat. Dalam semua kasus, parameter ini dapat memengaruhi hasil berdasarkan hukum yang berlaku.

  • placeFilter

    Memungkinkan Anda memfilter hasil penelusuran locationQuery agar sesuai dengan persyaratan Anda, seperti hanya menampilkan tujuan yang berupa bangunan atau hanya tujuan yang memiliki alamat yang jelas.

    Memfilter menurut perincian struktural

    Filter structureType memungkinkan Anda menentukan jenis struktur yang ditampilkan oleh kueri:

    • Mengisolasi Bangunan: Gunakan "structureType": "BUILDING" untuk menampilkan garis batas bangunan di peta atau mendapatkan detail untuk struktur tertentu.
    • Memahami Kompleksitas: Gunakan "structureType": "GROUNDS" untuk memastikan hasil utama adalah alasan keseluruhan. Hal ini berguna saat membuat kueri untuk area yang lebih besar seperti kampus universitas atau pusat perbelanjaan.
    • Berfokus pada Unit/Bagian: Gunakan "structureType": "SECTION" untuk mengidentifikasi bagian dalam bangunan.

    Memastikan alamat yang berguna

    Tidak semua tempat memiliki alamat tingkat jalan yang jelas. Filter addressability membantu Anda mengontrol kualitas alamat dalam hasil:

    • Mewajibkan Alamat Utama yang Jelas: Untuk memastikan hasil tujuan utama selalu memiliki alamat atau nama tingkat jalan, gunakan "addressability": "PRIMARY". Hal ini berguna untuk tujuan navigasi atau tampilan yang memerlukan alamat yang jelas.
    • Izinkan Alamat di Sub-Tujuan: Jika tempat utama mungkin tidak memiliki alamat, tetapi unit di dalamnya memiliki alamat (seperti apartemen di gedung), "addressability": "WEAK" memastikan bahwa setidaknya tempat utama atau salah satu sub-tujuannya memiliki alamat.
    • Hasil Apa Pun: Jika kehadiran alamat tidak relevan dengan kasus penggunaan Anda, gunakan "addressability": "ANY".
    Contoh: Memfilter Gedung yang Dapat Dituju
    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/v4alpha/geocode/destinations
    

Masukan

Ini adalah endpoint eksperimental Geocoding API. Kami akan sangat berterima kasih atas masukan Anda di geocoding-feedback-channel@google.com.