Update selected routes

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

कोई रास्ता अपडेट करना

कोई रास्ता अपडेट करने के लिए, PATCH अनुरोध को patch एंडपॉइंट पर भेजें:

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

अनुरोध के मुख्य हिस्से में, SelectedRoute के उन फ़ील्ड का JSON ऑब्जेक्ट होना चाहिए जिन्हें अपडेट करना है. अपडेट किए जा सकने वाले फ़ील्ड में, displayName, routeAttributes, और dynamicRoute शामिल हैं. रास्ते की ज्यामिति (dynamicRoute) अपडेट करते समय, आपको dynamicRoute ऑब्जेक्ट (शुरुआत की जगह, मंज़िल, और बीच के वेपॉइंट) की पूरी जानकारी देनी होगी. सब-फ़ील्ड के कुछ हिस्सों को अपडेट करने की सुविधा उपलब्ध नहीं है. सिस्टम के सिर्फ़ पढ़ने वाले फ़ील्ड में बदलाव नहीं किया जा सकता. जैसे, name, createTime, और state. BigQuery में मौजूद ऐतिहासिक डेटा में, पुराने और अपडेट किए गए ज्यामिति का डेटा, एक ही selectedRouteId के तहत सेव रहेगा. अगर आपको अलग-अलग ऐतिहासिक डेटा चाहिए, तो अपडेट करने के बजाय नया रास्ता बनाएं.

किसी रास्ते की ज्यामिति (dynamicRoute) को अपडेट करने के लिए, उसकी फिर से पुष्टि करनी होगी. रास्ते की ज्यामिति को तब अपडेट किया जा सकता है, जब वह STATE_RUNNING या STATE_INVALID में हो. अगर रास्ता STATE_VALIDATING या STATE_DELETING में है, तो अपडेट नहीं किया जा सकता. ज़्यादा जानकारी के लिए, पुष्टि करना और रास्ते की स्थितियां देखें. STATE_DELETING को छोड़कर, सभी स्थितियों में मेटाडेटा अपडेट किया जा सकता है. जैसे, displayName या routeAttributes.

यहां दिए गए कोड सैंपल में, PATCH अनुरोध का स्ट्रक्चर दिखाया गया है, जिसे patch एंडपॉइंट पर भेजा जाता है:

curl -X PATCH -d '{
    "dynamicRoute": {
      "origin": {
        "latitude": 38.5817,
        "longitude": -121.4944
      },
      "destination": {
        "latitude": 38.5449,
        "longitude": -121.7405
      }
    }
  }' \
-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/"\
"SELECTED_ROUTE_ID?updateMask=dynamicRoute"

अनुरोध पूरा होने पर, एपीआई अपडेट किया गया SelectedRoute संसाधन दिखाता है:

{
  "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID",
  "dynamicRoute": {
    "origin": {
      "latitude": 38.5817,
      "longitude": -121.4944
    },
    "destination": {
      "latitude": 38.5449,
      "longitude": -121.7405
    }
  },
  "createTime": "2026-08-14T20:58:41.345418Z",
  "state": "STATE_VALIDATING"
}

रूट का बैच अपडेट

एक ही अनुरोध में कई रास्ते अपडेट करने के लिए, batchUpdate एंडपॉइंट का इस्तेमाल करें. इस एंडपॉइंट की मदद से, एक कॉल में ज़्यादा से ज़्यादा 1,000 रास्ते अपडेट किए जा सकते हैं. बैच अपडेट ऐटॉमिक होते हैं. इसका मतलब है कि अगर अनुरोध में मौजूद किसी भी रास्ते की पुष्टि नहीं हो पाती है या उसे अपडेट नहीं किया जा सकता, तो बैच में मौजूद कोई भी रास्ता अपडेट नहीं होगा.

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

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

अनुरोध के मुख्य हिस्से में, requests कलेक्शन वाला JSON ऑब्जेक्ट होना चाहिए. इस कलेक्शन में मौजूद हर ऑब्जेक्ट, UpdateSelectedRouteRequest होता है. इसमें रास्ते का name, आइटम-लेवल का एक वैकल्पिक updateMask, और अपडेट किए जाने वाले selectedRoute फ़ील्ड की जानकारी होती है.

updateMask एक वैकल्पिक पैरामीटर है. इसमें अपडेट किए जाने वाले फ़ील्ड की सूची (displayName, routeAttributes, या पूरा dynamicRoute ऑब्जेक्ट) की जानकारी होती है. updateMask=* सेट करने का मतलब है कि पूरी तरह से बदलाव किया गया है. updateMask को requests में मौजूद हर आइटम के अंदर सेट किया जा सकता है. इसके अलावा, इसे बैच अनुरोध के मुख्य हिस्से के टॉप लेवल पर भी सेट किया जा सकता है, ताकि बैच में अपडेट किए गए सभी रास्तों पर इसे लागू किया जा सके. अगर updateMask को शामिल नहीं किया जाता है, तो यह मान लिया जाता है कि अनुरोध में अपडेट किए जा सकने वाले सभी फ़ील्ड अपडेट किए गए हैं. अगर बैच लेवल और आइटम लेवल, दोनों पर updateMask सेट किया जाता है, तो दोनों एक जैसे होने चाहिए. अलग-अलग मास्क सेट करने पर, INVALID_ARGUMENT गड़बड़ी होती है.

यहां दिए गए कोड सैंपल में, POST अनुरोध का स्ट्रक्चर दिखाया गया है जिसे batchUpdate एंडपॉइंट पर भेजा जाता है:

curl -X POST -d '{
    "requests": [
      {
        "selectedRoute": {
          "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1",
          "displayName": "DISPLAY_NAME_1",
          "dynamicRoute": {
            "origin": {"latitude": 37.5, "longitude": -122.1},
            "destination": {"latitude": 37.8, "longitude": -122.5}
          }
        },
        "updateMask": "displayName,dynamicRoute"
      },
      {
        "selectedRoute": {
          "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2",
          "displayName": "DISPLAY_NAME_2",
          "dynamicRoute": {
            "origin": {"latitude": 37.5, "longitude": -122.1},
            "destination": {"latitude": 37.8, "longitude": -122.5}
          }
        },
        "updateMask": "displayName,dynamicRoute"
      }
    ]}' \
-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:batchUpdate"

अनुरोध पूरा होने पर, एपीआई एक जवाब दिखाता है. इसमें अपडेट किए गए SelectedRoute संसाधनों का कलेक्शन शामिल होता है:

{
  "selectedRoutes": [
    {
      "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_1",
      "displayName": "DISPLAY_NAME_1",
      "dynamicRoute": {
        "origin": {
          "latitude": 37.5,
          "longitude": -122.1
        },
        "destination": {
          "latitude": 37.8,
          "longitude": -122.5
        }
      },
      "createTime": "2026-08-14T20:58:41.345418Z",
      "state": "STATE_VALIDATING"
    },
    {
      "name": "projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID_2",
      "displayName": "DISPLAY_NAME_2",
      "dynamicRoute": {
        "origin": {
          "latitude": 37.5,
          "longitude": -122.1
        },
        "destination": {
          "latitude": 37.8,
          "longitude": -122.5
        }
      },
      "createTime": "2026-08-14T20:58:41.345418Z",
      "state": "STATE_VALIDATING"
    }
  ]
}