บทนำ
คำขอ 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)
-
รหัสสากล คือรหัสพื้นที่ 4 หลักและรหัสท้องถิ่น 6 หลักขึ้นไป (
-
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_timewhenmode=drivingจะจำกัดไว้ที่องค์ประกอบสูงสุด 100 รายการต่อคำขอ จำนวนต้นทางคูณด้วยจำนวนปลายทางจะกำหนดจำนวน องค์ประกอบ -
สำหรับคำขอที่โหมดการเดินทางเป็นขนส่งสาธารณะ คุณจะระบุตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้ได้โดยไม่บังคับ
-
ภาษา
ภาษาที่จะใช้แสดงผลลัพธ์
- ดูรายการภาษาที่รองรับ Google มักจะอัปเดตภาษาที่รองรับอยู่เสมอ ดังนั้นรายการนี้อาจไม่ ครอบคลุมทั้งหมด
-
หากไม่ได้ระบุ
languageAPI จะพยายามใช้ภาษาที่ต้องการตามที่ระบุไว้ในส่วนหัว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: ใช้ได้เฉพาะกับข้อจำกัดต่อไปนี้
- พารามิเตอร์
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 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 แสดงผลจากคำขอเดิม
ของคุณ เช่นเดียวกับ |
|
ต้องระบุ | Array<string> |
อาร์เรย์ของที่อยู่ที่ API แสดงผลจากคำขอเดิม ของคุณ โดยจะได้รับการจัดรูปแบบโดย Geocoder และแปลเป็นภาษาท้องถิ่นตาม พารามิเตอร์ภาษาที่ส่งพร้อมกับคำขอ เนื้อหานี้มีไว้เพื่ออ่านตามที่แสดงอยู่ ห้ามแยกวิเคราะห์ที่อยู่ที่จัดรูปแบบแล้วโดยใช้โปรแกรม |
|
ต้องระบุ | Array<DistanceMatrixRow> |
อาร์เรย์ขององค์ประกอบ ซึ่งแต่ละองค์ประกอบจะมี
ดูข้อมูลเพิ่มเติมได้ที่ 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 |
ระยะเวลาที่ใช้ในการเดินทางในเส้นทางนี้ โดยอิงตามสภาพการจราจรปัจจุบัน
และที่ผ่านมา ดู
ดูข้อมูลเพิ่มเติมได้ที่ TextValueObject |
|
ไม่บังคับ | ค่าโดยสาร |
หากมี จะมีค่าโดยสารทั้งหมด (นั่นคือค่าตั๋วทั้งหมด) ในเส้นทางนี้ ระบบจะแสดงพร็อพเพอร์ตี้นี้สําหรับคําขอการขนส่งสาธารณะเท่านั้น และสําหรับผู้ให้บริการขนส่งสาธารณะที่มีข้อมูลค่าโดยสารเท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ค่าโดยสาร |
ค่าโดยสาร
ค่าโดยสารทั้งหมดสำหรับเส้นทาง
{
"currency" : "USD",
"value" : 6,
"text" : "$6.00"
}
| ช่อง | ต้องระบุ | ประเภท | คำอธิบาย |
|---|---|---|---|
|
ต้องระบุ | สตริง |
รหัสสกุลเงิน ISO 4217 ที่ระบุสกุลเงินที่แสดงจำนวนเงิน |
|
ต้องระบุ | สตริง |
จำนวนค่าโดยสารทั้งหมดที่จัดรูปแบบในภาษาที่ขอ |
|
ต้องระบุ | ตัวเลข |
จำนวนค่าโดยสารทั้งหมดในสกุลเงินที่ระบุ |
DistanceMatrixElementStatus
OKระบุว่าคำตอบมีผลลัพธ์ที่ถูกต้อง-
NOT_FOUNDแสดงว่าระบบระบุพิกัดต้นทางและ/หรือปลายทางของ การจับคู่นี้ไม่ได้ -
ZERO_RESULTSแสดงว่าไม่พบเส้นทางระหว่างต้นทางกับจุดหมาย -
MAX_ROUTE_LENGTH_EXCEEDEDแสดงว่าเส้นทางที่ขอ ยาวเกินไปและประมวลผลไม่ได้
TextValueObject
ออบเจ็กต์ที่มีค่าตัวเลขและการแสดงข้อความที่จัดรูปแบบ
| ช่อง | ต้องระบุ | ประเภท | คำอธิบาย |
|---|---|---|---|
|
ต้องระบุ | สตริง |
ค่าสตริง |
|
ต้องระบุ | ตัวเลข |
ค่าตัวเลข |