Meninjau respons rute

Saat Routes API menghitung rute, Routes API akan menggunakan titik jalan dan parameter konfigurasi yang Anda berikan sebagai input. API kemudian menampilkan respons yang berisi rute default dan satu atau beberapa rute alternatif.

Respons Anda dapat mencakup berbagai jenis rute dan data lainnya, berdasarkan kolom yang Anda minta:

Untuk menyertakannya dalam respons Lihat dokumentasi ini
Rute yang paling hemat bahan bakar atau energi berdasarkan jenis mesin kendaraan. Mengonfigurasi Rute ramah lingkungan
Hingga tiga rute alternatif Meminta rute alternatif
Polyline untuk seluruh rute, untuk setiap segmen rute, dan untuk setiap langkah segmen. Meminta polyline rute
Estimasi tarif tol, dengan mempertimbangkan diskon atau kartu tarif tol yang tersedia untuk pengemudi atau kendaraan. Menghitung tarif tol
Respons yang dilokalkan menurut kode bahasa dan unit pengukuran (imperial atau metrik). Meminta nilai yang dilokalkan
Untuk memformat petunjuk navigasi sebagai string teks HTML, tambahkan HTML_FORMATTED_NAVIGATION_INSTRUCTIONS ke extraComputations. Komputasi Tambahan

Untuk daftar lengkap opsi input, lihat Opsi rute yang tersedia dan Isi permintaan.

Dengan menggunakan respons tersebut, Anda dapat memberikan informasi yang diperlukan pelanggan untuk memilih rute yang sesuai dengan kebutuhan mereka.

Tentang mask kolom

Saat memanggil metode untuk menghitung rute, Anda harus menentukan mask kolom yang menentukan kolom yang ingin ditampilkan dalam respons. Tidak ada daftar default untuk kolom yang ditampilkan. Jika Anda menghapus daftar ini, metode akan menampilkan error.

Contoh dalam dokumen ini menunjukkan seluruh objek respons tanpa mempertimbangkan mask kolom. Dalam lingkungan produksi, respons Anda hanya akan menyertakan kolom yang Anda tentukan secara eksplisit dalam mask kolom.

Untuk informasi selengkapnya, lihat Memilih informasi yang ingin ditampilkan.

Tentang menampilkan hak cipta

Anda harus menyertakan pernyataan hak cipta berikut saat menampilkan hasilnya kepada pengguna Anda:

Powered by Google, ©YEAR Google

Contoh:

Powered by Google, ©2023 Google

Tentang rute, kaki, dan langkah

Sebelum melihat respons yang ditampilkan oleh Routes API, Anda harus memahami komponen yang membentuk rute:

Rute, segmen, dan langkah.

Respons Anda mungkin berisi informasi tentang setiap komponen rute berikut:

  • Rute: Seluruh perjalanan dari titik jalan asal, melalui titik jalan perantara, ke titik jalan tujuan. Rute terdiri dari satu atau beberapa segmen.

  • Leg: Jalur dari satu titik jalan dalam rute ke titik jalan berikutnya dalam rute. Setiap segmen terdiri dari satu atau beberapa langkah terpisah.

    Sebuah rute berisi segmen terpisah untuk jalur dari setiap titik jalan ke titik berikutnya. Misalnya, jika rute berisi satu titik jalan asal dan satu titik jalan tujuan, rute akan berisi satu segmen. Untuk setiap titik jalan tambahan yang Anda tambahkan ke rute setelah asal dan tujuan, yang disebut titik jalan perantara, API akan menambahkan segmen yang terpisah.

    API tidak menambahkan segmen untuk titik jalan perantara pass-through. Misalnya, rute yang berisi titik jalan asal, titik jalan perantara yang dilewati, dan titik jalan tujuan hanya berisi satu segmen dari tempat asal ke tujuan, saat melewati titik jalan tersebut. Untuk informasi selengkapnya tentang titik jalan pass-through, lihat Menentukan titik jalan pass-through.

  • Langkah: Satu petunjuk di sepanjang segmen rute. Langkah adalah satuan paling atomik dari rute. Misalnya, sebuah langkah dapat menunjukkan "Belok kiri di Jalan Utama''.

Yang ada dalam respons

Objek JSON yang mewakili respons API berisi properti tingkat atas berikut:

  • routes, array elemen dari jenis Route. Array routes berisi satu elemen untuk setiap rute yang ditampilkan oleh API. Array dapat berisi maksimal lima elemen: rute default, rute ramah lingkungan, dan hingga tiga rute alternatif.

  • geocodingResults, array elemen dari jenis GeocodingResults. Untuk setiap lokasi dalam permintaan (asal, tujuan, atau titik jalan perantara) yang Anda tentukan sebagai string alamat atau sebagai Plus code, API akan melakukan pencarian ID tempat. Setiap elemen array ini berisi ID tempat yang sesuai dengan lokasi. Lokasi dalam permintaan yang ditetapkan sebagai ID tempat atau sebagai koordinat lintang/bujur tidak disertakan. Jika Anda telah menetapkan semua lokasi menggunakan ID tempat atau koordinat lintang dan bujur, array ini tidak akan disediakan.

  • fallbackInfo, dari jenis FallbackInfo. Jika API tidak dapat menghitung rute dari semua properti input, API tersebut mungkin kembali menggunakan cara komputasi yang berbeda. Saat mode penggantian digunakan, kolom ini berisi info mendetail tentang respons penggantian. Jika tidak, kolom ini tidak ditetapkan.

Respons berupa:

{
  // The routes array.
  "routes": [
    {
      object (Route)
    }
  ],
  // The place ID lookup results.
  "geocodingResults": [
    {
      object (GeocodedWaypoint)
    }
  ],
  // The fallback property.
  "fallbackInfo": {
    object (FallbackInfo)
  }
}

Menguraikan array rute

Respons berisi array routes, dengan setiap elemen array berjenis Route. Setiap elemen array mewakili keseluruhan rute dari tempat asal ke tujuan. API selalu menampilkan setidaknya satu rute, yang disebut rute default.

Anda dapat meminta rute tambahan. Jika Anda meminta rute ramah lingkungan, array dapat berisi dua elemen: rute default dan rute ramah lingkungan. Atau, tetapkan computeAlternativeRoutes ke true dalam permintaan untuk menambahkan hingga tiga rute alternatif ke respons.

Setiap rute dalam array diidentifikasi dengan properti array routeLabels:

Nilai Deskripsi
DEFAULT_ROUTE Mengidentifikasi rute default.
FUEL_EFFICIENT Mengidentifikasi rute ramah lingkungan.
DEFAULT_ROUTE_ALTERNATE Iindikasikan rute alternatif.

Array legs berisi definisi setiap segmen rute. Properti lainnya, seperti distanceMeters, duration, dan polyline, berisi informasi tentang rute secara keseluruhan:

{
  "routeLabels": [
    enum (RouteLabel)
  ],
  "legs": [
    {
      object (RouteLeg)
    }
  ],
  "distanceMeters": integer,
  "duration": string,
  "routeLabels": [string],
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "description": string,
  "warnings": [
    string
  ],
  "viewport": {
    object (Viewport)
  },
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  }
  "routeToken": string
}

Karena kondisi mengemudi saat ini dan faktor lainnya, rute default dan rute ramah lingkungan bisa sama. Dalam hal ini, array routeLabels berisi kedua label: DEFAULT_ROUTE dan FUEL_EFFICIENT.

{
  "routes": [
    {
      "routeLabels": [
        "DEFAULT_ROUTE",
        "FUEL_EFFICIENT"
      ],
     …
    }
  ]
}

Memahami array kaki

Setiap route dalam respons berisi array legs, dengan setiap elemen array legs adalah jenis RouteLeg. Setiap segmen dalam array menentukan jalur dari satu titik jalan ke titik jalan berikutnya di sepanjang rute. Rute selalu berisi setidaknya satu segmen.

Properti legs berisi definisi setiap langkah di sepanjang segmen dalam array steps. Properti yang tersisa, seperti distanceMeters, duration, dan polyline berisi informasi tentang segmen tersebut.

{
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "steps": [
    {
      object (RouteLegStep)
    }
  ],
  "travelAdvisory": {
    object (RouteLegTravelAdvisory)
  }
}

Memahami array langkah

Setiap segmen dalam respons berisi array steps, dengan setiap elemen array steps adalah jenis RouteLegStep. Langkah sesuai dengan satu petunjuk di sepanjang segmennya. Satu segmen selalu berisi setidaknya satu langkah.

Setiap elemen dalam array steps mencakup properti navigationInstruction, dengan jenis NavigationInstruction, yang berisi petunjuk langkah. Contoh:

"navigationInstruction": {
  "maneuver": "TURN_LEFT",
  "instructions": "Turn left toward Frontage Rd"
}

instructions mungkin berisi informasi tambahan tentang langkah tersebut. Contoh:

"navigationInstruction": {
  "maneuver": "TURN_SLIGHT_LEFT",
  "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days"
}

Properti yang tersisa dalam langkah tersebut menjelaskan informasi tentang langkah tersebut, seperti distanceMeters, duration, dan polyline:

{
  "distanceMeters": integer,
  "staticDuration": string,
  "polyline": {
    object (Polyline)
  },
  "startLocation": {
    object (Location)
  },
  "endLocation": {
    object (Location)
  },
  "navigationInstruction": {
    object (NavigationInstruction)
  }
}

Tentukan bahasa petunjuk langkah

API menampilkan informasi rute dalam bahasa lokal, yang ditransliterasi ke skrip yang dapat dibaca oleh pengguna, jika perlu, sambil mengamati bahasa pilihan. Semua komponen alamat ditampilkan dalam bahasa yang sama.

  • Gunakan parameter languageCode dari permintaan untuk menetapkan bahasa rute secara eksplisit dari daftar bahasa yang didukung. Google sering memperbarui bahasa yang didukung, sehingga daftar ini mungkin tidak lengkap.

  • Jika nama tidak tersedia dalam bahasa yang ditentukan, API akan menggunakan pencocokan yang paling mendekati.

  • Bahasa yang ditentukan dapat memengaruhi rangkaian hasil yang dipilih oleh API untuk ditampilkan dan urutan kemunculannya. 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. Misalnya, {i>utca<i} dan {i>tér<i} adalah sinonim untuk jalan dalam bahasa Hungaria.

Memahami array geocodingResults

Untuk setiap lokasi dalam permintaan (titik jalan asal, tujuan, atau titik jalan perantara) yang ditentukan sebagai string alamat atau sebagai Plus code, API akan mencoba menemukan lokasi yang paling relevan yang memiliki ID tempat yang sesuai. Setiap elemen array geocodingResults berisi kolom placeID yang berisi lokasi sebagai ID tempat dan kolom type yang menentukan jenis lokasi, seperti street_address, premise, atau airport.

Array geocodingResults berisi tiga kolom:

  • origin: Jika ditentukan sebagai string alamat atau sebagai Plus Codes, ID tempat asal. Jika tidak, kolom ini akan dihilangkan dari respons.

  • destination: Jika ditetapkan sebagai string alamat atau sebagai Plus Codes, ID tempat tujuan. Jika tidak, kolom ini akan dihilangkan dari respons.

  • intermediates: Array yang berisi ID tempat titik jalan perantara yang ditentukan sebagai string alamat atau sebagai Plus Codes. Jika Anda menetapkan titik jalan perantara menggunakan ID tempat atau koordinat lintang dan bujur, titik jalan tersebut akan dihilangkan dari respons. Gunakan properti intermediateWaypointRequestIndex dalam respons untuk menentukan titik jalan perantara dalam permintaan yang sesuai dengan ID tempat dalam respons.

"geocodingResults": {
    "origin": {
        "geocoderStatus": {},
        "type": [
             enum (Type)
        ],
        "placeId": string
    },
    "destination": {
        "geocoderStatus": {},
        "type": [
            enum (Type)
        ],
        "placeId": string
    },
    "intermediates": [
        {
            "geocoderStatus": {},
            "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        },
        {
           "geocoderStatus": {},
           "intermediateWaypointRequestIndex": integer,
            "type": [
                enum (Type)
            ],
            "placeId": string
        }
    ]
}

Memahami nilai respons yang dilokalkan

Nilai respons yang dilokalkan adalah kolom respons tambahan yang menyediakan teks yang dilokalkan untuk parameter value yang ditampilkan. Teks yang dilokalkan disediakan untuk durasi perjalanan, jarak, dan sistem satuan (metrik atau imperial). Anda meminta nilai yang dilokalkan menggunakan mask kolom, dan dapat menentukan sistem bahasa dan unit atau menggunakan nilai yang disimpulkan oleh API. Untuk mengetahui detailnya, lihat LocalizedValues.

Misalnya, jika Anda menentukan kode bahasa untuk unit bahasa Jerman (de) dan imperial, Anda akan mendapatkan nilai untuk distanceMeters sebesar 49889,7, tetapi juga teks yang dilokalkan yang menyediakan pengukuran jarak tersebut dalam bahasa Jerman dan unit imperial, jadi "31 Meile".

Berikut adalah contoh tampilan yang akan Anda lihat untuk nilai yang dilokalkan:

{ "localized_values":
  {
    "distance": { "text": "31,0 Meile/n" },
    "duration": { "text": 38 Minuten}.
    "static_duration": { "text": 36 Minuten}.
  }
}

Jika Anda tidak menentukan sistem unit atau bahasa, API akan menyimpulkan bahasa dan unit sebagai berikut:

  • Metode ComputeRoutes menyimpulkan unit lokasi dan jarak dari titik jalan asal. Jadi, untuk permintaan pemilihan rute di AS, API menyimpulkan bahasa en-US dan unit IMPERIAL.
  • Metode ComputeRouteMatrix ditetapkan secara default ke bahasa 'en-US' dan unit METRIC.