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

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

कोई रूट बनाना

रास्ता बनाने के लिए, 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 '
    {
      "dynamicRoute": {
        "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"
}

बीच के वेपॉइंट के साथ कोई रास्ता बनाना

अगर आपको ओरिजन और डेस्टिनेशन के बीच किसी खास पॉइंट से होकर गुज़रने वाला रूट बनाना है, तो अनुरोध के मुख्य हिस्से में मौजूद dynamicRoute ऑब्जेक्ट में intermediates कलेक्शन शामिल करें. intermediates कलेक्शन में मौजूद हर एलिमेंट, एक वेपॉइंट होता है. इसे latitude और longitude से तय किया जाता है. किसी रास्ते में ज़्यादा से ज़्यादा 25 वेपॉइंट हो सकते हैं.

यहां दिए गए कोड सैंपल में, इंटरमीडिएट वेपॉइंट के साथ SelectedRoute बनाने का तरीका बताया गया है:

curl -X POST -d '
    {
      "dynamicRoute": {
        "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 ऑब्जेक्ट में routeAttributes फ़ील्ड शामिल होता है.

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

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

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

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

routeAttributes फ़ील्ड की वैल्यू तय करते समय, इन दिशा-निर्देशों का पालन करें:

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

इसके बाद, इन कस्टम routeAttributes का इस्तेमाल, Roads Management Insights में इन तरीकों से किया जा सकता है:

  • Pub/Sub सूचनाओं को फ़िल्टर करना: Pub/Sub की सदस्यताओं के लिए फ़िल्टर सेट किए जा सकते हैं. इससे आपको सिर्फ़ उन रास्तों के अपडेट मिलेंगे जो एट्रिब्यूट की खास कुंजियों और उनकी वैल्यू से मेल खाते हैं या मेल नहीं खाते.
  • BigQuery विश्लेषण को बेहतर बनाएं: BigQuery टेबल में, इन एट्रिब्यूट का इस्तेमाल करके, किसी एट्रिब्यूट की वैल्यू के आधार पर चुनिंदा रास्तों को फ़िल्टर किया जा सकता है. डेटा का ज़्यादा सटीक विश्लेषण करने के लिए, किसी एट्रिब्यूट की के हिसाब से भी रास्तों को ग्रुप किया जा सकता है.

अगले कोड सैंपल में, कस्टम routeAttributes के साथ SelectedRoute बनाने का तरीका बताया गया है.

curl -X POST -d '
    {
    "dynamicRoute": {
      "origin": {
        "latitude": ORIGIN_LATITUDE,
        "longitude": ORIGIN_LONGITUDE
      },
      "destination": {
        "latitude": DESTINATION_LATITUDE,
        "longitude": DESTINATION_LONGITUDE
      }
    },
    "routeAttributes": {
      "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"

एक साथ कई रास्ते बनाना

एक ही अनुरोध में कई रास्ते बनाने के लिए, 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": [
        {
          "selectedRoute": {
            "dynamicRoute": {
              "origin": {
                "latitude": ORIGIN_LATITUDE_1,
                "longitude": ORIGIN_LONGITUDE_1
              },
              "destination": {
                "latitude": DESTINATION_LATITUDE_1,
                "longitude": DESTINATION_LONGITUDE_1
              }
            }
          },
          "selectedRouteId": "route-one"
        },
        {
          "selectedRoute": {
            "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"
    }
  ]
}