รับเมทริกซ์เส้นทาง

เมทริกซ์เส้นทางคืออาร์เรย์ 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'],
    

กำหนดว่าจะใช้มาสก์ฟิลด์ใด

วิธีระบุช่องที่ต้องการใช้และสร้างมาสก์ของช่องสำหรับช่องเหล่านั้นมีดังนี้

  1. ขอฟิลด์ทั้งหมดโดยใช้ FieldMask ของ ['*']
  2. ดูลำดับชั้นของฟิลด์ในคลาส RouteMatrixItem สำหรับฟิลด์ที่คุณต้องการ
  3. สร้างมาสก์ฟิลด์โดยใช้ลำดับชั้นของฟิลด์ที่แสดงใน ขั้นตอนก่อนหน้าโดยใช้รูปแบบนี้

    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']