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

  • origins

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

  • หลีกเลี่ยง

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

    • 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 เป็นเวลาปัจจุบัน หรือเวลาในอนาคต ต้องไม่ใช่วันที่ที่ผ่านมาแล้ว
    หมายเหตุ: หากไม่ได้ระบุเวลาออกเดินทาง การเลือกเส้นทางและระยะเวลาจะอิงตามเครือข่ายถนนและสภาพการจราจรโดยเฉลี่ยที่ไม่ขึ้นอยู่กับเวลา ผลลัพธ์สำหรับคำขอหนึ่งๆ อาจแตกต่างกันไปเมื่อเวลาผ่านไปเนื่องจากการเปลี่ยนแปลงในเครือข่ายถนน สภาพการจราจรโดยเฉลี่ยที่อัปเดตแล้ว และลักษณะการกระจายของบริการ ผลลัพธ์อาจแตกต่างกันไปในเส้นทางที่เกือบจะเทียบเท่ากันได้ทุกเมื่อหรือทุกความถี่
    หมายเหตุ: คำขอ Distance Matrix ที่ระบุ departure_time เมื่อ mode=driving จะจำกัดไว้ที่องค์ประกอบสูงสุด 100 รายการต่อคำขอ จำนวนต้นทางคูณจำนวนปลายทางจะกำหนดจำนวนองค์ประกอบ
  • ภาษา

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

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

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 ในการตอบกลับเมทริกซ์ระยะทาง)

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

คุณเลือกที่จะรวมพารามิเตอร์ 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 กับที่อยู่ รหัสสถานที่ หรือเส้นหลายส่วนที่เข้ารหัส

คำขอและการตอบกลับของ 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
    1712 km
   
  
  
   OK
   
    24567
    6 heures 49 minutes
   
   
    139695
    140 km
   
  
 
 
  
   OK
   
    266680
    3 jours 2 heures
   
   
    1451704
    1452 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 ขาดหายไปหรือไม่ถูกต้อง
    • บัญชีของคุณไม่ได้เปิดใช้การเรียกเก็บเงิน
    • มีการใช้งานเกินขีดจำกัดการใช้งานที่กำหนดเอง
    • วิธีการชำระเงินที่ระบุใช้ไม่ได้อีกต่อไป (เช่น บัตรเครดิตหมดอายุ)
  • OVER_QUERY_LIMIT แสดงว่าบริการได้รับคำขอจากแอปพลิเคชันของคุณมากเกินไปภายในระยะเวลาที่อนุญาต
  • REQUEST_DENIED แสดงว่าบริการปฏิเสธการใช้บริการ Distance Matrix โดยแอปพลิเคชันของคุณ
  • UNKNOWN_ERROR แสดงว่าประมวลผลคำขอเมทริกซ์ระยะทางไม่ได้เนื่องจากข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ คำขออาจสำเร็จหากคุณลองอีกครั้ง

DistanceMatrixRow

ช่อง ต้องระบุ ประเภท คำอธิบาย
ต้องระบุ อาร์เรย์<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

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

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

ค่าสตริง

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

ค่าตัวเลข