Update selected routes

หน้านี้อธิบายวิธีอัปเดตเส้นทางที่คุณสร้างไว้แล้วโดยใช้ Roads Selection API

อัปเดตเส้นทาง

หากต้องการอัปเดตเส้นทาง ให้ส่งคำขอ PATCH ไปยังปลายทาง patch

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

เนื้อหาคำขอ ต้องเป็นออบเจ็กต์ JSON ที่มีช่องของ SelectedRoute ที่จะอัปเดต ช่องที่อัปเดตได้ ได้แก่ displayName, routeAttributes, และ dynamicRoute เมื่ออัปเดตรูปทรงเรขาคณิตของเส้นทาง (dynamicRoute) คุณต้องระบุออบเจ็กต์ dynamicRoute ทั้งหมด (จุดเริ่มต้น จุดหมาย และจุดแวะพักระหว่างทาง) ระบบไม่รองรับการอัปเดตช่องย่อยเพียงบางส่วน คุณแก้ไขช่องระบบแบบอ่านอย่างเดียว เช่น name, createTime และ state ไม่ได้ ข้อมูลที่ผ่านมาใน BigQuery จะเก็บข้อมูลรูปทรงเรขาคณิตเดิมและที่อัปเดตไว้ภายใต้ selectedRouteId เดียวกัน หากต้องการข้อมูลที่ผ่านมาแยกกัน ให้สร้างเส้นทางใหม่แทนการอัปเดต

การอัปเดตรูปทรงเรขาคณิตของเส้นทาง (dynamicRoute) กำหนดให้ต้องมีการตรวจสอบซ้ำ คุณอัปเดตรูปทรงเรขาคณิตได้เมื่อเส้นทางอยู่ในสถานะ STATE_RUNNING หรือ STATE_INVALID และระบบจะปฏิเสธหากเส้นทางอยู่ในสถานะ STATE_VALIDATING หรือ STATE_DELETING ดูข้อมูลเพิ่มเติมได้ที่การตรวจสอบและการเปลี่ยนสถานะของเส้นทาง คุณอัปเดตข้อมูลเมตา เช่น displayName หรือ routeAttributes ได้ในทุกสถานะ ยกเว้น STATE_DELETING

ตัวอย่างโค้ดต่อไปนี้แสดงโครงสร้างของคำขอ 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"

หากสำเร็จ API จะแสดงทรัพยากร 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

เนื้อหาคำขอ ต้องเป็นออบเจ็กต์ JSON ที่มีอาร์เรย์ requests ออบเจ็กต์แต่ละรายการในอาร์เรย์นี้คือ UpdateSelectedRouteRequest ที่ระบุ name ของเส้นทาง, updateMask ระดับรายการที่ไม่บังคับ และช่อง selectedRoute ที่จะอัปเดต

updateMask เป็นพารามิเตอร์ที่ไม่บังคับซึ่งระบุรายการช่องที่จะ อัปเดต (displayName, routeAttributes, หรือออบเจ็กต์ dynamicRoute ทั้งหมด) การตั้งค่า updateMask=* จะระบุการแทนที่ทั้งหมด คุณระบุ updateMask ภายในแต่ละรายการใน requests หรือย้ายไปยังระดับบนสุดของเนื้อหาคำขอแบบกลุ่มเพื่อใช้กับเส้นทางที่อัปเดตทั้งหมดในกลุ่มได้ หากละเว้น updateMask ระบบจะถือว่าช่องที่อัปเดตได้ทั้งหมดที่ป้อนในคำขอจะได้รับการอัปเดต หากตั้งค่า updateMask ทั้งในระดับกลุ่มและระดับรายการ ค่าทั้ง 2 ระดับจะต้องตรงกัน การระบุมาสก์ที่ขัดแย้งกันจะทำให้เกิดข้อผิดพลาด 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"

หากสำเร็จ API จะแสดงการตอบกลับที่มีอาร์เรย์ของ 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"
    }
  ]
}