इस पेज पर, Roads Selection API का इस्तेमाल करके रास्तों को बनाने और कस्टम एट्रिब्यूट जोड़ने का तरीका बताया गया है. इसके बारे में यहां दिया गया है:
- रास्ता बनाएं: 
createएंडपॉइंट का इस्तेमाल करके, एक रास्ता तय करें. - एक साथ कई रास्ते बनाना: 
batchCreateएंडपॉइंट का इस्तेमाल करके, एक ही अनुरोध में कई रास्ते तय करें. - रास्ते में पड़ने वाले वेपॉइंट के साथ कोई रास्ता बनाना: रास्ते में ज़्यादा से ज़्यादा 25 वेपॉइंट तय करें.
 - कस्टम रूट एट्रिब्यूट का इस्तेमाल करना: व्यवस्थित करने के मकसद से, अपने रूट में ज़्यादा से ज़्यादा 10 कस्टम की-वैल्यू पेयर जोड़ें.
 
रास्ता बनाना
कोई रूट बनाने के लिए, create एंडपॉइंट पर POST अनुरोध भेजें.
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes?selectedRouteId=SELECTED_ROUTE_ID
अनुरोध का मुख्य हिस्सा एक JSON ऑब्जेक्ट होना चाहिए. इससे SelectedRoute संसाधन के बारे में पता चलता है. इस ऑब्जेक्ट में यह जानकारी दी गई होती है:
dynamicRouteऑब्जेक्ट में यह जानकारी शामिल होती है:- चुने गए रास्ते का 
origin. - चुने गए रास्ते का 
destination. - रास्ते का कोई भी 
intermediates. इसे वेपॉइंट भी कहा जाता है. 
- चुने गए रास्ते का 
 - एक यूनीक 
selectedRouteId. इस वैल्यू में 4 से 63 वर्ण होने चाहिए. साथ ही, इसमें सिर्फ़ अक्षर और अंक इस्तेमाल किए जाने चाहिए. आईडी न देने पर, सिस्टम चुने गए रास्ते के लिए एक यूनीक आईडी जनरेट करता है. 
यहां दिए गए कोड सैंपल में, create एंडपॉइंट को भेजे गए POST अनुरोध का स्ट्रक्चर दिखाया गया है.
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"अनुरोध पूरा होने पर, एपीआई SelectedRoute संसाधन दिखाता है. जवाब में, name फ़ील्ड में selectedRouteId शामिल है. SelectedRoute संसाधन को वापस पाने या मिटाने के लिए, इस selectedRouteId का इस्तेमाल किया जा सकता है.
नीचे दिए गए कोड सैंपल में, create एंडपॉइंट से मिले जवाब का स्ट्रक्चर दिखाया गया है.
{
  "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"
}
रास्तों का बैच बनाना
एक ही अनुरोध में कई रास्ते बनाने के लिए, batchCreate एंडपॉइंट का इस्तेमाल करें. इस एंडपॉइंट की मदद से, एक कॉल में ज़्यादा से ज़्यादा 1,000 रूट तय किए जा सकते हैं.
batchCreate एंडपॉइंट पर POST अनुरोध भेजें:
https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes:batchCreate
यह यूआरएल, gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.
अनुरोध का मुख्य हिस्सा, एक JSON ऑब्जेक्ट होना चाहिए. इसमें requests कलेक्शन होना चाहिए.
इस कैटगरी में मौजूद हर ऑब्जेक्ट, एक CreateSelectedRouteRequest होता है. यह SelectedRoute रिसॉर्स के बारे में बताता है.
यहां दिए गए कोड सैंपल में, batchCreate एंडपॉइंट को भेजे गए POST अनुरोध का स्ट्रक्चर दिखाया गया है:
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"अनुरोध पूरा होने पर, एपीआई एक जवाब देता है. इसमें बनाए गए SelectedRoute संसाधनों का कलेक्शन होता है.
यहां दिए गए कोड सैंपल में, 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"
    }
  ]
}
बीच के वेपॉइंट के साथ कोई रास्ता बनाना
शुरुआत और मंज़िल के बीच के कुछ खास पॉइंट से होकर गुज़रने वाला रास्ता बनाने के लिए, अनुरोध के मुख्य भाग में मौजूद dynamicRoute ऑब्जेक्ट में intermediates कलेक्शन शामिल करें. intermediates कलेक्शन में मौजूद हर एलिमेंट, एक वेपॉइंट होता है. इसे इसके latitude और longitude से तय किया जाता है. किसी रास्ते में ज़्यादा से ज़्यादा 25 वेपॉइंट हो सकते हैं.
नीचे दिए गए कोड सैंपल में, इंटरमीडिएट वेपॉइंट के साथ SelectedRoute बनाने का तरीका बताया गया है:
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"कस्टम रूट एट्रिब्यूट का इस्तेमाल करना
सड़क मैनेजमेंट से जुड़ी अहम जानकारी में, रूट मैनेजमेंट और डेटा विश्लेषण को बेहतर बनाने के लिए, SelectedRoute ऑब्जेक्ट में route_attributes फ़ील्ड शामिल होता है.
routeAttributes फ़ील्ड का इस्तेमाल करके, हर रास्ते के लिए अपनी कस्टम प्रॉपर्टी तय करें. यहां हर एट्रिब्यूट, की-वैल्यू पेयर होता है. हर रूट के लिए, ज़्यादा से ज़्यादा 10 कस्टम की-वैल्यू पेयर दिए जा सकते हैं.
इन एट्रिब्यूट का इस्तेमाल, किसी खास रास्ते की पहचान करने या अपनी ज़रूरतों के हिसाब से रास्तों को ग्रुप करने के लिए किया जा सकता है.
यहां रास्ते के एट्रिब्यूट के कुछ उदाहरण दिए गए हैं जिनका इस्तेमाल किया जा सकता है:
"road_classification": "highway""maintenance_zone": "north_district""event_id": "marathon_2024""pavement_type": "asphalt"
routeAttributes फ़ील्ड की वैल्यू तय करते समय, इन दिशा-निर्देशों का पालन करें:
- कुंजियों की शुरुआत 
googप्रीफ़िक्स से नहीं होनी चाहिए. - हर कुंजी और हर वैल्यू की लंबाई 100 वर्णों से ज़्यादा नहीं होनी चाहिए.
 
इसके बाद, इन कस्टम routeAttributes का इस्तेमाल, सड़क प्रबंधन से जुड़ी अहम जानकारी में इन तरीकों से किया जा सकता है:
- Pub/Sub सूचनाओं को फ़िल्टर करना: Pub/Sub की सदस्यताओं के लिए फ़िल्टर सेट किए जा सकते हैं. इससे आपको सिर्फ़ उन रास्तों के अपडेट मिलेंगे जो एट्रिब्यूट की खास कुंजियों और उनकी वैल्यू से मेल खाते हैं या मेल नहीं खाते.
 - BigQuery विश्लेषण को बेहतर बनाएं: BigQuery टेबल में, इन एट्रिब्यूट का इस्तेमाल करके, एट्रिब्यूट की वैल्यू के आधार पर खास रूट को फ़िल्टर किया जा सकता है. डेटा का ज़्यादा सटीक विश्लेषण करने के लिए, किसी एट्रिब्यूट कुंजी के हिसाब से भी रास्तों को ग्रुप किया जा सकता है.
 
अगले कोड सैंपल में, कस्टम routeAttributes के साथ SelectedRoute बनाने का तरीका बताया गया है.
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"