บริการเมทริกซ์ระยะทาง

ภาพรวม

บริการเมทริกซ์ระยะทางของ Google จะคํานวณระยะทางและเวลาเดินทางระหว่างต้นทางและปลายทางหลายแห่งโดยใช้โหมดการเดินทางที่ระบุ

บริการนี้ไม่ได้แสดงข้อมูลเส้นทางโดยละเอียด ดูข้อมูลเส้นทาง รวมถึงเส้นและทิศทางที่เป็นข้อความได้โดยส่งต้นทางและปลายทางรายการเดียวที่ต้องการไปยังบริการเส้นทาง

การเริ่มต้นใช้งาน

ก่อนที่จะใช้บริการเมทริกซ์ระยะทางใน Maps JavaScript API ก่อนที่จะเปิดใช้ API เมทริกซ์ระยะทางใน Google Cloud Console ในโปรเจ็กต์เดียวกับที่คุณตั้งค่าสําหรับ Maps JavaScript API

วิธีดูรายการ API ที่เปิดใช้

  1. ไปที่ Google Cloud Console
  2. คลิกปุ่มเลือกโปรเจ็กต์ แล้วเลือกโปรเจ็กต์เดียวกับที่คุณตั้งค่าไว้สําหรับ Maps JavaScript API แล้วคลิกเปิด
  3. จากรายการ API ในหน้าแดชบอร์ด ให้มองหา API เมทริกซ์ระยะทาง
  4. หากเห็น API ในรายการ นั่นหมายความว่าทุกอย่างพร้อมแล้ว หากไม่อยู่ในรายการ API ให้เปิดใช้โดยทําดังนี้
    1. ที่ด้านบนของหน้า ให้เลือกเปิดใช้ API เพื่อแสดงแท็บไลบรารี หรือเลือกคลังจากเมนูด้านซ้าย
    2. ค้นหา DISTANCE Matrix API แล้วเลือกจากรายการผลลัพธ์
    3. เลือกเปิดใช้ เมื่อกระบวนการเสร็จสิ้น API เมทริกซ์ระยะทางจะปรากฏในรายการ API บนหน้าแดชบอร์ด

ราคาและนโยบาย

ราคา

ตั้งแต่วันที่ 16 กรกฎาคม 2018 เป็นต้นไป แผนการตั้งราคาแบบจ่ายเมื่อใช้ใหม่จะเริ่มต้นขึ้นสําหรับ Maps, Routes และ Places โปรดไปที่การใช้งานและการเรียกเก็บเงินเพื่อดู DISTANCE Matrix API เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับราคาและขีดจํากัดการใช้งานใหม่

หมายเหตุ: คําค้นหาแต่ละรายการที่ส่งไปยังบริการเมทริกซ์ระยะทางจะจํากัดจํานวนองค์ประกอบที่อนุญาต โดยจํานวนต้นทางจะคูณด้วยจํานวนจุดหมายเพื่อกําหนดจํานวนองค์ประกอบ

นโยบาย

การใช้บริการเมทริกซ์ระยะทางจะต้องสอดคล้องกับนโยบายที่อธิบายเกี่ยวกับ DISTANCE Matrix API

คําขอเมทริกซ์ระยะทาง

การเข้าถึงบริการเมทริกซ์ระยะทางไม่พร้อมกัน เนื่องจาก Google Maps API ต้องเรียกไปยังเซิร์ฟเวอร์ภายนอก ด้วยเหตุนี้ คุณจึงต้องส่งเมธอด backback (คําขอเรียกกลับ) เพื่อดําเนินการตามคําขอให้เสร็จสมบูรณ์เพื่อประมวลผลผลลัพธ์

คุณเข้าถึงบริการเมทริกซ์ระยะทางภายในโค้ดของคุณผ่านออบเจ็กต์เครื่องมือสร้าง google.maps.DistanceMatrixService เมธอด DistanceMatrixService.getDistanceMatrix() จะส่งคําขอไปยังบริการเมทริกซ์ระยะทางโดยการส่งผ่านออบเจ็กต์ลิเทอรัล DistanceMatrixRequest ที่มีต้นทาง จุดหมาย และโหมดการเดินทาง ตลอดจนเมธอดเรียกกลับเพื่อเรียกใช้เมื่อได้รับการตอบกลับ

var origin1 = new google.maps.LatLng(55.930385, -3.118425);
var origin2 = 'Greenwich, England';
var destinationA = 'Stockholm, Sweden';
var destinationB = new google.maps.LatLng(50.087692, 14.421150);

var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
  {
    origins: [origin1, origin2],
    destinations: [destinationA, destinationB],
    travelMode: 'DRIVING',
    transitOptions: TransitOptions,
    drivingOptions: DrivingOptions,
    unitSystem: UnitSystem,
    avoidHighways: Boolean,
    avoidTolls: Boolean,
  }, callback);

function callback(response, status) {
  // See Parsing the Results for
  // the basics of a callback function.
}

ดูตัวอย่าง

DistanceMatrixRequest มีช่องต่อไปนี้

  • origins (ต้องระบุ) — อาร์เรย์ที่มีสตริงอีเมลอย่างน้อย 1 รายการ ออบเจ็กต์ google.maps.LatLng รายการ หรือออบเจ็กต์ Place ที่ใช้คํานวณระยะทางและเวลา
  • destinations (ต้องระบุ) — อาร์เรย์ที่มีสตริงอีเมลอย่างน้อย 1 รายการ ออบเจ็กต์ google.maps.LatLng รายการ หรือออบเจ็กต์ Place ที่ใช้คํานวณระยะทางและเวลา
  • travelMode (ไม่บังคับ) - รูปแบบการเดินทางที่จะใช้เมื่อคํานวณเส้นทาง ดูที่ส่วนรูปแบบการเดินทาง
  • transitOptions (ไม่บังคับ) — ตัวเลือกที่ใช้กับคําขอที่มี travelMode เป็น TRANSIT เท่านั้น โปรดดูคําอธิบายที่ถูกต้องในหัวข้อตัวเลือกขนส่งสาธารณะ
  • drivingOptions (ไม่บังคับ) ระบุค่าที่ใช้กับคําขอที่ travelMode คือ DRIVING เท่านั้น เราได้อธิบายค่าที่ถูกต้องไว้ในส่วนตัวเลือกการขับรถ
  • unitSystem (ไม่บังคับ) — ระบบหน่วยที่จะใช้เมื่อแสดงระยะทาง ค่าที่ยอมรับมีดังนี้
    • google.maps.UnitSystem.METRIC (ค่าเริ่มต้น)
    • google.maps.UnitSystem.IMPERIAL
  • avoidHighways (ไม่บังคับ) - หาก true ระบบจะคํานวณเส้นทางระหว่างต้นทางและปลายทางเพื่อหลีกเลี่ยงทางหลวงหากเป็นไปได้
  • avoidTolls (ไม่บังคับ) - หาก true ระบบจะคํานวณเส้นทางระหว่างจุดโดยใช้เส้นทางที่ไม่เก็บค่าผ่านทางหากทําได้

รูปแบบการเดินทาง

เมื่อคํานวณเวลาและระยะทาง คุณระบุได้ว่าจะใช้รูปแบบการเดินทางใด ปัจจุบันเรารองรับรูปแบบการเดินทางต่อไปนี้

  • BICYCLING ขอเส้นทางจักรยานผ่านเส้นทางจักรยานและถนนที่ต้องการ (ปัจจุบันมีให้บริการเฉพาะในสหรัฐอเมริกาและบางเมืองของแคนาดาเท่านั้น)
  • DRIVING (ค่าเริ่มต้น) แสดงเส้นทางการขับขี่มาตรฐานที่ใช้เครือข่ายถนน
  • TRANSIT ขอเส้นทางผ่านเส้นทางขนส่งสาธารณะ ตัวเลือกนี้ระบุได้ก็ต่อเมื่อคําขอมีคีย์ API ดูหัวข้อที่มีอยู่ในตัวเลือกขนส่งสาธารณะสําหรับตัวเลือกที่มีอยู่ในคําขอประเภทนี้
  • WALKING ขอเส้นทางเดินผ่านถนนคนเดินและทางเท้า (หากมี)

ตัวเลือกขนส่งสาธารณะ

ขณะนี้บริการขนส่งสาธารณะเป็นแบบ "ทดลอง" ในช่วงนี้ เราจะใช้ขีดจํากัดอัตราเพื่อป้องกันการละเมิด API ท้ายที่สุดเราจะบังคับใช้ขีดจํากัดสูงสุดของคําค้นหาทั้งหมดต่อการโหลดแผนที่ 1 ครั้งโดยอิงตามการใช้งานที่เหมาะสมของ API

ตัวเลือกที่ใช้ได้สําหรับคําขอเมทริกซ์ระยะทางจะแตกต่างกันไปในแต่ละรูปแบบการเดินทาง ในคําขอขนส่งสาธารณะ ระบบจะไม่สนใจตัวเลือก avoidHighways และ avoidTolls คุณระบุตัวเลือกการกําหนดเส้นทางเฉพาะสําหรับขนส่งสาธารณะได้โดยใช้ออบเจ็กต์ TransitOptions ตามตัวอักษร

คําขอขนส่งสาธารณะมีความละเอียดอ่อนด้านเวลา จะมีการคํานวณเฉพาะเวลาในอนาคตเท่านั้น

ออบเจ็กต์ TransitOptions ของสัญพจน์มีช่องต่อไปนี้

{
  arrivalTime: Date,
  departureTime: Date,
  modes: [transitMode1, transitMode2]
  routingPreference: TransitRoutePreference
}

โปรดดูคําอธิบายช่องต่อไปนี้

  • arrivalTime (ไม่บังคับ) ระบุเวลาที่ต้องการมาถึงเป็นออบเจ็กต์ Date หากระบุเวลาถึง ระบบจะไม่สนใจเวลาออกเดินทาง
  • departureTime (ไม่บังคับ) ระบุเวลาออกเดินทางที่ต้องการเป็นออบเจ็กต์ Date ระบบจะไม่สนใจ departureTime หากระบุ arrivalTime ไว้ ค่าเริ่มต้นคือตอนนี้ (ซึ่งก็คือเวลาปัจจุบัน) หากไม่ได้ระบุค่าสําหรับ departureTime หรือ arrivalTime
  • modes (ไม่บังคับ) คืออาร์เรย์ที่มีสัญพจน์ออบเจ็กต์ TransitMode อย่างน้อย 1 รายการ ช่องนี้จะมีได้ก็ต่อเมื่อคําขอมีคีย์ API เท่านั้น แต่ละ TransitMode จะกําหนดรูปแบบการเดินทางที่ต้องการ ค่าที่อนุญาตมีดังนี้
    • BUS ระบุว่าเส้นทางที่คํานวณแล้วควรเดินทางด้วยรถประจําทาง
    • RAIL ระบุว่าเส้นทางที่คํานวณแล้วควรการเดินทางด้วยรถไฟ รถราง รถไฟฟ้ารางเบา และรถไฟใต้ดิน
    • SUBWAY ระบุว่าเส้นทางที่คํานวณแล้วควรการเดินทางด้วยรถไฟใต้ดิน
    • TRAIN ระบุว่าเส้นทางที่คํานวณแล้วควรการเดินทางด้วยรถไฟ
    • TRAM ระบุว่าเส้นทางที่คํานวณแล้วควรเดินทางด้วยรถรางและรถไฟฟ้ารางเบา
  • routingPreference (ไม่บังคับ) ระบุค่ากําหนดสําหรับเส้นทางขนส่งสาธารณะ การใช้ตัวเลือกนี้ช่วยให้มีอคติกับตัวเลือกที่ปรากฏ แทนที่จะยอมรับเส้นทางที่ดีที่สุดตามค่าเริ่มต้นที่ API เลือกไว้ ช่องนี้จะระบุได้ก็ต่อเมื่อคําขอมีคีย์ API ค่าที่อนุญาตมีดังนี้
    • FEWER_TRANSFERS บ่งบอกว่าเส้นทางที่คํานวณแล้วควรโอนข้อมูลได้จํานวนจํากัด
    • LESS_WALKING บ่งชี้ว่าเส้นทางที่คํานวณแล้วควรเดินได้จํานวนจํากัด

ตัวเลือกการขับขี่

ใช้ออบเจ็กต์ drivingOptions เพื่อระบุเวลาออกเดินทางเพื่อคํานวณเส้นทางที่ดีที่สุดไปยังจุดหมายตามสภาพการจราจรที่คาดหวัง นอกจากนี้ คุณยังระบุได้ว่าต้องการให้เวลาโดยประมาณในการเข้าชมเป็นค่าบวก คาดการณ์ หรือคาดการณ์ได้ดีที่สุด โดยอิงตามสภาพการจราจรและการเข้าชมแบบสดที่ผ่านมา

ออบเจ็กต์ drivingOptions มีช่องต่อไปนี้

{
  departureTime: Date,
  trafficModel: TrafficModel
}

โปรดดูคําอธิบายช่องต่อไปนี้

  • departureTime (จําเป็นต้องมีลิเทอรัลของ drivingOptions จึงจะใช้ได้) ระบุเวลาออกเดินทางที่ต้องการเป็นออบเจ็กต์ Date ค่านี้ต้องกําหนดเวลาปัจจุบันหรือเวลาในอนาคต ต้องไม่เป็นวันที่ในอดีต (API จะแปลงวันที่ทั้งหมดเป็น UTC เพื่อให้การจัดการสอดคล้องกันในทุกเขตเวลา) หากรวม departureTime ในคําขอ API จะแสดงผลเส้นทางที่ดีที่สุดโดยอิงตามสภาพการจราจรที่คาดไว้ในขณะนั้น และรวมเวลาที่ระบุในการเข้าชม (duration_in_traffic) ไว้ในการตอบกลับด้วย หากคุณไม่ระบุเวลาออกเดินทาง (กล่าวคือหากคําขอไม่มี drivingOptions) เส้นทางที่ส่งกลับโดยทั่วไปจะเป็นเส้นทางที่ดีโดยไม่ต้องคํานึงถึงสภาพการจราจร

    หมายเหตุ: หากไม่ได้ระบุเวลาออกเดินทาง ตัวเลือกเส้นทางและระยะเวลาจะขึ้นอยู่กับเครือข่ายถนนและสภาพการจราจรอิสระตามเวลาโดยเฉลี่ย ผลลัพธ์สําหรับคําขอหนึ่งๆ อาจเปลี่ยนแปลงไปตามเวลาเนื่องจากมีการเปลี่ยนแปลงในเครือข่ายถนน สภาพการจราจรโดยเฉลี่ยที่อัปเดต และลักษณะของการกระจายการให้บริการ นอกจากนี้ ผลลัพธ์อาจแตกต่างกันไปตามเส้นทางที่เทียบเท่ากับทุกเมื่อหรือความถี่

  • trafficModel (ไม่บังคับ) ระบุสมมติฐานที่จะใช้เมื่อคํานวณเวลาในการเข้าชม การตั้งค่านี้ส่งผลต่อค่าที่แสดงในช่อง duration_in_traffic ในการตอบกลับ ซึ่งมีเวลาที่คาดการณ์ไว้ในการเข้าชมโดยอิงตามค่าเฉลี่ยที่ผ่านมา ค่าเริ่มต้นคือ best_guess ค่าที่อนุญาตมีดังนี้
    • bestguess (ค่าเริ่มต้น) บ่งบอกว่า duration_in_traffic ที่แสดงผลควรเป็นค่าประมาณของเวลาเดินทางที่ดีที่สุดเนื่องจากเป็นข้อมูลที่ทราบเกี่ยวกับทั้งสภาพการจราจรในอดีตและการเข้าชมแบบสด การเข้าชมแบบสดมีความสําคัญมากขึ้นเรื่อยๆ เมื่อเทียบกับ departureTime ในขณะนี้
    • pessimistic บ่งบอกว่า duration_in_traffic ที่แสดงผลควรนานกว่าเวลาเดินทางจริงเกือบทุกวัน แต่บางครั้งวันที่มีสภาพการจราจรไม่ดีเป็นพิเศษอาจเกินค่านี้
    • optimistic บ่งบอกว่า duration_in_traffic ที่แสดงผลควรสั้นกว่าเวลาเดินทางจริงเกือบทุกวัน แต่บางครั้งวันที่มีการเข้าชมที่ดีเป็นพิเศษอาจเร็วกว่าค่านี้

ด้านล่างคือตัวอย่าง DistanceMatrixRequest สําหรับเส้นทางขับรถ รวมถึงเวลาออกเดินทางและรูปแบบการจราจร

{
  origins: [{lat: 55.93, lng: -3.118}, 'Greenwich, England'],
  destinations: ['Stockholm, Sweden', {lat: 50.087, lng: 14.421}],
  travelMode: 'DRIVING',
  drivingOptions: {
    departureTime: new Date(Date.now() + N),  // for the time N milliseconds from now.
    trafficModel: 'optimistic'
  }
}

การตอบกลับเมทริกซ์ระยะทาง

การเรียกใช้บริการ DISTANCE Matrix สําเร็จจะส่งคืนออบเจ็กต์ DistanceMatrixResponse และออบเจ็กต์ DistanceMatrixStatus รายการเหล่านี้จะส่งไปยังฟังก์ชันเรียกกลับที่คุณระบุไว้ในคําขอ

ออบเจ็กต์ DistanceMatrixResponse มีข้อมูลระยะทางและระยะเวลาสําหรับต้นทาง/ปลายทางแต่ละคู่ที่คํานวณเส้นทางได้

{
  "originAddresses": [ "Greenwich, Greater London, UK", "13 Great Carleton Square, Edinburgh, City of Edinburgh EH16 4, UK" ],
  "destinationAddresses": [ "Stockholm County, Sweden", "Dlouhá 609/2, 110 00 Praha-Staré Město, Česká republika" ],
  "rows": [ {
    "elements": [ {
      "status": "OK",
      "duration": {
        "value": 70778,
        "text": "19 hours 40 mins"
      },
      "distance": {
        "value": 1887508,
        "text": "1173 mi"
      }
    }, {
      "status": "OK",
      "duration": {
        "value": 44476,
        "text": "12 hours 21 mins"
      },
      "distance": {
        "value": 1262780,
        "text": "785 mi"
      }
    } ]
  }, {
    "elements": [ {
      "status": "OK",
      "duration": {
        "value": 96000,
        "text": "1 day 3 hours"
      },
      "distance": {
        "value": 2566737,
        "text": "1595 mi"
      }
    }, {
      "status": "OK",
      "duration": {
        "value": 69698,
        "text": "19 hours 22 mins"
      },
      "distance": {
        "value": 1942009,
        "text": "1207 mi"
      }
    } ]
  } ]
}

ผลลัพธ์ของเมทริกซ์ระยะทาง

โปรดดูคําอธิบายเกี่ยวกับช่องที่รองรับในการตอบกลับด้านล่าง

  • originAddresses คืออาร์เรย์ซึ่งมีตําแหน่งที่ส่งผ่านในช่อง origins ของคําขอเมทริกซ์ระยะทาง ระบบจะแสดงผลที่อยู่ตามรูปแบบโดยโปรแกรมพิกัดทางภูมิศาสตร์
  • destinationAddresses คืออาร์เรย์ซึ่งมีตําแหน่งที่ส่งผ่านในช่อง destinations ในรูปแบบที่โปรแกรมพิกัดทางภูมิศาสตร์แสดงผล
  • rows คืออาร์เรย์ของออบเจ็กต์ DistanceMatrixResponseRow โดยแต่ละแถวจะสอดคล้องกับต้นทาง
  • elements เป็นรายการย่อยของ rows และสอดคล้องกับการจับคู่ต้นทางของแถวกับปลายทางแต่ละรายการ โดยจะมีข้อมูลสถานะ ระยะเวลา ระยะทาง และค่าโดยสาร (หากมี) สําหรับคู่ต้นทาง/ปลายทางแต่ละคู่
  • element แต่ละรายการจะมีช่องต่อไปนี้
    • status: ดูรายการรหัสสถานะที่เป็นไปได้ที่รหัสสถานะ
    • duration: เวลาเดินทางที่ใช้เส้นทางนี้แสดงเป็นวินาที (ช่อง value) และหน่วยเป็น text ค่าข้อความจะได้รับการจัดรูปแบบตาม unitSystem ที่ระบุไว้ในคําขอ (หรือในเมตริก หากไม่มีการระบุค่ากําหนด)
    • duration_in_traffic: ระยะเวลาในการเดินทางเพื่อไปตามเส้นทางนี้โดยพิจารณาจากสภาพการจราจรปัจจุบัน หน่วยเป็นวินาที (ช่อง value) และหน่วยเป็น text ค่าข้อความจะได้รับการจัดรูปแบบตาม unitSystem ที่ระบุไว้ในคําขอ (หรือในเมตริก หากไม่มีการระบุค่ากําหนด) ระบบจะส่ง duration_in_traffic กลับไปยังลูกค้า Google Maps Platform Premium ที่ข้อมูลการจราจรพร้อมให้บริการเท่านั้น โดยระบบจะตั้งค่า mode เป็น driving และรวม departureTime ไว้ในช่อง distanceMatrixOptions ในคําขอ
    • distance: ระยะทางรวมของเส้นทางนี้ซึ่งแสดงเป็นเมตร (value) และแสดงเป็น text ค่าข้อความจะมีการจัดรูปแบบตาม unitSystem ที่ระบุไว้ในคําขอ (หรือในเมตริก ถ้าไม่มีการระบุค่ากําหนด)
    • fare: ประกอบด้วยค่าโดยสารทั้งหมด (กล่าวคือ ค่าใช้จ่ายรวมของตั๋ว) ในเส้นทางนี้ ที่พักนี้ส่งคืนตามคําขอขนส่งสาธารณะเท่านั้นและเฉพาะในกรณีที่ผู้ให้บริการขนส่งมีข้อมูลค่าโดยสารเท่านั้น ซึ่งประกอบด้วย
      • currency: รหัสสกุลเงิน ISO 4217 ซึ่งระบุสกุลเงินที่มีจํานวนเงินแสดงอยู่
      • value: จํานวนเงินค่าโดยสารทั้งหมดในสกุลเงินที่ระบุด้านบน

รหัสสถานะ

การตอบกลับเมทริกซ์ระยะทางจะมีรหัสสถานะสําหรับการตอบกลับทั้งหมด รวมถึงสถานะสําหรับแต่ละองค์ประกอบ

รหัสสถานะการตอบกลับ

รหัสสถานะที่ใช้กับ DistanceMatrixResponse จะส่งผ่านในออบเจ็กต์ DistanceMatrixStatus และประกอบด้วย

  • OK — คําขอถูกต้อง สถานะนี้อาจแสดงผลได้แม้ว่าจะไม่พบเส้นทางระหว่างต้นทางและปลายทางก็ตาม ดูข้อมูลเกี่ยวกับสถานะระดับองค์ประกอบได้ที่รหัสสถานะองค์ประกอบ
  • INVALID_REQUEST — คําขอที่ระบุไม่ถูกต้อง ปัญหานี้มักเกิดจากการไม่ได้ระบุช่องที่ต้องกรอก ดูรายการช่องที่รองรับด้านบน
  • MAX_ELEMENTS_EXCEEDED — ผลิตภัณฑ์ต้นทางและปลายทางเกินขีดจํากัดต่อการค้นหา
  • MAX_DIMENSIONS_EXCEEDED — คําขอของคุณมีต้นทางมากกว่า 25 แห่ง หรือมีปลายทางมากกว่า 25 แห่ง
  • OVER_QUERY_LIMIT — แอปพลิเคชันของคุณขอองค์ประกอบมากเกินไปภายในระยะเวลาที่กําหนด คําขอควรดําเนินการสําเร็จหากคุณลองอีกครั้งหลังช่วงเวลาที่สมเหตุสมผล
  • REQUEST_DENIED - บริการถูกปฏิเสธไม่ให้ผู้ใช้ใช้บริการเมทริกซ์ระยะทางในหน้าเว็บ
  • UNKNOWN_ERROR — ระบบดําเนินการกับคําขอเมทริกซ์ระยะทางไม่ได้เนื่องจากข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ คําขออาจประสบความสําเร็จหากคุณลองอีกครั้ง

รหัสสถานะขององค์ประกอบ

รหัสสถานะต่อไปนี้ใช้กับออบเจ็กต์ DistanceMatrixElement ที่เจาะจง

  • NOT_FOUND — ต้นทางและ/หรือปลายทางของการจับคู่นี้แสดงพิกัดทางภูมิศาสตร์ไม่ได้
  • OK — การตอบกลับมีผลลัพธ์ที่ถูกต้อง
  • ZERO_RESULTS — ไม่พบเส้นทางระหว่างต้นทางและปลายทาง

การแยกวิเคราะห์ผลลัพธ์

ออบเจ็กต์ DistanceMatrixResponse มี row 1 รายการสําหรับแต่ละต้นทางที่ส่งในคําขอ โดยแต่ละแถวจะมีช่อง element สําหรับการจับคู่ต้นทางแต่ละแห่งกับปลายทางที่ระบุ

function callback(response, status) {
  if (status == 'OK') {
    var origins = response.originAddresses;
    var destinations = response.destinationAddresses;

    for (var i = 0; i < origins.length; i++) {
      var results = response.rows[i].elements;
      for (var j = 0; j < results.length; j++) {
        var element = results[j];
        var distance = element.distance.text;
        var duration = element.duration.text;
        var from = origins[i];
        var to = destinations[j];
      }
    }
  }
}