Membuat rute yang dipilih

Halaman ini menjelaskan cara membuat rute dan menambahkan atribut kustom menggunakan Roads Selection API di bagian berikut:

Membuat rute

Untuk membuat rute, kirim permintaan POST ke endpoint create.

https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID

Isi permintaan harus berupa objek JSON yang menentukan resource SelectedRoute. Objek ini menentukan informasi berikut:

  • Objek dynamicRoute dengan informasi berikut:
  • selectedRouteId unik. Nilai ini harus memiliki panjang 4 hingga 63 karakter dan hanya menggunakan karakter alfanumerik. Jika Anda tidak memberikan ID, sistem akan membuat ID unik untuk rute yang dipilih.

Contoh kode berikut menunjukkan struktur permintaan POST ke endpoint create.

curl -X POST -d '
    {"dynamic_route": { \
      origin: {latitude: ORIGIN_LATITUDE ,longitude: ORIGIN_LONGITUDE}, \
      destination: {latitude: DESTINATION_LATITUDE, longitude: DESTINATION_LONGITUDE} \
    }}' \' \
  -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?selectedRouteId=SELECTED_ROUTE_ID"

Jika berhasil, API akan menampilkan resource SelectedRoute. Respons mencakup selectedRouteId di kolom name. Anda dapat menggunakan selectedRouteId ini untuk mengambil atau menghapus resource SelectedRoute.

Contoh kode berikut menunjukkan struktur respons endpoint create yang berhasil.

{
  "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID",
  "dynamicRoute": {
    "origin": {
      "latitude": ORIGIN_LATITUDE,
      "longitude": ORIGIN_LONGITUDE
    },
    "destination": {
      "latitude": DESTINATION_LATITUDE,
      "longitude": DESTINATION_LONGITUDE
    }
  },
  "createTime": "CREATE_TIME",
  "state": "STATE_VALIDATING"
}

Membuat rute secara batch

Untuk membuat beberapa rute dalam satu permintaan, gunakan endpoint batchCreate. Endpoint ini memungkinkan Anda menentukan hingga 1.000 rute dalam satu panggilan.

Kirim permintaan POST ke endpoint batchCreate:

https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes:batchCreate

URL ini menggunakan sintaksis gRPC Transcoding.

Isi permintaan harus berupa objek JSON yang berisi array requests. Setiap objek dalam array ini adalah CreateSelectedRouteRequest yang menentukan setiap aset SelectedRoute.

Contoh kode berikut menunjukkan struktur permintaan POST ke endpoint batchCreate:

curl -X POST -d '
    {"requests": [
      {
        "dynamicRoute": {
          "origin": {"latitude": ORIGIN_LATITUDE_1, "longitude": ORIGIN_LONGITUDE_1},
          "destination": {"latitude": DESTINATION_LATITUDE_1, "longitude": DESTINATION_LONGITUDE_1}
        },
        "selectedRouteId": "route-one"
      },
      {
        "dynamicRoute": {
          "origin": {"latitude": ORIGIN_LATITUDE_2, "longitude": ORIGIN_LONGITUDE_2},
          "destination": {"latitude": DESTINATION_LATITUDE_2, "longitude": DESTINATION_LONGITUDE_2}
        },
        "selectedRouteId": "route-two"
      }
    ]}
  ' \
  -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:batchCreate"

Jika berhasil, API akan menampilkan respons yang berisi array resource SelectedRoute yang dibuat.

Contoh kode berikut menunjukkan struktur respons endpoint batchCreate:

{
  "selectedRoutes": [
    {
      "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1",
      "dynamicRoute": {
        "origin": {
          "latitude": ORIGIN_LATITUDE_1,
          "longitude": ORIGIN_LONGITUDE_1
        },
        "destination": {
          "latitude": DESTINATION_LATITUDE_1,
          "longitude": DESTINATION_LONGITUDE_1
        }
      },
      "createTime": "CREATE_TIME_1",
      "state": "STATE_VALIDATING"
    },
    {
      "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2",
      "dynamicRoute": {
        "origin": {
          "latitude": ORIGIN_LATITUDE_2,
          "longitude": ORIGIN_LONGITUDE_2
        },
        "destination": {
          "latitude": DESTINATION_LATITUDE_2,
          "longitude": DESTINATION_LONGITUDE_2
        }
      },
      "intermediates": [],
      "createTime": "CREATE_TIME_2",
      "state": "STATE_VALIDATING"
    }
  ]
}

Membuat rute dengan waypoint perantara

Untuk membuat rute yang melewati titik tertentu antara asal dan tujuan, sertakan array intermediates dalam objek dynamicRoute di isi permintaan Anda. Setiap elemen dalam array intermediates adalah titik jalan yang ditentukan oleh latitude dan longitude, rute dapat memiliki hingga 25 titik jalan.

Contoh kode berikut menunjukkan cara membuat SelectedRoute dengan titik jalan perantara:

curl -X POST -d '
    {"dynamic_route": { \
        "origin": {"latitude": ORIGIN_LATITUDE , "longitude": ORIGIN_LONGITUDE}, \
        "intermediates": [
          {"latitude": INTERMEDIATE_LATITUDE_1, "longitude": INTERMEDIATE_LONGITUDE_1},
          {"latitude": INTERMEDIATE_LATITUDE_2, "longitude": INTERMEDIATE_LONGITUDE_2},
          {"latitude": INTERMEDIATE_LATITUDE_3, "longitude": INTERMEDIATE_LONGITUDE_3}
        ],
        "destination": {"latitude": DESTINATION_LATITUDE, "longitude": DESTINATION_LONGITUDE}}}' \
  -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?selectedRouteId=SELECTED_ROUTE_ID"

Memanfaatkan atribut rute kustom

Untuk meningkatkan pengelolaan rute dan analisis data Anda dalam Roads Management Insights, objek SelectedRoute menyertakan kolom route_attributes.

Gunakan kolom routeAttributes untuk menentukan properti kustom Anda sendiri untuk rute individual, dengan setiap atribut adalah pasangan nilai kunci. Anda dapat memberikan hingga 10 pasangan nilai kunci kustom per rute.

Atribut ini berguna untuk mengidentifikasi rute tertentu atau untuk mengelompokkan rute berdasarkan kriteria yang relevan dengan kebutuhan Anda.

Berikut beberapa contoh atribut rute yang dapat Anda gunakan:

  • "road_classification": "highway"
  • "maintenance_zone": "north_district"
  • "event_id": "marathon_2024"
  • "pavement_type": "asphalt"

Ikuti panduan berikutnya saat menentukan kolom routeAttributes:

  • Kunci tidak boleh diawali dengan awalan goog.
  • Panjang setiap kunci dan setiap nilai tidak boleh melebihi 100 karakter.

Kemudian, Anda dapat menggunakan routeAttributes kustom ini dalam Roads Management Insights dengan cara berikut:

  • Memfilter notifikasi Pub/Sub: Anda dapat menyetel filter pada langganan Pub/Sub untuk menerima pembaruan hanya untuk rute yang cocok atau tidak cocok dengan kunci atribut tertentu dan nilai yang sesuai.
  • Sempurnakan analisis BigQuery: Di tabel BigQuery, Anda dapat menggunakan atribut ini untuk memfilter rute tertentu berdasarkan nilai atribut. Anda juga dapat mengelompokkan rute menurut kunci atribut tertentu untuk analisis data yang lebih bertarget.

Contoh kode berikutnya menunjukkan cara membuat SelectedRoute dengan routeAttributes kustom.

curl -X POST -d '
    {"dynamic_route": { origin: {latitude: ORIGIN_LATITUDE ,longitude: ORIGIN_LONGITUDE}, destination: {latitude: DESTINATION_LATITUDE, longitude: DESTINATION_LONGITUDE}}, route_attributes: {"ATTRIBUTE_KEY":"ATTRIBUTE_VALUE"}}' \
  -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?selectedRouteId=SELECTED_ROUTE_ID"