สร้างเส้นทางที่เลือก

หน้านี้อธิบายวิธีสร้างเส้นทางและเพิ่มแอตทริบิวต์ที่กำหนดเองโดยใช้ 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 '
    {
      "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"

เมื่อสำเร็จ API จะแสดงทรัพยากร SelectedRoute การตอบกลับ จะมี selectedRouteId ในฟิลด์ name คุณสามารถใช้ selectedRouteId นี้เพื่อดึงข้อมูลหรือลบทรัพยากร SelectedRoute

ตัวอย่างโค้ดต่อไปนี้แสดงโครงสร้างของการตอบกลับปลายทางที่สำเร็จ 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"
}

สร้างเส้นทางที่มีจุดแวะพักระหว่างทาง

หากต้องการสร้างเส้นทางที่ผ่านจุดที่เฉพาะเจาะจงระหว่างต้นทางกับ ปลายทาง ให้ใส่อาร์เรย์ intermediates ภายใน dynamicRoute ออบเจ็กต์ ในเนื้อหาคำขอ องค์ประกอบแต่ละรายการในอาร์เรย์ 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"

ใช้ประโยชน์จากแอตทริบิวต์เส้นทางที่กำหนดเอง

เพื่อปรับปรุงการจัดการเส้นทางและการวิเคราะห์ข้อมูลภายในข้อมูลเชิงลึกสำหรับการจัดการเส้นทางจราจร ออบเจ็กต์ SelectedRoute มีฟิลด์ routeAttributes

ใช้ฟิลด์ routeAttributes เพื่อกำหนดพร็อพเพอร์ตี้ที่กำหนดเองสำหรับ เส้นทางแต่ละเส้นทาง โดยแอตทริบิวต์แต่ละรายการจะเป็นคู่คีย์-ค่า คุณระบุคู่คีย์-ค่าที่กำหนดเองได้สูงสุด 25 คู่ต่อเส้นทาง

แอตทริบิวต์เหล่านี้มีประโยชน์สำหรับการระบุเส้นทางที่เฉพาะเจาะจงหรือการจัดกลุ่มเส้นทางตามเกณฑ์ที่เกี่ยวข้องกับความต้องการของคุณ

ตัวอย่างแอตทริบิวต์เส้นทางที่คุณใช้ได้มีดังนี้

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

ทำตามหลักเกณฑ์ต่อไปนี้เมื่อกำหนดฟิลด์ routeAttributes

  • คีย์ต้องไม่ขึ้นต้นด้วยคำนำหน้า goog
  • ความยาวของคีย์และค่าแต่ละรายการต้องไม่เกิน 100 อักขระ

จากนั้นคุณจะใช้ routeAttributes ที่กำหนดเองเหล่านี้ภายในข้อมูลเชิงลึกสำหรับการจัดการเส้นทางจราจร ได้ด้วยวิธีต่อไปนี้

  • กรองการแจ้งเตือน Pub/Sub: คุณสามารถตั้งค่าตัวกรองในการสมัครใช้บริการ Pub/Sub เพื่อรับการอัปเดตเฉพาะเส้นทางที่ตรงกับหรือไม่ตรงกับคีย์แอตทริบิวต์ที่เฉพาะเจาะจงและค่าที่เกี่ยวข้อง
  • ปรับแต่งการวิเคราะห์ BigQuery: ในตาราง BigQuery คุณสามารถใช้แอตทริบิวต์เหล่านี้เพื่อกรองเส้นทางที่เฉพาะเจาะจงตามค่าของแอตทริบิวต์ นอกจากนี้ คุณยังจัดกลุ่มเส้นทางตามคีย์แอตทริบิวต์ที่เฉพาะเจาะจงเพื่อการวิเคราะห์ข้อมูลที่ตรงเป้าหมายมากขึ้นได้ด้วย

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้าง SelectedRoute ที่มี routeAttributes ที่กำหนดเอง

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 เส้นทางในการเรียกครั้งเดียว

ส่งคำขอ POST ไปยังปลายทาง batchCreate

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

URL ใช้ไวยากรณ์การแปลงรหัส gRPC

เนื้อหาคำขอ ต้องเป็นออบเจ็กต์ JSON ที่มีอาร์เรย์ requests ออบเจ็กต์แต่ละรายการภายในอาร์เรย์นี้คือ CreateSelectedRouteRequest ที่ กำหนดทรัพยากร SelectedRoute แต่ละรายการ

ตัวอย่างโค้ดต่อไปนี้แสดงโครงสร้างของคำขอ POST ไปยังปลายทาง batchCreate

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"

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