เมทริกซ์เส้นทางคืออาร์เรย์ 2 มิติของข้อมูลเส้นทาง โดยแถวจะสอดคล้องกับต้นทางและคอลัมน์จะสอดคล้องกับปลายทาง เมื่อระบุรายการต้นทางและ ปลายทางแล้ว คลาสเมทริกซ์เส้นทางจะคำนวณระยะทางและระยะเวลาของเส้นทางที่เริ่มต้น ที่ต้นทางแต่ละแห่งและสิ้นสุดที่ปลายทางแต่ละแห่ง ใช้คลาสเมทริกซ์เส้นทางเพื่อคำนวณ ระยะทางและระยะเวลาของเส้นทางสำหรับต้นทางและปลายทางหลายรายการ
ขีดจำกัดของคำขอ
RouteMatrix.computeRouteMatrix()
วิธีการนี้บังคับใช้ขีดจำกัดคำขอต่อไปนี้
สำหรับจุดอ้างอิงโดยใช้อีเมลหรืออินสแตนซ์สถานที่ และสำหรับรายการ รายการคือเส้นทาง
ระหว่างต้นทางและปลายทางแต่ละแห่งในเมทริกซ์เส้นทาง ดังนั้นจำนวนรายการจึงเท่ากับจำนวน
ต้นทางคูณด้วยจำนวนปลายทาง ตัวอย่างเช่น หากคุณมีต้นทาง 10 แห่งและปลายทาง 10 แห่ง คุณจะมีรายการ 100 รายการดังนี้
- จำนวนรายการต้องไม่เกิน 625 รายการสำหรับเส้นทางที่ไม่ได้เป็นเส้นทาง
TRANSIT
- หากคุณระบุ
TRANSIT
เส้นทาง จำนวนรายการต้องไม่เกิน 100 รายการ - หากคุณระบุ
TRAFFIC_AWARE_OPTIMAL
จำนวนสินค้าต้องไม่เกิน 100 รายการ - หากคุณระบุต้นทางหรือปลายทางโดยใช้ที่อยู่หรืออินสแตนซ์ของสถานที่ คุณจะระบุได้สูงสุด 50 รายการด้วยวิธีนี้
ตัวอย่างคำขอเมทริกซ์เส้นทาง
ตัวอย่างต่อไปนี้แสดง ComputeRouteMatrixRequest
ตัวอย่างนี้
จะทำสิ่งต่อไปนี้
- แสดงการระบุอาร์เรย์ของจุดแวะพักต้นทาง 2 แห่งและจุดแวะพักปลายทาง 2 แห่ง เมธอด
จะคำนวณเส้นทางจากต้นทางแต่ละแห่งไปยังปลายทางแต่ละแห่ง ดังนั้นการตอบกลับจึงมีเส้นทาง 4 เส้น
ทาง
ในอาร์เรย์ องค์ประกอบแรกจะอยู่ที่ดัชนี 0 องค์ประกอบที่สองจะอยู่ที่ดัชนี 1 และต่อไปเรื่อยๆ - ระบุช่องที่จะแสดงผล ในตัวอย่างนี้ ให้กำหนดค่าคำขอเพื่อส่งคืน
durationMillis
,distanceMeters
และcondition
สำหรับ แต่ละเส้นทาง
const request = { origins: [origin1, origin2], destinations: [destinationA, destinationB], travelMode: google.maps.TravelMode.DRIVING, units: google.maps.UnitSystem.METRIC, fields: ['durationMillis', 'distanceMeters', 'condition'], };
การตอบกลับมีเส้นทางที่เป็นไปได้ 4 เส้นทางสำหรับชุดค่าผสมของจุดแวะพักต้นทางและปลายทางทั้งหมด ดังที่แสดงในตัวอย่างต่อไปนี้
"matrix": { "rows": [ { "items": [ { "condition": "ROUTE_EXISTS", "distanceMeters": 202587, "durationMillis": 10040000 }, { "condition": "ROUTE_EXISTS", "distanceMeters": 252734, "durationMillis": 12240000 } ] }, { "items": [ { "condition": "ROUTE_EXISTS", "distanceMeters": 166135, "durationMillis": 6596000 }, { "condition": "ROUTE_EXISTS", "distanceMeters": 216282, "durationMillis": 8797000 } ] } ] }
ระบุแต่ละเส้นทางในผลลัพธ์โดยใช้ดัชนีต้นทางและปลายทางเพื่อค้นหา RouteMatrixItem
ที่เกี่ยวข้องในอาร์เรย์ 2 มิติ เช่น RouteMatrixItem
ที่อธิบายเส้นทางที่คำนวณจากต้นทางที่ดัชนี 1 และปลายทาง 0 ในคำขอจะอยู่ในองค์ประกอบที่ 2 ของอาร์เรย์ RouteMatrix.rows
และองค์ประกอบที่ 1 ของอาร์เรย์ RouteMatrixRow.items
ข้อมูลโค้ดต่อไปนี้แสดงวิธีระบุ RouteMatrixItem
เพื่อค้นหาเส้นทางสำหรับต้นทางและปลายทางที่เฉพาะเจาะจง
// Find the route for origin 'x' and destination 'y'. const {matrix} = await RouteMatrix.computeRouteMatrix(request); const myRouteMatrixItem = matrix.rows[x].items[y];
เลือกช่องที่จะแสดง
เมื่อขอเมทริกซ์เส้นทาง คุณต้องใช้มาสก์ฟิลด์เพื่อระบุข้อมูลที่การตอบกลับควรแสดง
การใช้ Field Mask ยังช่วยให้มั่นใจได้ว่าคุณจะไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยลดเวลาในการตอบสนองและหลีกเลี่ยงการแสดงข้อมูลที่ระบบของคุณไม่ต้องการ
ระบุรายการฟิลด์ที่ต้องการโดยตั้งค่าพร็อพเพอร์ตี้
ComputeRoutesMatrixRequest.fields
ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
fields: ['durationMillis', 'distanceMeters', 'condition'],
กำหนดว่าจะใช้มาสก์ฟิลด์ใด
วิธีระบุช่องที่ต้องการใช้และสร้างมาสก์ของช่องสำหรับช่องเหล่านั้นมีดังนี้
- ขอฟิลด์ทั้งหมดโดยใช้ FieldMask ของ
['*']
- ดูลำดับชั้นของฟิลด์ในคลาส
RouteMatrixItem
สำหรับฟิลด์ที่คุณต้องการ สร้างมาสก์ฟิลด์โดยใช้ลำดับชั้นของฟิลด์ที่แสดงใน ขั้นตอนก่อนหน้าโดยใช้รูปแบบนี้
topLevelField[.secondLevelField][.thirdLevelField][...]
เช่น สำหรับ RouteMatrixItem
นี้
"travelAdvisory": { "fuelConsumptionMicroliters": 0, "tollInfo": { "estimatedPrices": [ { "currencyCode": "USD", "units": 4, "nanos": 400000000 } ] } },
หากต้องการแสดงเฉพาะฟิลด์ tollInfo
สำหรับ RouteMatrixItem
ฟิลด์มาสก์จะเป็นดังนี้
fields: ['travelAdvisory.tollInfo']
หากต้องการขออัตราการใช้น้ำมันโดยประมาณแทน ฟิลด์มาสก์จะเป็นดังนี้
fields: ['travelAdvisory.fuelConsumptionMicroliters']
หากต้องการขอทั้ง 2 อย่าง ฟิลด์มาสก์จะเป็นดังนี้
fields: ['travelAdvisory.fuelConsumptionMicroliters', 'travelAdvisory.tollInfo']
และหากต้องการขอคำแนะนำด้านการเดินทางทั้งหมด ฟิลด์มาสก์จะเป็นดังนี้
fields: ['travelAdvisory']