Method: computeRoutes

แสดงเส้นทางหลักพร้อมกับเส้นทางอื่น (ไม่บังคับ) โดยพิจารณาจากจุดแวะพักปลายทางและจุดแวะพักกลาง

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

ตัวอย่างเช่น ด้วยวิธีนี้

  • มาสก์ของช่องที่มีทั้งหมด (สำหรับการตรวจสอบด้วยตนเอง): X-Goog-FieldMask: *
  • มาสก์ของช่องของระยะเวลา ระยะทาง และเส้นประกอบระดับเส้นทาง (ตัวอย่างการตั้งค่าที่ใช้งานจริง): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

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

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

คำขอ HTTP

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

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,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean
}
ช่อง
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"

computeAlternativeRoutes

boolean

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

routeModifiers

object (RouteModifiers)

ไม่บังคับ ชุดเงื่อนไขที่จะตอบสนองซึ่งส่งผลต่อวิธีคำนวณเส้นทาง

languageCode

string

ไม่บังคับ รหัสภาษา BCP-47 เช่น "en-US" หรือ "sr-Latn" สำหรับข้อมูลเพิ่มเติม โปรดดูที่ Unicode Locale Identifier ดูรายการภาษาที่รองรับได้ที่การรองรับภาษา หากคุณไม่ได้ระบุค่านี้ ระบบจะอนุมานภาษาที่แสดงจากสถานที่ตั้งของคำขอเส้นทาง

units

enum (Units)

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

optimizeWaypointOrder

boolean

หากตั้งค่า optimizeWaypointOrder เป็น "จริง" ระบบจะพยายามจัดลำดับจุดแวะพักกลางที่ระบุใหม่เพื่อลดต้นทุนโดยรวมของเส้นทาง หากจุดอ้างอิงระดับกลางใดๆ ผ่านการชี้ทาง คำขอจะล้มเหลว ใช้ ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index เพื่อค้นหาการสั่งซื้อใหม่ หากไม่มีการขอ routes.optimized_intermediate_waypoint_index ในส่วนหัว X-Goog-FieldMask คำขอจะล้มเหลว หากตั้งค่า optimizeWaypointOrder เป็น "เท็จ" ค่า ComputeRoutesResponse.optimized_intermediate_waypoint_index จะว่างเปล่า

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

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

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

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

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

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