คุณสามารถคำนวณระยะทางและระยะเวลาของเส้นทางสำหรับต้นทางและปลายทางหลายแห่งได้โดยใช้ComputeRouteMatrixเมธอด
ของ Routes Preferred API ComputeRouteMatrix รองรับทั้งการเรียก gRPC แบบสตรีมมิงและการเรียก HTTP ของ REST
เมื่อระบุรายการคู่ต้นทางและปลายทาง ComputeRouteMatrix จะคำนวณระยะทางและระยะเวลาของเส้นทางที่เริ่มต้นที่ต้นทางแต่ละแห่งและสิ้นสุดที่ปลายทางแต่ละแห่ง องค์ประกอบแต่ละรายการของสตรีมจะสอดคล้องกับข้อมูลของเส้นทางเดียว
ComputeRouteMatrix มีข้อดีหลายประการเหนือกว่า Distance Matrix API (เดิม) ดังนี้
- การสตรีมช่วยให้ระบบแสดงผลองค์ประกอบได้ก่อนที่จะคำนวณเมทริกซ์ทั้งหมดเสร็จ ซึ่งจะช่วยลดเวลาในการตอบสนอง
ComputeRouteMatrixมีตัวเลือกแบบละเอียดสำหรับการคำนวณการเข้าชม ช่วยให้คุณตัดสินใจเรื่องการแลกเปลี่ยนคุณภาพกับเวลาในการตอบสนองได้- คำขอจะทำงานที่ลำดับความสำคัญสูงกว่าภายในโครงสร้างพื้นฐานของ Google ซึ่งส่งผลให้มีความพร้อมใช้งานสูงขึ้น
- คุณระบุส่วนหัว (ทิศทางการเดินทาง) และข้อมูลด้านข้างของถนน สำหรับจุดอ้างอิงได้
- คุณขอให้ระบบแสดงข้อมูลค่าผ่านทางพร้อมกับ ระยะทางของเส้นทางและเวลาถึงโดยประมาณได้
เปิดใช้เมธอด ComputeRouteMatrix
คุณต้องเปิดใช้เมธอด ComputeRouteMatrix ก่อนจึงจะใช้เมธอดนี้ในโค้ดได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้เมธอด Routes Preferred API ได้ที่การเริ่มต้นใช้งาน
ใช้เมธอด ComputeRouteMatrix
เมธอด ComputeRouteMatrix พร้อมใช้งานผ่านปลายทาง v1 ของ Routes Preferred
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบต่อไปนี้
ขั้นตอนทั่วไปต่อไปนี้อธิบายวิธีใช้ gRPC เพื่อเรียกใช้เมธอด ComputeRouteMatrix
ตรวจสอบ Protobuffer ที่จำเป็นจากที่เก็บ googleapis
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
โปรดทราบว่าระบบบิลด์บางระบบ เช่น Go อาจดำเนินการนี้ให้คุณโดยอัตโนมัติ
สร้างโค้ด Protobuffer ที่เกี่ยวข้องโดยใช้ภาษาและชุดเครื่องมือสร้างที่ต้องการ
สร้างคำขอ ต้องส่งข้อมูลเมตาที่จำเป็น 2 รายการพร้อมกับคำขอ ดังนี้
- ต้องตั้งค่า X-Goog-Api-Key เป็นคีย์ API ของคุณ
ต้องตั้งค่า X-Goog-Fieldmask เป็นรายการฟิลด์ที่คั่นด้วยคอมมา ที่คุณต้องการจากการตอบกลับ เช่น X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status คุณสามารถใช้อักขระไวลด์การ์ด (*) เพื่อระบุฟิลด์ทั้งหมดได้ แต่เราไม่แนะนำ ใช้อักขระไวลด์การ์ดเพื่อทดสอบและทำความเข้าใจการตอบกลับของ API แต่ให้ระบุช่องที่คุณต้องการใน Field Mask อย่างชัดเจน ในโค้ดเวอร์ชันที่ใช้งานจริง
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างสตริง FieldMask ได้ที่ https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto โปรดทราบว่าการปิดใช้ฟิลด์ที่คุณไม่ต้องการจะช่วยลดเวลาในการตอบสนองได้ เนื่องจาก ฟิลด์เหล่านั้นอาจต้องมีการคำนวณเพิ่มเติม เวลาในการตอบสนองจะยังคง เสถียรหากคุณระบุช่องที่ต้องการและเพิ่มช่องใหม่ที่ต้องใช้ การคำนวณมากขึ้นในภายหลัง
ส่งคำขอไปที่
routespreferred.googleapis.com:443คุณต้องใช้โปรโตคอล TLS
ดูตัวอย่างการใช้เมธอด ComputeRouteMatrix ได้ที่ตัวอย่างการคำนวณเมทริกซ์เส้นทาง (เบต้า)
ลักษณะเด่นอย่างหนึ่งของเมธอด ComputeRouteMatrix คือสามารถแสดงรหัสข้อผิดพลาดสำหรับทั้งสตรีมหรือสำหรับองค์ประกอบแต่ละรายการได้ เช่น การเชื่อมต่อสตรีมจะแสดงข้อผิดพลาดหากคำขอ
มีรูปแบบไม่ถูกต้อง (เช่น มีต้นทางเป็น 0) อย่างไรก็ตาม หากข้อผิดพลาดเกิดขึ้นกับองค์ประกอบเพียงไม่กี่รายการของสตรีม (เช่น การตั้งค่ารหัสสถานที่ที่ไม่ถูกต้องสำหรับต้นทาง) เฉพาะองค์ประกอบที่ได้รับผลกระทบจากข้อผิดพลาดเท่านั้นที่จะมีรหัสข้อผิดพลาด
ไม่มีการรับประกันว่าองค์ประกอบที่สตรีมแสดงผลจะแสดงผลตามลำดับใดๆ ด้วยเหตุนี้ แต่ละองค์ประกอบจึงมี origin_index
และ destination_index สำหรับต้นทางและปลายทางที่ระบุโดยคำขอ ต้นทางของเส้นทางจะเทียบเท่ากับ origins[origin_index]
สำหรับองค์ประกอบที่กำหนด และปลายทางของเส้นทางจะเทียบเท่ากับ destinations[destination_index] อาร์เรย์เหล่านี้เป็นแบบ Zero-indexed สิ่งสำคัญคือต้องจัดเก็บลำดับรายการต้นทางและปลายทาง
การคำนวณค่าธรรมเนียมทางด่วน
ดูข้อมูลเกี่ยวกับการคำนวณค่าธรรมเนียมค่าผ่านทางได้ที่ คำนวณค่าธรรมเนียมค่าผ่านทาง
ดูตัวอย่างการคำนวณค่าผ่านทางได้ที่ตัวอย่างการคำนวณเมทริกซ์เส้นทาง