Halaman ini menjelaskan cara memperbarui rute yang telah Anda buat menggunakan Roads Selection API:
- Memperbarui rute: Perbarui detail satu rute menggunakan endpoint
patch. - Memperbarui rute secara batch: Perbarui detail beberapa rute dalam satu
permintaan menggunakan endpoint
batchUpdate.
Memperbarui rute
Untuk memperbarui rute, kirim permintaan PATCH ke endpoint patch:
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID?updateMask=UPDATE_MASK
Isi permintaan harus berupa objek JSON yang berisi kolom
SelectedRoute yang akan diperbarui. Kolom yang dapat diupdate mencakup displayName, routeAttributes, dan dynamicRoute. Saat memperbarui geometri rute (dynamicRoute), Anda harus menyediakan seluruh objek dynamicRoute (asal, tujuan, dan titik jalan perantara). Pembaruan sub-kolom sebagian tidak didukung. Kolom sistem hanya baca seperti name, createTime, dan state
tidak dapat diubah. Data historis di BigQuery akan menyimpan data untuk geometri lama dan yang diperbarui dengan selectedRouteId yang sama. Jika Anda memerlukan data historis terpisah, buat rute baru, bukan melakukan update.
Memperbarui geometri rute (dynamicRoute) mengharuskan rute divalidasi ulang.
Pembaruan geometri diizinkan saat rute berada dalam STATE_RUNNING atau
STATE_INVALID, dan ditolak jika rute berada dalam STATE_VALIDATING atau
STATE_DELETING. Untuk mengetahui informasi selengkapnya, lihat Status validasi dan rute.
Memperbarui metadata seperti displayName atau routeAttributes
diizinkan di semua status kecuali STATE_DELETING.
Contoh kode berikut menunjukkan struktur permintaan PATCH ke endpoint
patch:
curl -X PATCH -d '{
"dynamicRoute": {
"origin": {
"latitude": 38.5817,
"longitude": -121.4944
},
"destination": {
"latitude": 38.5449,
"longitude": -121.7405
}
}
}' \
-H 'X-Goog-User-Project: PROJECT_NUMBER' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
"https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes/"\
"SELECTED_ROUTE_ID?updateMask=dynamicRoute"Jika berhasil, API akan menampilkan resource SelectedRoute yang diperbarui:
{ "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID", "dynamicRoute": { "origin": { "latitude": 38.5817, "longitude": -121.4944 }, "destination": { "latitude": 38.5449, "longitude": -121.7405 } }, "createTime": "2026-08-14T20:58:41.345418Z", "state": "STATE_VALIDATING" }
Kumpulan update rute
Untuk memperbarui beberapa rute dalam satu permintaan, gunakan endpoint batchUpdate. Endpoint ini memungkinkan Anda memperbarui hingga 1.000 rute dalam satu panggilan. Update
batch bersifat atomik: jika ada rute dalam permintaan yang gagal divalidasi atau tidak dapat
diperbarui, tidak ada rute dalam batch yang diubah.
Kirim permintaan POST ke endpoint batchUpdate:
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes:batchUpdate
Isi permintaan harus berupa objek JSON yang berisi array requests.
Setiap objek dalam array ini adalah UpdateSelectedRouteRequest yang
menentukan rute name, updateMask tingkat item opsional, dan
kolom selectedRoute yang akan diupdate.
updateMask adalah parameter opsional yang menentukan daftar kolom yang akan diperbarui (displayName, routeAttributes, atau seluruh objek dynamicRoute). Menetapkan updateMask=* menunjukkan penggantian penuh. updateMask
dapat ditentukan di dalam setiap item individual dalam requests, atau dipindahkan ke
tingkat teratas isi permintaan batch untuk diterapkan ke semua rute yang diperbarui dalam batch.
Jika updateMask tidak ada, semua kolom yang dapat diupdate yang diisi dalam permintaan dianggap akan diupdate. Jika updateMask ditetapkan di tingkat batch dan tingkat item, keduanya harus cocok. Menentukan mask yang bertentangan akan menghasilkan error
INVALID_ARGUMENT.
Contoh kode berikut menunjukkan struktur permintaan POST ke endpoint
batchUpdate:
curl -X POST -d '{
"requests": [
{
"selectedRoute": {
"name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1",
"displayName": "DISPLAY_NAME_1",
"dynamicRoute": {
"origin": {"latitude": 37.5, "longitude": -122.1},
"destination": {"latitude": 37.8, "longitude": -122.5}
}
},
"updateMask": "displayName,dynamicRoute"
},
{
"selectedRoute": {
"name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2",
"displayName": "DISPLAY_NAME_2",
"dynamicRoute": {
"origin": {"latitude": 37.5, "longitude": -122.1},
"destination": {"latitude": 37.8, "longitude": -122.5}
}
},
"updateMask": "displayName,dynamicRoute"
}
]}' \
-H 'X-Goog-User-Project: PROJECT_NUMBER' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
"https://roads.googleapis.com/selection/v1/projects/"\
"PROJECT_NUMBER/selectedRoutes:batchUpdate"Jika berhasil, API akan menampilkan respons yang berisi array resource
SelectedRoute yang telah diperbarui:
{ "selectedRoutes": [ { "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1", "displayName": "DISPLAY_NAME_1", "dynamicRoute": { "origin": { "latitude": 37.5, "longitude": -122.1 }, "destination": { "latitude": 37.8, "longitude": -122.5 } }, "createTime": "2026-08-14T20:58:41.345418Z", "state": "STATE_VALIDATING" }, { "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2", "displayName": "DISPLAY_NAME_2", "dynamicRoute": { "origin": { "latitude": 37.5, "longitude": -122.1 }, "destination": { "latitude": 37.8, "longitude": -122.5 } }, "createTime": "2026-08-14T20:58:41.345418Z", "state": "STATE_VALIDATING" } ] }