चुने गए रास्ते बनाना

इस पेज पर, Roads Selection API का इस्तेमाल करके, रास्ते बनाने और उनमें कस्टम एट्रिब्यूट जोड़ने का तरीका बताया गया है. इसके लिए, यहां दिए गए सेक्शन देखें:

रास्ता बनाना

रास्ता बनाने के लिए, POST अनुरोध को create एंडपॉइंट पर भेजें.

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

अनुरोध का मुख्य हिस्सा एक JSON ऑब्जेक्ट होना चाहिए, जो SelectedRoute संसाधन को तय करता है. इस ऑब्जेक्ट में यह जानकारी शामिल होती है:

  • एक dynamicRoute ऑब्जेक्ट, जिसमें यह जानकारी शामिल होती है:
    • चुने गए रास्ते का origin.
    • चुने गए रास्ते का destination.
    • रास्ते के intermediates, जिन्हें वेपॉइंट भी कहा जाता है.
  • एक यूनीक selectedRouteId. इस वैल्यू में 4 से 63 वर्ण होने चाहिए. साथ ही, इसमें सिर्फ़ अल्फ़ान्यूमेरिक वर्णों का इस्तेमाल किया जाना चाहिए. अगर कोई आईडी नहीं दिया जाता है, तो सिस्टम चुने गए रास्ते के लिए एक यूनीक आईडी जनरेट करता है.

यहां दिए गए कोड सैंपल में, POST अनुरोध का स्ट्रक्चर दिखाया गया है जिसे 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"

अनुरोध पूरा होने पर, एपीआई SelectedRoute संसाधन दिखाता है. जवाब में, selectedRouteId name फ़ील्ड में शामिल होता है. 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 रास्ते तय किए जा सकते हैं.

POST अनुरोध batchCreate एंडपॉइंट पर भेजें:

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

यह यूआरएल, gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.

अनुरोध का मुख्य हिस्सा एक JSON ऑब्जेक्ट होना चाहिए, जिसमें requests कलेक्शन शामिल हो. इस कलेक्शन में मौजूद हर ऑब्जेक्ट, CreateSelectedRouteRequest होता है. यह एक SelectedRoute संसाधन को तय करता है.

यहां दिए गए कोड सैंपल में, POST अनुरोध का स्ट्रक्चर दिखाया गया है जिसे 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"

अनुरोध पूरा होने पर, एपीआई एक जवाब दिखाता है. इसमें बनाए गए 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"

रास्ते के कस्टम एट्रिब्यूट का इस्तेमाल करना

रास्ते के मैनेजमेंट और Roads Management Insights में डेटा के विश्लेषण को बेहतर बनाने के लिए, SelectedRoute ऑब्जेक्ट में route_attributes फ़ील्ड शामिल होता है.

routeAttributes फ़ील्ड का इस्तेमाल करके, अलग-अलग रास्तों के लिए अपनी कस्टम प्रॉपर्टी तय करें. इसमें हर एट्रिब्यूट एक की-वैल्यू पेयर होता है. हर रास्ते के लिए, ज़्यादा से ज़्यादा 10 कस्टम की-वैल्यू पेयर दिए जा सकते हैं.

इन एट्रिब्यूट का इस्तेमाल, खास रास्तों की पहचान करने या अपनी ज़रूरतों के हिसाब से, शर्तों के आधार पर रास्तों को ग्रुप में बांटने के लिए किया जा सकता है.

यहां रास्ते के कुछ एट्रिब्यूट दिए गए हैं, जिनका इस्तेमाल किया जा सकता है:

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

routeAttributes फ़ील्ड तय करते समय, यहां दिए गए दिशा-निर्देशों का पालन करें:

  • कुंजियां, goog प्रीफ़िक्स से शुरू नहीं होनी चाहिए.
  • हर कुंजी और हर वैल्यू की लंबाई 100 वर्णों से ज़्यादा नहीं होनी चाहिए.

इसके बाद, Roads Management Insights में इन कस्टम 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"