คำนวณเมทริกซ์เส้นทาง

คุณสามารถคำนวณระยะทางและระยะเวลาของเส้นทางสำหรับต้นทางและปลายทางหลายแห่งได้โดยใช้เมธอด ComputeRouteMatrix ของ Routes Preferred API ComputeRouteMatrix รองรับทั้งการเรียก gRPC แบบสตรีมมิงและการเรียก REST HTTP

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

เมธอด ComputeRouteMatrix มีข้อดีหลายประการเหนือ Distance Matrix API (เดิม) ดังนี้

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

เปิดใช้เมธอด ComputeRouteMatrix

คุณต้องเปิดใช้เมธอด ComputeRouteMatrix ก่อนจึงจะใช้ในโค้ดได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปิดใช้เมธอด Routes Preferred API ได้ที่การเริ่มต้นใช้งาน

ใช้เมธอด ComputeRouteMatrix

เมธอด ComputeRouteMatrix พร้อมใช้งานผ่านปลายทาง v1 ของ Routes Preferred

ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบต่อไปนี้

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

ขั้นตอนทั่วไปต่อไปนี้อธิบายวิธีใช้ gRPC เพื่อเรียกใช้เมธอด ComputeRouteMatrix

  1. ตรวจสอบบัฟเฟอร์โปรโตคอลที่จำเป็นจากที่เก็บ googleapis ดังนี้

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

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

  2. สร้างโค้ด Protobuffer ที่เกี่ยวข้องโดยใช้ภาษาและชุดเครื่องมือสร้างที่ต้องการ

  3. สร้างคำขอ ต้องส่งข้อมูลเมตาที่จำเป็น 2 รายการพร้อมกับคำขอ ดังนี้

    • ต้องตั้งค่า X-Goog-Api-Key เป็นคีย์ API ของคุณ
    • ต้องตั้งค่า X-Goog-Fieldmask เป็นรายการฟิลด์ที่คั่นด้วยคอมมาซึ่งคุณต้องการจากการตอบกลับ เช่น X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status คุณสามารถใช้อักขระไวลด์การ์ด (*) เพื่อระบุฟิลด์ทั้งหมดได้ แต่เราไม่แนะนำให้ทำเช่นนั้น ใช้อักขระไวลด์การ์ดเพื่อทดสอบและทำความเข้าใจการตอบกลับจาก API แต่ให้ระบุช่องที่ต้องการในมาสก์ช่องอย่างชัดเจนในโค้ดเวอร์ชันที่ใช้งานจริง

      ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างสตริงมาสก์ของช่องได้ที่ https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto โปรดทราบว่าการปิดใช้ช่องที่ไม่จำเป็นจะช่วยลดเวลาในการตอบสนองได้ เนื่องจากช่องเหล่านั้นอาจต้องมีการคำนวณเพิ่มเติม เวลาในการตอบสนองจะคงที่หากคุณระบุช่องที่ต้องการ และจะมีการเพิ่มช่องใหม่ที่ต้องใช้การประมวลผลมากขึ้นในภายหลัง

  4. ส่งคำขอไปที่ routespreferred.googleapis.com:443 โดยคุณต้องใช้โปรโตคอล TLS

ดูตัวอย่างการใช้เมธอด ComputeRouteMatrix ได้ที่ตัวอย่างการคำนวณเมตริกซ์เส้นทาง (เบต้า)

ลักษณะเด่นอย่างหนึ่งของเมธอด ComputeRouteMatrix คือสามารถแสดงรหัสข้อผิดพลาดสำหรับทั้งสตรีมหรือสำหรับองค์ประกอบแต่ละรายการได้ ตัวอย่างเช่น การเชื่อมต่อสตรีมจะแสดงข้อผิดพลาดหากคำขอมีรูปแบบไม่ถูกต้อง (เช่น มีต้นทางเป็น 0) อย่างไรก็ตาม หากข้อผิดพลาดเกิดขึ้นกับองค์ประกอบเพียงไม่กี่รายการของสตรีม (เช่น การตั้งค่ารหัสสถานที่ที่ไม่ถูกต้องสำหรับต้นทาง) เฉพาะองค์ประกอบที่ได้รับผลกระทบจากข้อผิดพลาดเท่านั้นที่จะมีรหัสข้อผิดพลาด

ไม่มีการรับประกันว่าองค์ประกอบที่สตรีมแสดงผลจะแสดงผลตามลำดับใดๆ ด้วยเหตุนี้ แต่ละองค์ประกอบจึงมี origin_index และ destination_index สำหรับต้นทางและปลายทางที่ระบุโดยคำขอ ต้นทางของเส้นทางจะเทียบเท่ากับ origins[origin_index] สำหรับองค์ประกอบที่ระบุ และปลายทางของเส้นทางจะเทียบเท่ากับ destinations[destination_index] อาร์เรย์เหล่านี้เป็นแบบ Zero-indexed สิ่งสำคัญคือต้องจัดเก็บลำดับรายการต้นทางและปลายทาง

กำลังคำนวณค่าผ่านทาง

ดูข้อมูลเกี่ยวกับการคำนวณค่าผ่านทางได้ที่หัวข้อคำนวณค่าผ่านทาง

ดูตัวอย่างการคำนวณค่าผ่านทางได้ที่ตัวอย่างการคำนวณเมทริกซ์เส้นทาง