Seçili rotaları oluşturma

Bu sayfada, aşağıdaki bölümlerde Roads Selection API kullanılarak nasıl rota oluşturulacağı ve özel özellikler ekleneceği açıklanmaktadır:

Rota oluşturma

Rota oluşturmak için create uç noktasına bir POST isteği gönderin.

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

İstek gövdesi, SelectedRoute kaynağını tanımlayan bir JSON nesnesi olmalıdır. Bu nesne aşağıdaki bilgileri belirtir:

  • Aşağıdaki bilgileri içeren bir dynamicRoute nesnesi:
  • Benzersiz bir selectedRouteId. Bu değer 4 ila 63 karakter uzunluğunda olmalı ve yalnızca alfanümerik karakterler kullanılmalıdır. Kimlik sağlamazsanız sistem, seçilen rota için benzersiz bir kimlik oluşturur.

Aşağıdaki kod örneğinde, create uç noktasına yapılan POST isteğinin yapısı gösterilmektedir.

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"

Başarılı olursa API, SelectedRoute kaynağını döndürür. Yanıtta, name alanında selectedRouteId yer alıyor. SelectedRoute kaynağını almak veya silmek için bu selectedRouteId öğesini kullanabilirsiniz.

Aşağıdaki kod örneğinde, başarılı bir create uç nokta yanıtının yapısı gösterilmektedir.

{
  "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"
}

Toplu olarak rota oluşturma

Tek bir istekte birden fazla rota oluşturmak için batchCreate uç noktasını kullanın. Bu uç nokta, tek bir çağrıda 1.000'e kadar rota tanımlamanıza olanak tanır.

batchCreate uç noktasına bir POST isteği gönderin:

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

URL, gRPC Kod Dönüştürme söz dizimini kullanır.

İstek gövdesi, requests dizisi içeren bir JSON nesnesi olmalıdır. Bu dizideki her nesne, tek bir SelectedRoute kaynağını tanımlayan bir CreateSelectedRouteRequest'dir.

Aşağıdaki kod örneğinde, batchCreate uç noktasına yönelik bir POST isteğinin yapısı gösterilmektedir:

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"

Başarılı olursa API, oluşturulan SelectedRoute kaynaklarının dizisini içeren bir yanıt döndürür.

Aşağıdaki kod örneğinde, batchCreate uç nokta yanıtının yapısı gösterilmektedir:

{
  "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"
    }
  ]
}

Ara ara noktalar içeren bir rota oluşturma

Başlangıç ve hedef arasında belirli noktalardan geçen bir rota oluşturmak için istek gövdenizdeki dynamicRoute nesnesine bir intermediates dizisi ekleyin. intermediates dizisindeki her öğe, latitude ve longitude ile tanımlanan bir yol noktasıdır. Bir rotada en fazla 25 yol noktası olabilir.

Aşağıdaki kod örneğinde, ara yol noktaları içeren bir SelectedRoute nasıl oluşturulacağı gösterilmektedir:

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"

Özel rota özelliklerinden yararlanma

Yol Yönetimi Analizleri'nde rota yönetiminizi ve veri analizini iyileştirmek için SelectedRoute nesnesi bir route_attributes alanı içerir.

Her bir özelliğin anahtar/değer çifti olduğu, tek tek rotalar için kendi özel özelliklerinizi tanımlamak üzere routeAttributes alanını kullanın. Rota başına en fazla 10 özel anahtar/değer çifti sağlayabilirsiniz.

Bu özellikler, belirli rotaları belirlemek veya rotaları ihtiyaçlarınızla ilgili ölçütlere göre gruplandırmak için kullanışlıdır.

Kullanabileceğiniz rota özelliklerine dair bazı örnekler aşağıda verilmiştir:

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

routeAttributes alanını tanımlarken aşağıdaki yönergeleri uygulayın:

  • Anahtarlar goog önekiyle başlamamalıdır.
  • Her anahtarın ve her değerin uzunluğu 100 karakteri aşmamalıdır.

Daha sonra, bu özel routeAttributes'leri aşağıdaki şekillerde Yol Yönetimi Analizleri'nde kullanabilirsiniz:

  • Pub/Sub bildirimlerini filtreleme: Pub/Sub aboneliklerinizde filtreler ayarlayarak yalnızca belirli özellik anahtarları ve bunlara karşılık gelen değerlerle eşleşen veya eşleşmeyen rotalarla ilgili güncellemeleri alabilirsiniz.
  • BigQuery analizini hassaslaştırma: BigQuery tablolarınızda, bir özelliğin değerine göre belirli rotaları filtrelemek için bu özellikleri kullanabilirsiniz. Daha hedefli veri analizi için rotaları belirli bir özellik anahtarına göre de gruplandırabilirsiniz.

Aşağıdaki kod örneğinde, özel routeAttributes ile SelectedRoute oluşturma işlemi gösterilmektedir.

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"