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

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

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

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

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

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

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

ใช้วิธี ComputeRouteMatrix

วิธีการ ComputeRouteMatrix พร้อมใช้งานผ่านปลายทาง Routes Preferred v1

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

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. ตรวจสอบ Protobuffer ที่จำเป็นจากที่เก็บ 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 แต่ให้ระบุช่องที่คุณต้องการอย่างชัดเจนใน Field Mask ในโค้ดเวอร์ชันที่ใช้งานจริง

      ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างสตริง FieldMask ได้ที่ 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 คุณควรจัดเก็บลำดับรายการต้นทางและปลายทาง

การคำนวณค่าธรรมเนียมทางด่วน

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

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