คำขอและการตอบกลับของ Distance Matrix API (เดิม)

นักพัฒนาซอฟต์แวร์ในเขตเศรษฐกิจยุโรป (EEA)

บทนำ

คำขอ Distance Matrix API (เดิม) จะอยู่ในรูปแบบต่อไปนี้

https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters

โดยที่ outputFormat อาจเป็นค่าใดค่าหนึ่งต่อไปนี้

  • json (แนะนำ) ระบุเอาต์พุตใน JavaScript Object Notation (JSON)
  • xml ระบุเอาต์พุตเป็น XML

พารามิเตอร์บางรายการเป็นพารามิเตอร์ที่จำเป็น ในขณะที่บางรายการเป็นตัวเลือก พารามิเตอร์ทั้งหมดจะแยกกันโดยใช้อักขระแอมเพอร์แซนด์ (&) ตามมาตรฐานใน URL อักขระที่สงวนไว้ทั้งหมด (เช่น เครื่องหมายบวก "+") ต้องเข้ารหัส URL รายการพารามิเตอร์และค่าที่เป็นไปได้แสดงอยู่ด้านล่าง

พารามิเตอร์ที่จำเป็น

ปลายทาง

สถานที่ตั้งอย่างน้อย 1 แห่งที่จะใช้เป็นจุดสิ้นสุดในการคำนวณระยะทางและเวลาในการเดินทาง ตัวเลือกสำหรับพารามิเตอร์ destinations จะเหมือนกับพารามิเตอร์ origins

origins

จุดเริ่มต้นสำหรับการคำนวณระยะทางและเวลาเดินทาง คุณสามารถระบุสถานที่ตั้งอย่างน้อย 1 แห่งโดยคั่นด้วยอักขระไปป์ (|) ในรูปแบบรหัสสถานที่ ที่อยู่ หรือพิกัดละติจูด/ลองจิจูด ดังนี้

  • รหัสสถานที่: หากระบุรหัสสถานที่ คุณต้องขึ้นต้นด้วย place_id:
  • ที่อยู่: หากคุณส่งที่อยู่ บริการจะเข้ารหัสพิกัดภูมิศาสตร์ของสตริงและแปลงเป็นพิกัดละติจูด/ลองจิจูดเพื่อคำนวณระยะทาง พิกัดนี้อาจแตกต่างจากพิกัดที่ Geocoding API แสดงผล เช่น ทางเข้าอาคารแทนที่จะเป็นจุดศูนย์กลางของอาคาร
    หมายเหตุ: เราขอแนะนำให้ใช้รหัสสถานที่แทนการใช้ที่อยู่หรือพิกัดละติจูด/ลองจิจูด การใช้พิกัดจะส่งผลให้จุดถูกสแนปไปยังถนนที่อยู่ใกล้กับพิกัดเหล่านั้นเสมอ ซึ่งอาจไม่ใช่จุดเข้าถึงสถานที่ หรือแม้แต่ถนนที่จะนำไปสู่จุดหมายได้อย่างรวดเร็วหรือปลอดภัย การใช้ที่อยู่จะระบุระยะทางไปยังศูนย์กลางของอาคาร ไม่ใช่ทางเข้าอาคาร
  • พิกัด: หากคุณส่งพิกัดละติจูด/ลองจิจูด ระบบจะสแนปพิกัดดังกล่าวไปยังถนนที่ใกล้ที่สุด เราขอแนะนำให้ส่งรหัสสถานที่ หากคุณส่งพิกัด โปรดตรวจสอบว่าไม่มีช่องว่างระหว่างค่าละติจูดและลองจิจูด
  • Plus Codes ต้องจัดรูปแบบเป็นรหัสสากลหรือรหัสผสม จัดรูปแบบ Plus Code ดังที่แสดงที่นี่ (เครื่องหมายบวกจะได้รับการหลีกเลี่ยง URL เป็น %2B และการเว้นวรรคจะได้รับการหลีกเลี่ยง URL เป็น %20)
    • global code คือรหัสพื้นที่ 4 หลักและรหัสท้องถิ่น 6 หลักขึ้นไป (849VCWC8+R9 ได้รับการเข้ารหัสเป็น 849VCWC8%2BR9)
    • รหัสผสมคือรหัสท้องถิ่น 6 หลักขึ้นไปที่มีการระบุตำแหน่งชัดเจน (CWC8+R9 Mountain View, CA, USA ได้รับการเข้ารหัสเป็น CWC8%2BR9%20Mountain%20View%20CA%20USA)
  • เส้นประกอบที่เข้ารหัส หรือจะระบุชุดพิกัดที่เข้ารหัสโดยใช้อัลกอริทึมเส้นประกอบที่เข้ารหัสก็ได้ วิธีนี้มีประโยชน์อย่างยิ่งหากคุณมีจุดต้นทางจำนวนมาก เนื่องจาก URL จะสั้นลงอย่างมากเมื่อใช้เส้นประกอบที่เข้ารหัส
    • เส้นประกอบที่เข้ารหัสต้องขึ้นต้นด้วย enc: และตามด้วยโคลอน : เช่น origins=enc:gfo}EtohhU:
    • นอกจากนี้ คุณยังรวมเส้นประกอบที่เข้ารหัสหลายเส้นได้ โดยคั่นด้วยอักขระไปป์ | เช่น
      origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
      

พารามิเตอร์ที่ไม่บังคับ

arrival_time

ระบุเวลาถึงที่ต้องการสำหรับเส้นทางขนส่งสาธารณะเป็นวินาทีตั้งแต่เที่ยงคืนของวันที่ 1 มกราคม 1970 UTC คุณสามารถระบุ departure_time หรือ arrival_time ได้ แต่จะระบุทั้ง 2 อย่างไม่ได้ โปรดทราบว่าต้องระบุ arrival_time เป็นจำนวนเต็ม

หลีกเลี่ยง

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

  • tolls ระบุว่าเส้นทางที่คำนวณควรหลีกเลี่ยงทางพิเศษ/สะพานที่เก็บค่าผ่านทาง
  • highways บ่งชี้ว่าเส้นทางที่คำนวณควรเลี่ยงทางหลวง
  • ferries บ่งบอกว่าเส้นทางที่คำนวณควรหลีกเลี่ยงเรือข้ามฟาก
  • indoor ระบุว่าเส้นทางที่คำนวณควรหลีกเลี่ยงบันไดในอาคารสำหรับเส้นทางการเดินเท้าและเส้นทางขนส่งสาธารณะ

คุณสามารถขอเส้นทางที่เลี่ยงการผสมผสานระหว่างค่าผ่านทาง ทางหลวง และเรือข้ามฟากได้โดยส่งข้อจำกัดทั้ง 2 รายการไปยังพารามิเตอร์ avoid เช่น avoid=tolls|highways|ferries

หมายเหตุ: การเพิ่มข้อจำกัดไม่ได้เป็นการกีดกันเส้นทางที่มีฟีเจอร์ที่ถูกจำกัด แต่จะให้น้ำหนักกับผลลัพธ์ของเส้นทางที่เหมาะสมมากกว่า

departure_time

ระบุเวลาออกเดินทางที่ต้องการ คุณสามารถระบุเวลาเป็นจำนวนเต็มในหน่วยวินาทีตั้งแต่เที่ยงคืนของวันที่ 1 มกราคม 1970 ตามเวลา UTC หากระบุ departure_time ที่ช้ากว่า 9999-12-31T23:59:59.999999999Z ไว้ API จะเปลี่ยน departure_time กลับไปเป็น 9999-12-31T23:59:59.999999999Z หรือจะระบุค่าเป็น now ซึ่งจะตั้งเวลาออกเดินทางเป็นเวลาปัจจุบัน (ถูกต้องถึงวินาทีที่ใกล้ที่สุด) ก็ได้ คุณระบุเวลาออกเดินทางได้ใน 2 กรณีต่อไปนี้

  • สำหรับคำขอที่รูปแบบการเดินทางเป็นขนส่งสาธารณะ คุณสามารถเลือกที่จะระบุ departure_time หรือ arrival_time ได้ หากไม่ได้ระบุเวลาทั้ง 2 รายการ departure_time จะมีค่าเริ่มต้นเป็นเวลาปัจจุบัน (นั่นคือ เวลาออกเดินทางจะมีค่าเริ่มต้นเป็นเวลาปัจจุบัน)
  • สำหรับคำขอที่โหมดการเดินทางเป็นการขับรถ คุณสามารถระบุ departure_time เพื่อรับเส้นทางและระยะเวลาการเดินทาง (ช่องการตอบกลับ: duration_in_traffic) ที่พิจารณาสภาพการจราจร ต้องตั้งค่า departure_time เป็นเวลาปัจจุบันหรือเวลาในอนาคต โดยต้องไม่เป็นวันที่ในอดีต
หมายเหตุ: หากไม่ได้ระบุเวลาออกเดินทาง ระบบจะเลือกเส้นทางและระยะเวลาโดยอิงตามเครือข่ายถนนและสภาพการจราจรเฉลี่ยที่ไม่ขึ้นอยู่กับเวลา ผลลัพธ์สำหรับคำขอหนึ่งๆ อาจแตกต่างกันไปเมื่อเวลาผ่านไปเนื่องจากการเปลี่ยนแปลงในเครือข่ายถนน สภาพการจราจรโดยเฉลี่ยที่อัปเดต และลักษณะการกระจายของบริการ นอกจากนี้ ผลลัพธ์อาจแตกต่างกันไปตามเส้นทางที่ใกล้เคียงกันได้ทุกเมื่อหรือทุกความถี่
หมายเหตุ: คำขอเมทริกซ์ระยะทางที่ระบุ departure_time เมื่อ mode=driving จะจำกัดไว้ที่องค์ประกอบสูงสุด 100 รายการต่อคำขอ จำนวนต้นทางคูณด้วยจำนวนปลายทางจะกำหนดจำนวนองค์ประกอบ

ภาษา

ภาษาที่จะแสดงผลลัพธ์

  • ดูรายการภาษาที่รองรับ Google อัปเดตภาษาที่รองรับอยู่บ่อยครั้ง รายการนี้จึงอาจไม่ครอบคลุมทั้งหมด
  • หากไม่ได้ระบุ language ไว้ API จะพยายามใช้ภาษาที่ต้องการตามที่ระบุไว้ในส่วนหัว Accept-Language
  • API จะพยายามอย่างเต็มที่เพื่อให้ที่อยู่ที่อ่านง่ายสำหรับทั้งผู้ใช้และคนในพื้นที่ เพื่อให้บรรลุเป้าหมายดังกล่าว ระบบจะแสดงที่อยู่ในภาษาท้องถิ่น โดยแปลงเป็นสคริปต์ที่ผู้ใช้อ่านได้หากจำเป็น ตามภาษาที่ต้องการ ส่วนที่อยู่อื่นๆ จะแสดงในภาษาที่ต้องการ คอมโพเนนต์ของที่อยู่ ทั้งหมดจะแสดงในภาษาเดียวกัน ซึ่งเลือกจากคอมโพเนนต์แรก
  • หากชื่อไม่มีในภาษาที่ต้องการ API จะใช้ชื่อที่ใกล้เคียงที่สุด
  • ภาษาที่ต้องการมีอิทธิพลเล็กน้อยต่อชุดผลลัพธ์ที่ API เลือกแสดงผลและลำดับการแสดงผล โปรแกรมเข้ารหัสพิกัดภูมิศาสตร์จะตีความตัวย่อแตกต่างกันไปตามภาษา เช่น ตัวย่อของประเภทถนน หรือคำพ้องความหมายที่อาจใช้ได้ในภาษาหนึ่งแต่ใช้ไม่ได้ในอีกภาษาหนึ่ง เช่น utca และ tér เป็นคำพ้องความหมายของคำว่าถนนในภาษาฮังการี

โหมด

สำหรับการคำนวณระยะทางและเส้นทาง คุณสามารถระบุรูปแบบการเดินทางที่จะใช้ได้ โดยค่าเริ่มต้น ระบบจะใช้โหมดDRIVING โดยค่าเริ่มต้น ระบบจะคำนวณเส้นทางเป็นเส้นทางการขับขี่ ระบบรองรับโหมดการเดินทางต่อไปนี้

  • driving (ค่าเริ่มต้น) หมายถึงเส้นทางการขับขี่หรือระยะทางมาตรฐานโดยใช้เครือข่ายถนน
  • walking ขอเส้นทางเดินเท้าหรือระยะทางโดยใช้ทางเท้าและทางเดิน (หากมี)
  • bicycling ขอเส้นทางหรือระยะทางสำหรับการปั่นจักรยานโดยใช้เส้นทางจักรยานและถนนที่ต้องการ (หากมี)
  • transit ขอเส้นทางหรือระยะทางโดยใช้เส้นทางขนส่งสาธารณะ (หากมี) หากตั้งค่าโหมดเป็นขนส่ง คุณจะระบุ departure_time หรือ arrival_time ก็ได้ (ไม่บังคับ) หากไม่ได้ระบุเวลาทั้ง 2 รายการ departure_time จะใช้ค่าเริ่มต้นเป็นตอนนี้ (นั่นคือ เวลาออกเดินทางจะใช้ค่าเริ่มต้นเป็นเวลาปัจจุบัน) นอกจากนี้ คุณยังเลือกที่จะรวม transit_mode และ/หรือ transit_routing_preference ได้ด้วย
หมายเหตุ: บางครั้งเส้นทางเดินเท้าและเส้นทางจักรยานอาจไม่มีเส้นทางสำหรับคนเดินเท้าหรือเส้นทางจักรยานที่ชัดเจน ดังนั้นเส้นทางเหล่านี้จะแสดงคำเตือนในผลลัพธ์ที่แสดงผลซึ่งคุณต้องแสดงต่อผู้ใช้
หมายเหตุ: การเดินทางด้วยขนส่งสาธารณะจะแสดงข้อมูลย้อนหลังได้สูงสุด 7 วันหรือแสดงข้อมูลในอนาคตได้สูงสุด 100 วัน ทั้งนี้ขึ้นอยู่กับความพร้อมของข้อมูลขนส่งสาธารณะที่ผู้ให้บริการข้อมูลจัดหาให้ ตารางเวลาขนส่งสาธารณะมีการเปลี่ยนแปลงบ่อยครั้ง การเดินทางด้วยขนส่งสาธารณะที่พร้อมให้บริการอาจเปลี่ยนแปลงไปตามเวลา และไม่มีการรับประกันว่าจะให้ผลลัพธ์ที่สอดคล้องกันสำหรับการคาดการณ์ล่วงหน้าเป็นเวลานาน

ภูมิภาค

รหัสภูมิภาคที่ระบุเป็นค่า 2 อักขระของ ccTLD ("โดเมนระดับบนสุด") รหัส ccTLD ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดยมีข้อยกเว้นที่สำคัญบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ขณะที่รหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคสำหรับหน่วยงาน "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")

traffic_model

ระบุสมมติฐานที่จะใช้เมื่อคำนวณเวลาในการจราจร การตั้งค่านี้ส่งผลต่อค่าที่แสดงในช่อง duration_in_traffic ในการตอบกลับ ซึ่งมีเวลาที่คาดการณ์ไว้ในการจราจรตามค่าเฉลี่ยที่ผ่านมา พารามิเตอร์ traffic_model จะระบุได้เฉพาะเส้นทางการขับขี่ที่คำขอมี departure_time เท่านั้น ค่าที่ใช้ได้สำหรับพารามิเตอร์นี้มีดังนี้

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

ค่าเริ่มต้น best_guess จะให้การคาดการณ์ที่มีประโยชน์ที่สุดสำหรับกรณีการใช้งานส่วนใหญ่ เป็นไปได้ว่าการคาดการณ์ระยะเวลาเดินทางของ best_guess อาจสั้นกว่า optimistic หรือนานกว่า pessimistic เนื่องจากวิธีที่โมเดลการคาดการณ์ของ best_guess ผสานรวมข้อมูลการจราจรแบบเรียลไทม์

transit_mode

ระบุรูปแบบการขนส่งที่ต้องการอย่างน้อย 1 รูปแบบ พารามิเตอร์นี้ระบุได้เฉพาะเส้นทางขนส่งสาธารณะเท่านั้น พารามิเตอร์รองรับอาร์กิวเมนต์ต่อไปนี้

  • bus บ่งชี้ว่าเส้นทางที่คำนวณควรเลือกการเดินทางโดยรถประจำทาง
  • subway บ่งชี้ว่าเส้นทางที่คำนวณควรเลือกการเดินทางโดยรถไฟใต้ดิน
  • train บ่งบอกว่าเส้นทางที่คำนวณควรเลือกการเดินทางโดยรถไฟ
  • tram บ่งชี้ว่าเส้นทางที่คำนวณควรเลือกการเดินทางโดยรถรางและรถไฟฟ้ารางเบา
  • rail ระบุว่าเส้นทางที่คำนวณควรเลือกการเดินทางโดยรถไฟ รถราง รถไฟฟ้ารางเบา และรถไฟใต้ดิน ซึ่งเทียบเท่ากับ transit_mode=train|tram|subway

transit_routing_preference

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

  • less_walking บ่งชี้ว่าเส้นทางที่คำนวณควรเน้นการเดินในปริมาณที่จำกัด
  • fewer_transfers บ่งบอกว่าเส้นทางที่คำนวณควรเลือกการเปลี่ยนยานพาหนะจำนวนจำกัด

หน่วย

ระบุระบบหน่วยที่จะใช้เมื่อแสดงผลลัพธ์

หมายเหตุ: การตั้งค่าระบบหน่วยนี้จะมีผลกับข้อความที่แสดงภายในช่องระยะทางเท่านั้น ช่องระยะทางยังมีค่าที่แสดงเป็นเมตรเสมอด้วย

ตัวอย่างคำขอ

ตัวอย่างนี้ใช้พิกัดละติจูด/ลองจิจูดเพื่อระบุพิกัดปลายทาง

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626
  &origins=40.6655101%2C-73.89188969999998
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626&key=YOUR_API_KEY'

ตัวอย่างนี้ใช้ Plus Code เพื่อระบุพิกัดปลายทาง

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=San%20Francisco
  &origins=849VCWC8%2BR9
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=849VCWC8%2BR9&destinations=San%20Francisco&key=YOUR_API_KEY'

ตัวอย่างนี้แสดงคำขอเดียวกันโดยใช้เส้นประกอบที่เข้ารหัส

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A
  &origins=40.6655101%2C-73.89188969999998
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A&key=YOUR_API_KEY'

ข้อมูลการจราจร

ระบบจะใช้ข้อมูลการจราจรเมื่อเป็นไปตามเงื่อนไขทั้งหมดต่อไปนี้ (เงื่อนไขเหล่านี้จำเป็นสำหรับการรับช่อง duration_in_traffic ในการตอบกลับของ Distance Matrix)

คุณสามารถใส่พารามิเตอร์ traffic_model ในคำขอเพื่อระบุสมมติฐานที่จะใช้เมื่อคำนวณเวลาในการจราจรได้ (ไม่บังคับ)

URL ต่อไปนี้จะเริ่มต้นคำขอเมทริกซ์ระยะทางสำหรับระยะทางการขับรถระหว่างบอสตัน รัฐแมสซาชูเซตส์ หรือชาร์ลสทาวน์ รัฐแมสซาชูเซตส์ กับเล็กซิงตัน รัฐแมสซาชูเซตส์ และคอนคอร์ด รัฐแมสซาชูเซตส์ คำขอมีเวลาออกเดินทาง ซึ่งเป็นไปตามข้อกำหนดทั้งหมดในการแสดงผลฟิลด์ duration_in_traffic ในการตอบกลับเมทริกซ์ระยะทาง

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?departure_time=now
  &destinations=Lexington%2CMA%7CConcord%2CMA
  &origins=Boston%2CMA%7CCharlestown%2CMA
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Boston%2CMA%7CCharlestown%2CMA&destinations=Lexington%2CMA%7CConcord%2CMA&departure_time=now&key=YOUR_API_KEY'

JSON

{
  "destination_addresses": ["Lexington, MA, USA", "Concord, MA, USA"],
  "origin_addresses": ["Boston, MA, USA", "Charlestown, Boston, MA, USA"],
  "rows":
    [
      {
        "elements":
          [
            {
              "distance": { "text": "33.3 km", "value": 33253 },
              "duration": { "text": "27 mins", "value": 1620 },
              "duration_in_traffic": { "text": "34 mins", "value": 2019 },
              "status": "OK",
            },
            {
              "distance": { "text": "41.5 km", "value": 41491 },
              "duration": { "text": "33 mins", "value": 1981 },
              "duration_in_traffic": { "text": "39 mins", "value": 2342 },
              "status": "OK",
            },
          ],
      },
      {
        "elements":
          [
            {
              "distance": { "text": "31.1 km", "value": 31100 },
              "duration": { "text": "26 mins", "value": 1543 },
              "duration_in_traffic": { "text": "29 mins", "value": 1754 },
              "status": "OK",
            },
            {
              "distance": { "text": "39.3 km", "value": 39338 },
              "duration": { "text": "32 mins", "value": 1904 },
              "duration_in_traffic": { "text": "35 mins", "value": 2077 },
              "status": "OK",
            },
          ],
      },
    ],
  "status": "OK",
}

XML


 OK
 Boston, MA, USA
 Charlestown, Boston, MA, USA
 Lexington, MA, USA
 Concord, MA, USA
 
  
   OK
   
    1620
    27 mins
   
   
    33253
    33.3 km
   
   
    2018
    34 mins
   
  
  
   OK
   
    1981
    33 mins
   
   
    41491
    41.5 km
   
   
    2342
    39 mins
   
  
 
 
  
   OK
   
    1543
    26 mins
   
   
    31100
    31.1 km
   
   
    1759
    29 mins
   
  
  
   OK
   
    1904
    32 mins
   
   
    39338
    39.3 km
   
   
    2077
    35 mins
   
  
 

ตัวปรับแต่งสถานที่ตั้ง

คุณสามารถใช้ตัวแก้ไขตำแหน่งเพื่อระบุวิธีที่คนขับควรเข้าถึงตำแหน่งหนึ่งๆ โดยใช้ตัวแก้ไข side_of_road เพื่อระบุฝั่งถนนที่จะใช้ หรือระบุทิศทางเพื่อระบุทิศทางการเดินทางที่ถูกต้อง

ระบุว่าเส้นทางที่คำนวณต้องผ่านด้านใดด้านหนึ่งของถนน

เมื่อระบุสถานที่ คุณสามารถขอให้เส้นทางที่คำนวณผ่านด้านใดด้านหนึ่งของถนนที่จุดอ้างอิงให้น้ำหนักได้โดยใช้คำนำหน้า side_of_road: ตัวอย่างเช่น คำขอนี้จะแสดงผลระยะทางสำหรับเส้นทางที่ยาวเพื่อให้ยานพาหนะสิ้นสุดที่ข้างถนนซึ่งจุดอ้างอิงมีความเอนเอียง

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=side_of_road%3A37.7663444%2C-122.4412006
  &origins=37.7680296%2C-122.4375126
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=37.7680296%2C-122.4375126&destinations=side_of_road%3A37.7663444%2C-122.4412006&key=YOUR_API_KEY'

เมื่อใช้ side_of_road: กับเส้นประกอบที่เข้ารหัส ระบบจะใช้ตัวแก้ไขกับทุกตำแหน่งตามเส้นประกอบ ตัวอย่างเช่น ปลายทางทั้ง 2 รายการในคำขอนี้ใช้พารามิเตอร์เดียวกัน

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A
  &origins=San%20Francisco%20City%20hall
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=San%20Francisco%20City%20hall&destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A&key=YOUR_API_KEY'

ตัวแก้ไข side_of_road: ใช้ได้เฉพาะกับข้อจำกัดต่อไปนี้

  • modeพารามิเตอร์การเดินทางคือ driving หรือไม่ได้ระบุ (driving เป็นวิธีการเดินทางเริ่มต้น)

ระบุว่าเส้นทางที่คำนวณควรมีทิศทางที่เฉพาะเจาะจง

เมื่อระบุสถานที่ คุณสามารถขอให้เส้นทางที่คำนวณผ่านสถานที่นั้นในทิศทางที่เฉพาะเจาะจงได้ ส่วนหัวนี้ระบุด้วยคำนำหน้า heading=X: โดยที่ X คือค่าองศาจำนวนเต็มระหว่าง 0 (รวม) ถึง 360 (ไม่รวม) ทิศทาง 0 หมายถึงทิศเหนือ 90 หมายถึงทิศตะวันออก โดยนับตามเข็มนาฬิกา ตัวอย่างเช่น ในคำขอนี้ เส้นทางที่คำนวณจะไปทางตะวันออกจากจุดเริ่มต้น แล้วกลับรถ

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=37.773245%2C-122.469502
  &origins=heading%3D90%3A37.773279%2C-122.468780
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=heading%3D90%3A37.773279%2C-122.468780&destinations=37.773245%2C-122.469502&key=YOUR_API_KEY'

ตัวแก้ไข heading=X: จะใช้ได้เฉพาะกับข้อจำกัดต่อไปนี้

  • modeพารามิเตอร์การเดินทาง คือ driving, bicycling หรือไม่ได้ ระบุ (driving คือโหมดการเดินทางเริ่มต้น)
  • ไม่ได้ระบุตัวแก้ไข side_of_road สำหรับสถานที่ตั้งเดียวกัน
  • โดยระบุตำแหน่งด้วยค่าละติจูด/ลองจิจูด คุณไม่สามารถใช้ heading กับที่อยู่ รหัสสถานที่ หรือเส้นประกอบที่เข้ารหัส

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

ตัวอย่างคำขอ HTTP ด้านล่างแสดงการขอระยะทางและระยะเวลาจากแวนคูเวอร์ รัฐบริติชโคลัมเบีย แคนาดา และจากซีแอตเทิล รัฐวอชิงตัน สหรัฐอเมริกา ไปยังซานฟรานซิสโก รัฐแคลิฟอร์เนีย สหรัฐอเมริกา และไปยังวิกตอเรีย รัฐบริติชโคลัมเบีย แคนาดา

URL

https://maps.googleapis.com/maps/api/distancematrix/json
  ?destinations=San%20Francisco%7CVictoria%20BC
  &language=fr-FR
  &mode=bicycling
  &origins=Vancouver%20BC%7CSeattle
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver%20BC%7CSeattle&destinations=San%20Francisco%7CVictoria%20BC&mode=bicycling&language=fr-FR&key=YOUR_API_KEY'

คำขอนี้จะแสดงผล 4 องค์ประกอบ ได้แก่ ต้นทาง 2 แห่งคูณด้วยปลายทาง 2 แห่ง ดังนี้

แวนคูเวอร์ไปซานฟรานซิสโก แวนคูเวอร์ไปวิกตอเรีย
ซีแอตเทิลไปซานฟรานซิสโก ซีแอตเทิลไปวิกตอเรีย

ระบบจะแสดงผลลัพธ์เป็นแถว โดยแต่ละแถวจะมีต้นทาง 1 แห่งที่จับคู่กับปลายทางแต่ละแห่ง

JSON

{
  "destination_addresses":
    ["San Francisco, Californie, États-Unis", "Victoria, BC, Canada"],
  "origin_addresses":
    ["Vancouver, BC, Canada", "Seattle, Washington, États-Unis"],
  "rows":
    [
      {
        "elements":
          [
            {
              "distance": { "text": "1 712 km", "value": 1711765 },
              "duration": { "text": "3 jours 16 heures", "value": 318119 },
              "status": "OK",
            },
            {
              "distance": { "text": "140 km", "value": 139695 },
              "duration": { "text": "6 heures 49 minutes", "value": 24567 },
              "status": "OK",
            },
          ],
      },
      {
        "elements":
          [
            {
              "distance": { "text": "1 452 km", "value": 1451704 },
              "duration": { "text": "3 jours 2 heures", "value": 266680 },
              "status": "OK",
            },
            {
              "distance": { "text": "146 km", "value": 146500 },
              "duration": { "text": "2 heures 53 minutes", "value": 10374 },
              "status": "OK",
            },
          ],
      },
    ],
  "status": "OK",
}

XML


 OK
 Vancouver, BC, Canada
 Seattle, Washington, États-Unis
 San Francisco, Californie, États-Unis
 Victoria, BC, Canada
 
  
   OK
   
    318119
    3 jours 16 heures
   
   
    1711765
    1 712 km
   
  
  
   OK
   
    24567
    6 heures 49 minutes
   
   
    139695
    140 km
   
  
 
 
  
   OK
   
    266680
    3 jours 2 heures
   
   
    1451704
    1 452 km
   
  
  
   OK
   
    10374
    2 heures 53 minutes
   
   
    146500
    146 km
   
  
 

DistanceMatrixResponse

ช่อง ต้องระบุ ประเภท คำอธิบาย
ต้องระบุ Array<string>

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

ต้องระบุ Array<string>

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

ต้องระบุ Array<DistanceMatrixRow>

อาร์เรย์ขององค์ประกอบ ซึ่งแต่ละองค์ประกอบจะมีองค์ประกอบ status, duration และ distance

ดูข้อมูลเพิ่มเติมได้ที่ DistanceMatrixRow

ต้องระบุ DistanceMatrixStatus

มีสถานะของคำขอ และอาจมีข้อมูลการแก้ไขข้อบกพร่องเพื่อช่วยคุณติดตามสาเหตุที่คำขอล้มเหลว

ดูข้อมูลเพิ่มเติมได้ที่ DistanceMatrixStatus

ไม่บังคับ สตริง

สตริงที่มีข้อความที่มนุษย์อ่านได้ซึ่งแสดงข้อผิดพลาดที่พบขณะประมวลผลคำขอ

DistanceMatrixStatus

รหัสสถานะที่บริการแสดงผล

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

DistanceMatrixRow

ช่อง ต้องระบุ ประเภท คำอธิบาย
ต้องระบุ Array<DistanceMatrixElement>

เมื่อ Distance Matrix API แสดงผลลัพธ์ ระบบจะวางผลลัพธ์ไว้ในอาร์เรย์แถว JSON แม้ว่าจะไม่มีการแสดงผลลัพธ์ (เช่น เมื่อไม่มีต้นทางและ/หรือปลายทาง) ระบบก็ยังคงแสดงอาร์เรย์ที่ว่างเปล่า

แถวจะเรียงตามค่าในพารามิเตอร์ต้นทางของคำขอ แต่ละแถวจะสอดคล้องกับต้นทาง และแต่ละองค์ประกอบภายในแถวนั้นจะสอดคล้องกับการจับคู่ต้นทางกับค่าปลายทาง

อาร์เรย์แถวแต่ละรายการมีรายการองค์ประกอบอย่างน้อย 1 รายการ ซึ่งจะมีข้อมูลเกี่ยวกับการจับคู่ต้นทาง-ปลายทางรายการเดียว

ดูข้อมูลเพิ่มเติมได้ที่ DistanceMatrixElement

DistanceMatrixElement

ช่อง ต้องระบุ ประเภท คำอธิบาย
ต้องระบุ DistanceMatrixElementStatus

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

ดูข้อมูลเพิ่มเติมได้ที่ DistanceMatrixElementStatus

ไม่บังคับ TextValueObject

ระยะทางรวมของเส้นทางนี้ โดยแสดงเป็นเมตร (ค่า) และเป็นข้อความ ค่าที่เป็นข้อความจะใช้ระบบหน่วยที่ระบุด้วยพารามิเตอร์ unit ของคำขอเดิมหรือภูมิภาคของต้นทาง

ดูข้อมูลเพิ่มเติมได้ที่ TextValueObject

ไม่บังคับ TextValueObject

ระยะเวลาที่ใช้ในการเดินทางตามเส้นทางนี้ โดยแสดงเป็นวินาที (ช่องค่า) และเป็นข้อความ การแสดงข้อความจะได้รับการแปลตามพารามิเตอร์ภาษาของคำค้นหา

ดูข้อมูลเพิ่มเติมได้ที่ TextValueObject

ไม่บังคับ TextValueObject

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

  • คำขอมีพารามิเตอร์ departure_time
  • สภาพการจราจรพร้อมใช้งานสำหรับเส้นทางที่ขอ
  • พารามิเตอร์โหมดตั้งค่าเป็น "driving"

ดูข้อมูลเพิ่มเติมได้ที่ TextValueObject

ไม่บังคับ ค่าโดยสาร

หากมี จะมีค่าโดยสารทั้งหมด (นั่นคือ ค่าตั๋วทั้งหมด) ในเส้นทางนี้ ระบบจะแสดงพร็อพเพอร์ตี้นี้สำหรับคำขอขนส่งสาธารณะและสำหรับผู้ให้บริการขนส่งสาธารณะที่มีข้อมูลค่าโดยสารเท่านั้น

ดูข้อมูลเพิ่มเติมได้ที่ค่าโดยสาร

ค่าโดยสาร

ค่าโดยสารรวมสำหรับเส้นทาง

{
  "currency" : "USD",
  "value" : 6,
  "text" : "$6.00"
}
ช่อง ต้องระบุ ประเภท คำอธิบาย
ต้องระบุ สตริง

รหัสสกุลเงิน ISO 4217 ที่ระบุสกุลเงินที่ใช้แสดงจำนวนเงิน

ต้องระบุ สตริง

จำนวนค่าโดยสารทั้งหมดที่จัดรูปแบบเป็นภาษาที่ขอ

ต้องระบุ ตัวเลข

จำนวนค่าโดยสารทั้งหมดในสกุลเงินที่ระบุ

DistanceMatrixElementStatus

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

TextValueObject

ออบเจ็กต์ที่มีค่าตัวเลขและการแสดงข้อความที่จัดรูปแบบ

ช่อง ต้องระบุ ประเภท คำอธิบาย
ต้องระบุ สตริง

ค่าสตริง

ต้องระบุ ตัวเลข

ค่าตัวเลข