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:
create
uç noktasını kullanarak tek bir rota tanımlayın. - Toplu olarak rota oluşturma:
batchCreate
uç noktasını kullanarak tek bir istekte birden fazla rota tanımlayın. - Ara noktalı bir rota oluşturma: 25'e kadar ara nokta içeren bir rota tanımlayın.
- Özel rota özelliklerinden yararlanma: Rotalarınıza, organizasyonel amaçlarla kullanılmak üzere 10 adede kadar özel anahtar/değer çifti ekleyin.
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:- Seçilen rotanın
origin
. - Seçilen rotanın
destination
. - Rotanın
intermediates
(diğer adıyla ara noktalar).
- Seçilen rotanın
- 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"