Method: computeCustomRoutes

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

หมายเหตุ: วิธีนี้กำหนดให้คุณต้องระบุมาสก์ช่องคำตอบในอินพุต คุณระบุมาสก์ของช่องการตอบกลับได้โดยใช้พารามิเตอร์ของ URL $fields หรือ fields หรือใช้ส่วนหัว HTTP/gRPC X-Goog-FieldMask (ดูพารามิเตอร์และส่วนหัวของ URL ที่ใช้ได้ ค่านี้คือรายการเส้นทางช่องที่คั่นด้วยเครื่องหมายจุลภาค ดูเอกสารประกอบโดยละเอียดเกี่ยวกับวิธีสร้างเส้นทางภาคสนาม

ตัวอย่างเช่น ในวิธีการนี้

  • มาสก์ของช่องทั้งหมดที่มี (สําหรับการตรวจสอบด้วยตนเอง): X-Goog-FieldMask: *
  • ฟิลด์มาสก์ของระยะทาง ระยะเวลา โทเค็น และข้อมูลค่าผ่านทาง: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

Google ไม่แนะนำให้ใช้มาสก์ช่องคำตอบที่มีไวลด์การ์ด (*) หรือระบุมาสก์ช่องที่ระดับบนสุด (routes) เนื่องจากสาเหตุต่อไปนี้

  • การเลือกเฉพาะช่องที่คุณต้องการจะช่วยให้เซิร์ฟเวอร์ของเราบันทึกรอบการคำนวณได้ ซึ่งทำให้เราสามารถส่งคืนผลลัพธ์ให้คุณได้โดยมีเวลาในการตอบสนองที่น้อยลง
  • การเลือกเฉพาะช่องที่คุณต้องการในงานที่ใช้งานจริงจะช่วยให้ประสิทธิภาพของเวลาในการตอบสนองที่เสถียร เราอาจเพิ่มช่องคำตอบอีกในอนาคต และช่องใหม่เหล่านั้นอาจต้องใช้เวลาในการคำนวณเพิ่มเติม หากเลือกทุกช่องหรือเลือกช่องทั้งหมดที่ระดับบนสุด ประสิทธิภาพอาจลดลงเนื่องจากช่องใหม่ที่เราเพิ่มจะรวมอยู่ในคำตอบโดยอัตโนมัติ
  • การเลือกเฉพาะฟิลด์ที่คุณต้องการจะส่งผลให้เกิดขนาดการตอบสนองที่เล็กลง ทำให้อัตราการส่งข้อมูลของเครือข่ายสูงขึ้น

คำขอ HTTP

POST https://routespreferred.googleapis.com/v1alpha:computeCustomRoutes

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

เนื้อหาของคำขอ

เนื้อหาของคำขอมีข้อมูลที่มีโครงสร้างต่อไปนี้

การแสดง JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "routeObjective": {
    object (RouteObjective)
  },
  "languageCode": string,
  "units": enum (Units)
}
ช่อง
origin

object (Waypoint)

ต้องระบุ จุดอ้างอิงเดิม

destination

object (Waypoint)

ต้องระบุ จุดอ้างอิงปลายทาง

intermediates[]

object (Waypoint)

ไม่บังคับ ชุดของจุดอ้างอิงระหว่างเส้นทาง (ไม่รวมจุดปลายทาง) สำหรับการหยุดหรือขับผ่าน รองรับจุดอ้างอิงระดับกลางสูงสุด 25 จุด

travelMode

enum (RouteTravelMode)

ไม่บังคับ ระบุรูปแบบการเดินทาง ขณะนี้รองรับเฉพาะไดรฟ์เท่านั้น

routingPreference

enum (RoutingPreference)

ไม่บังคับ ระบุวิธีการคำนวณเส้นทาง เซิร์ฟเวอร์จะพยายามใช้ค่ากำหนดการกำหนดเส้นทางที่เลือกไว้เพื่อคำนวณเส้นทาง หากค่ากำหนดการกำหนดเส้นทางทำให้เกิดข้อผิดพลาดหรือใช้เวลาเวลาในการตอบสนองนานขึ้น ระบบจะแสดงข้อผิดพลาด ในอนาคต เราอาจใช้กลไกสำรองเพื่อใช้ตัวเลือกอื่นเมื่อตัวเลือกที่ต้องการไม่ได้ให้ผลลัพธ์ที่ถูกต้อง คุณจะระบุตัวเลือกนี้ได้เฉพาะเมื่อ travelMode คือ DRIVE หรือ TWO_WHEELER มิเช่นนั้นคำขอจะไม่สำเร็จ

polylineQuality

enum (PolylineQuality)

ไม่บังคับ ระบุค่ากำหนดของคุณสำหรับคุณภาพของโพลีไลน์

polylineEncoding

enum (PolylineEncoding)

ไม่บังคับ ระบุการเข้ารหัสที่ต้องการสำหรับโพลีไลน์

departureTime

string (Timestamp format)

ไม่บังคับ เวลาออกเดินทาง หากไม่ตั้งค่านี้ ค่าเริ่มต้นจะเป็นเวลาที่คุณส่งคำขอ หากตั้งค่านี้เป็นเวลาที่เกิดขึ้นแล้ว คำขอจะล้มเหลว

การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนได้สูงสุด 9 หลัก ตัวอย่าง: "2014-10-02T15:01:23Z" และ "2014-10-02T15:01:23.045123456Z"

routeModifiers

object (RouteModifiers)

ไม่บังคับ ชุดเงื่อนไขที่จะแก้ไขเพื่อให้มีผลกับวิธีคำนวณเส้นทาง

routeObjective

object (RouteObjective)

ต้องระบุ วัตถุประสงค์ของเส้นทางที่ควรเพิ่มประสิทธิภาพ

languageCode

string

ไม่บังคับ รหัสภาษา BCP-47 เช่น "en-US" หรือ "sr-Latn" ดูข้อมูลเพิ่มเติมได้ที่ http://www.unicode.org/reports/tr35/#Unicode_locale_identifier ดูการสนับสนุนภาษาสำหรับรายการภาษาที่รองรับ ถ้าคุณไม่ระบุค่านี้ ภาษาที่แสดงจะอนุมานจากตำแหน่งของคำขอเส้นทาง

units

enum (Units)

ไม่บังคับ ระบุหน่วยวัดสำหรับช่องแสดงผล ซึ่งรวมถึงช่อง instruction ใน NavigationInstruction หน่วยวัดที่ใช้สำหรับเส้นทาง ระยะทางก้าว ก้าว และระยะเวลาจะไม่ได้รับผลกระทบจากค่านี้ หากคุณไม่ระบุค่านี้ ระบบจะอนุมานหน่วยที่แสดงจากตำแหน่งของคำขอ

เนื้อหาการตอบกลับ

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีอินสแตนซ์ ComputeCustomRoutesResponse

ขอบเขตการให้สิทธิ์

ต้องใช้ขอบเขต OAuth ต่อไปนี้

  • https://www.googleapis.com/auth/maps-platform.routespreferred

ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ OAuth 2.0