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

  • ต้นกำเนิด

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

    • รหัสสถานที่: หากระบุรหัสสถานที่ คุณต้องนำหน้าด้วย place_id:
    • ที่อยู่: หากส่งที่อยู่ บริการจะเข้ารหัสภูมิศาสตร์ สตริงและแปลงเป็นพิกัดละติจูด/ลองจิจูดเพื่อ คำนวณระยะทาง พิกัดนี้อาจแตกต่างจากพิกัดที่ Geocoding API แสดง เช่น ทางเข้าอาคารแทนที่จะเป็นจุดศูนย์กลาง ของอาคาร
      หมายเหตุ: เราขอแนะนำให้ใช้รหัสสถานที่มากกว่าการใช้ที่อยู่หรือพิกัดละติจูด/ลองจิจูด การใช้พิกัดจะส่งผลให้ ระบบปักหมุดไปยังถนนที่ใกล้กับพิกัดเหล่านั้นมากที่สุดเสมอ ซึ่งอาจไม่ใช่จุดเข้าถึงที่พัก หรือแม้แต่ถนนที่ จะนำไปสู่จุดหมายปลายทางได้อย่างรวดเร็วหรือปลอดภัย การใช้ที่อยู่จะแสดงระยะทางไปยังศูนย์กลางของอาคาร ไม่ใช่ ทางเข้าอาคาร
    • พิกัด: หากส่งพิกัดละติจูด/ลองจิจูด ระบบจะจัดพอดีกับพิกัดดังกล่าวบนถนนที่ใกล้ที่สุด เราขอแนะนำให้ส่งรหัสสถานที่ หากส่งพิกัด โปรดตรวจสอบว่าไม่มีการเว้นวรรค ระหว่างค่าละติจูดและลองจิจูด
    • Plus Codes ต้องจัดรูปแบบเป็นรหัสสากลหรือรหัสผสม จัดรูปแบบ Plus Codes ดังที่แสดงที่นี่ (เครื่องหมายบวกจะ หลีกเลี่ยง URL เป็น %2B และการเว้นวรรคจะหลีกเลี่ยง URL เป็น %20)
      • รหัสสากล คือรหัสพื้นที่ 4 หลักและรหัสท้องถิ่น 6 หลักขึ้นไป (849VCWC8+R9 จะได้รับการเข้ารหัสเป็น 849VCWC8%2BR9)
      • รหัสผสมคือรหัสท้องถิ่น 6 หลักขึ้นไป ที่มีการระบุตำแหน่งชัดเจน (CWC8+R9 Mountain View, CA, USA จะได้รับการเข้ารหัสเป็น CWC8%2BR9%20Mountain%20View%20CA%20USA)
    • Polyline ที่เข้ารหัส หรือคุณจะระบุชุดพิกัดที่เข้ารหัสโดยใช้อัลกอริทึม Polyline ที่เข้ารหัสก็ได้ ซึ่งจะมีประโยชน์อย่างยิ่งหากคุณมีจุดต้นทางจำนวนมาก เนื่องจาก URL จะสั้นลงอย่างมากเมื่อใช้เส้นประกอบที่เข้ารหัส
      • เส้นหลายเส้นที่เข้ารหัสต้องขึ้นต้นด้วย enc: และตามด้วยเครื่องหมายโคลอน : เช่น origins=enc:gfo}EtohhU:
      • นอกจากนี้ คุณยังใส่ Polyline ที่เข้ารหัสหลายรายการได้โดยคั่นด้วย อักขระไปป์ | เช่น
        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=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 หากไม่ได้ระบุเวลาใดเวลาหนึ่ง departure_time ค่าเริ่มต้น จะเป็นเวลาปัจจุบัน (นั่นคือ เวลาออกเดินทางจะเป็นเวลาปัจจุบันโดยค่าเริ่มต้น)
    • สำหรับคำขอที่โหมดการเดินทางคือการขับรถ คุณสามารถระบุ departure_time เพื่อรับเส้นทางและระยะเวลาการเดินทาง (ฟิลด์การตอบกลับ: duration_in_traffic) ที่พิจารณาสภาพการจราจร ได้ ต้องตั้งค่า departure_time เป็นเวลาปัจจุบัน หรือเวลาในอนาคต โดยต้องไม่ใช่วันที่ผ่านมาแล้ว
    หมายเหตุ: หากไม่ได้ระบุเวลาออกเดินทาง การเลือกเส้นทางและระยะเวลาจะอิงตามเครือข่ายถนนและสภาพการจราจรโดยเฉลี่ยที่ไม่ขึ้นอยู่กับเวลา ผลลัพธ์สำหรับคำขอหนึ่งๆ อาจแตกต่างกันไปเมื่อเวลาผ่านไปเนื่องจากการเปลี่ยนแปลงในเครือข่ายถนน สภาพการจราจรโดยเฉลี่ยที่อัปเดตแล้ว และลักษณะการกระจายของบริการ ผลลัพธ์อาจแตกต่างกันไปในเส้นทางที่เกือบจะเทียบเท่ากันได้ทุกเวลาหรือความถี่
    หมายเหตุ: คำขอเมทริกซ์ระยะทางที่ระบุ departure_time when mode=driving จะจำกัดไว้ที่องค์ประกอบสูงสุด 100 รายการต่อคำขอ จำนวนต้นทางคูณด้วยจำนวนปลายทางจะกำหนดจำนวน องค์ประกอบ
  • ภาษา

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

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

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

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

    รหัสภูมิภาคที่ระบุเป็นค่าccTLD ("โดเมนระดับบนสุด") 2 อักขระ รหัส 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 จะให้การคาดการณ์ที่มีประโยชน์มากที่สุด สำหรับ Use Case ส่วนใหญ่ เป็นไปได้ที่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'

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

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'

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

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)

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

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

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

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: ใช้ได้เฉพาะกับข้อจำกัดต่อไปนี้

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

เมื่อระบุสถานที่ตั้ง คุณสามารถขอให้เส้นทางที่คำนวณแล้วผ่าน สถานที่ตั้งในทิศทางที่เฉพาะเจาะจงได้ ส่วนหัวนี้ระบุด้วยคำนำหน้า 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 กับที่อยู่ รหัสสถานที่ หรือเส้นหลายจุดที่เข้ารหัส

คำขอและการตอบกลับของ Distance Matrix

ตัวอย่างคำขอ 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 แสดงผลจากคำขอเดิม ของคุณ โดยจะได้รับการจัดรูปแบบโดย Geocoder และแปลเป็นภาษาท้องถิ่นตาม พารามิเตอร์ภาษาที่ส่งพร้อมกับคำขอ เนื้อหานี้มีไว้เพื่ออ่านตามที่แสดงอยู่ ห้ามแยกวิเคราะห์ที่อยู่ที่จัดรูปแบบแล้วโดยใช้โปรแกรม

ต้องระบุ 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 แสดงว่าบริการปฏิเสธการใช้บริการ Distance Matrix โดยแอปพลิเคชันของคุณ
  • UNKNOWN_ERROR แสดงว่าประมวลผลคำขอเมทริกซ์ระยะทางไม่ได้เนื่องจากข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ คำขออาจสำเร็จหากคุณลองอีกครั้ง

DistanceMatrixRow

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

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

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

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

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

DistanceMatrixElement

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

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

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

ไม่บังคับ TextValueObject

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

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

ไม่บังคับ TextValueObject

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

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

ไม่บังคับ TextValueObject

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

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

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

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

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

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

ค่าโดยสาร

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

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

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

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

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

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

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

DistanceMatrixElementStatus

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

TextValueObject

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

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

ค่าสตริง

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

ค่าตัวเลข