บทนำ
คำขอ 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)
-
global code คือรหัสพื้นที่ 4 หลักและรหัสท้องถิ่น 6 หลักขึ้นไป (
-
เส้นประกอบที่เข้ารหัส หรือจะระบุชุดพิกัดที่เข้ารหัสโดยใช้อัลกอริทึมเส้นประกอบที่เข้ารหัสก็ได้ วิธีนี้มีประโยชน์อย่างยิ่งหากคุณมีจุดต้นทางจำนวนมาก เนื่องจาก 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 ในการตอบกลับเมทริกซ์ระยะทาง)
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กับที่อยู่ รหัสสถานที่ หรือเส้นประกอบที่เข้ารหัส
คำขอและการตอบกลับของเมทริกซ์ระยะทาง
ตัวอย่างคำขอ 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 แสดงผลจากคำขอเดิมของคุณ ซึ่งจัดรูปแบบโดยโปรแกรมเข้ารหัสพิกัดภูมิศาสตร์และแปลตามพารามิเตอร์ภาษาที่ส่งมาพร้อมกับคำขอ เนื้อหานี้มีไว้เพื่อให้อ่านตามที่เป็นอยู่ อย่าแยกวิเคราะห์ที่อยู่ซึ่งจัดรูปแบบแล้วโดยใช้โปรแกรม |
|
ต้องระบุ | 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บ่งชี้ว่าบริการปฏิเสธการใช้บริการเมทริกซ์ระยะทางโดยแอปพลิเคชันของคุณ -
UNKNOWN_ERRORบ่งชี้ว่าไม่สามารถประมวลผลคำขอเมทริกซ์ระยะทางได้เนื่องจากข้อผิดพลาดเกี่ยวกับเซิร์ฟเวอร์ คำขออาจสำเร็จหากคุณลองอีกครั้ง
DistanceMatrixRow
| ช่อง | ต้องระบุ | ประเภท | คำอธิบาย |
|---|---|---|---|
|
ต้องระบุ | Array<DistanceMatrixElement> |
เมื่อ Distance Matrix API แสดงผลลัพธ์ ระบบจะวางผลลัพธ์ไว้ในอาร์เรย์แถว JSON แม้ว่าจะไม่มีการแสดงผลลัพธ์ (เช่น เมื่อไม่มีต้นทางและ/หรือปลายทาง) ระบบก็ยังคงแสดงอาร์เรย์ที่ว่างเปล่า แถวจะเรียงตามค่าในพารามิเตอร์ต้นทางของคำขอ แต่ละแถวจะสอดคล้องกับต้นทาง และแต่ละองค์ประกอบภายในแถวนั้นจะสอดคล้องกับการจับคู่ต้นทางกับค่าปลายทาง อาร์เรย์แถวแต่ละรายการมีรายการองค์ประกอบอย่างน้อย 1 รายการ ซึ่งจะมีข้อมูลเกี่ยวกับการจับคู่ต้นทาง-ปลายทางรายการเดียว ดูข้อมูลเพิ่มเติมได้ที่ DistanceMatrixElement |
DistanceMatrixElement
| ช่อง | ต้องระบุ | ประเภท | คำอธิบาย |
|---|---|---|---|
|
ต้องระบุ | DistanceMatrixElementStatus |
สถานะขององค์ประกอบ ดูข้อมูลเพิ่มเติมได้ที่ DistanceMatrixElementStatus |
|
ไม่บังคับ | TextValueObject |
ระยะทางรวมของเส้นทางนี้ โดยแสดงเป็นเมตร (ค่า) และเป็นข้อความ ค่าที่เป็นข้อความจะใช้ระบบหน่วยที่ระบุด้วยพารามิเตอร์ unit ของคำขอเดิมหรือภูมิภาคของต้นทาง ดูข้อมูลเพิ่มเติมได้ที่ 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
ออบเจ็กต์ที่มีค่าตัวเลขและการแสดงข้อความที่จัดรูปแบบแล้ว
| ช่อง | ต้องระบุ | ประเภท | คำอธิบาย |
|---|---|---|---|
|
ต้องระบุ | สตริง |
ค่าสตริง |
|
ต้องระบุ | ตัวเลข |
ค่าตัวเลข |