การขอเส้นทางผ่าน Directions API (เดิม)

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

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

สำหรับการคำนวณเส้นทางที่ตอบสนองต่อข้อมูลที่ผู้ใช้ป้อนแบบเรียลไทม์ (เช่น ภายในองค์ประกอบอินเทอร์เฟซผู้ใช้) คุณสามารถใช้ Directions API (เดิม) หรือหากใช้ Maps JavaScript API ให้ใช้บริการเส้นทาง สำหรับการใช้งานฝั่งเซิร์ฟเวอร์ คุณสามารถใช้ไคลเอ็นต์ Java, ไคลเอ็นต์ Python, ไคลเอ็นต์ Go และไคลเอ็นต์ Node.js สำหรับบริการ Google Maps

Directions API (เดิม) ช่วยให้คุณทำสิ่งต่อไปนี้ได้

  • ค้นหาเส้นทางสำหรับการเดินทางหลายรูปแบบ เช่น ขนส่งสาธารณะ การขับรถ การเดิน หรือการปั่นจักรยาน
  • แสดงเส้นทางแบบหลายส่วนโดยใช้ชุดจุดอ้างอิง
  • ระบุต้นทาง ปลายทาง และจุดอ้างอิงเป็นสตริงข้อความ (เช่น "Chicago, IL" หรือ "Darwin, NT, Australia") เป็นรหัสสถานที่ หรือเป็นพิกัดละติจูด/ลองจิจูด

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

ก่อนเริ่มต้น

ก่อนเริ่มใช้ Directions API (เดิม) คุณต้องมีโปรเจ็กต์ที่มีบัญชีสำหรับการเรียกเก็บเงินและเปิดใช้ Directions API (เดิม) ดูข้อมูลเพิ่มเติมได้ที่ตั้งค่าในคอนโซล Cloud

สร้างคำขอ Directions API (เดิม)

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

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

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

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

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

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

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

ปลายทาง

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

origin

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

  • รหัสสถานที่ต้องขึ้นต้นด้วย place_id: คุณสามารถดึงรหัสสถานที่จาก Geocoding API และ Places API (รวมถึง Place Autocomplete) ดูตัวอย่างการใช้รหัสสถานที่จาก Place Autocomplete ได้ที่การเติมข้อความอัตโนมัติสำหรับสถานที่และเส้นทาง ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ได้ที่ภาพรวมของรหัสสถานที่

    origin=place_id:ChIJ3S-JXmauEmsRUcIaWtf4MzE
    
  • หากคุณส่งที่อยู่ บริการเส้นทางจะเข้ารหัสพิกัดภูมิศาสตร์สตริงและแปลงเป็นพิกัดละติจูด/ลองจิจูดเพื่อคำนวณเส้นทาง พิกัดนี้อาจแตกต่างจากพิกัดที่ Geocoding API แสดงผล เช่น ทางเข้าอาคารแทนที่จะเป็นศูนย์กลางของอาคาร

    origin=24+Sussex+Drive+Ottawa+ON
    

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

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

    origin=41.43206,-81.38992
    
  • Plus Code ต้องจัดรูปแบบเป็นรหัสสากลหรือรหัสผสม จัดรูปแบบ Plus Code ดังที่แสดงที่นี่ (เครื่องหมายบวกจะได้รับการกำหนดเป็นอักขระหลีกของ URL เป็น %2B และการเว้นวรรคจะได้รับการกำหนดเป็นอักขระหลีกของ URL เป็น %20)

    • รหัสสากล คือรหัสพื้นที่ 4 หลักและรหัสท้องถิ่น 6 หลักขึ้นไป (849VCWC8+R9 คือ 849VCWC8%2BR9)
    • รหัสผสมคือรหัสท้องถิ่น 6 หลักขึ้นไปที่มีการระบุตำแหน่งชัดเจน (CWC8+R9 Mountain View, CA, USA คือ CWC8%2BR9%20Mountain%20View%20CA%20USA)
หมายเหตุ: โปรดใช้รหัสสถานที่เมื่อเป็นไปได้เพื่อประสิทธิภาพและความแม่นยำ รหัสเหล่านี้มีความชัดเจนและไม่ซ้ำกัน เช่น คู่ค่าละติจูด/ลองจิจูด และให้ประโยชน์ในการเข้ารหัสพิกัดภูมิศาสตร์สำหรับการกำหนดเส้นทาง เช่น จุดเข้าถึงและตัวแปรการจราจร รหัสไม่จำเป็นต้องใช้บริการเพื่อทำการค้นหาหรือคำขอระดับกลางสำหรับรายละเอียดสถานที่ ซึ่งต่างจากที่อยู่ ดังนั้นประสิทธิภาพจึงดีกว่า

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

ตัวเลือก

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

arrival_time

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

หลีกเลี่ยง

ระบุว่าเส้นทางที่คำนวณควรหลีกเลี่ยงลักษณะที่ระบุ พารามิเตอร์นี้รองรับอาร์กิวเมนต์ต่อไปนี้

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

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

ภาษา

ภาษาที่จะแสดงผลลัพธ์ โปรดทราบว่าการตั้งค่านี้จะมีผลกับที่อยู่ที่มีการเข้ารหัสพิกัดภูมิศาสตร์ใน start_address และ end_address, ข้อความที่แปลแล้วในช่อง distance และ duration (ในส่วนและขั้นตอน) และคำอธิบายการบังคับทิศทางใน html_instructions เท่านั้น แต่จะไม่มีผลกับชื่อและที่อยู่ใน html_instructions ซึ่งจัดรูปแบบเป็นภาษาและสคริปต์ท้องถิ่น

  • ดูรายการภาษาที่รองรับ 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 บ่งบอกว่าเส้นทางที่คำนวณควรเลือกการเปลี่ยนยานพาหนะจำนวนจำกัด

หน่วย

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

ผลลัพธ์เส้นทางมีข้อความภายในช่องระยะทางที่อาจแสดงต่อผู้ใช้เพื่อระบุระยะทางของ "ขั้นตอน" หนึ่งๆ ของเส้นทาง โดยค่าเริ่มต้น ข้อความนี้จะใช้ระบบหน่วยของประเทศหรือภูมิภาคต้นทาง

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

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

จุดอ้างอิง

ข้อควรระวัง: คำขอที่ใช้จุดอ้างอิงมากกว่า 10 จุด (ระหว่าง 11 ถึง 25 จุด) หรือการเพิ่มประสิทธิภาพจุดอ้างอิงจะเรียกเก็บเงินในอัตราที่สูงขึ้น ดูข้อมูลเพิ่มเติมเกี่ยวกับการเรียกเก็บเงินสำหรับผลิตภัณฑ์ Google Maps Platform

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

  • หากส่งรหัสสถานที่ คุณต้องใส่ place_id: ไว้ข้างหน้า คุณสามารถดึงข้อมูลรหัสสถานที่จาก Geocoding API และ Places API (รวมถึง Place Autocomplete) ดูตัวอย่างการใช้รหัสสถานที่จาก Place Autocomplete ได้ที่การเติมข้อความอัตโนมัติสำหรับสถานที่และเส้นทาง ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ได้ที่ภาพรวมรหัสสถานที่
    ใช้รหัสสถานที่เมื่อเป็นไปได้เพื่อประสิทธิภาพและความแม่นยำ รหัสเหล่านี้มีความชัดเจนและไม่ซ้ำกัน เช่น คู่ค่าละติจูด/ลองจิจูด และให้ประโยชน์ในการเข้ารหัสพิกัดภูมิศาสตร์สำหรับการกำหนดเส้นทาง เช่น จุดเข้าถึงและตัวแปรการจราจร รหัสไม่จำเป็นต้องใช้บริการเพื่อทำการค้นหาหรือคำขอระดับกลางสำหรับรายละเอียดสถานที่เหมือนกับที่อยู่ จึงมีประสิทธิภาพดีกว่า
  • หากคุณส่งพิกัดละติจูด/ลองจิจูด ค่าดังกล่าวจะส่งไปยังเซิร์ฟเวอร์ฟรอนท์เอนด์โดยตรงเพื่อคำนวณเส้นทางโดยไม่ต้องเข้ารหัสพิกัดภูมิศาสตร์ จุดจะถูกจัดให้ตรงกับถนนและอาจไม่ให้ความแม่นยำที่แอปของคุณต้องการ ใช้พิกัดเมื่อคุณมั่นใจว่าค่าดังกล่าวระบุจุดที่แอปต้องการสำหรับการกำหนดเส้นทางอย่างแท้จริง โดยไม่คำนึงถึงจุดเข้าถึงที่เป็นไปได้หรือรายละเอียดการเข้ารหัสพิกัดภูมิศาสตร์เพิ่มเติม ตรวจสอบว่าค่าละติจูดและลองจิจูดคั่นด้วยคอมมา (%2C) ไม่ใช่เว้นวรรค (%20)
  • หากคุณส่งที่อยู่ บริการเส้นทางจะเข้ารหัสพิกัดภูมิศาสตร์สตริงและแปลงเป็นพิกัดละติจูด/ลองจิจูดเพื่อคำนวณเส้นทาง หากค่าที่อยู่ไม่ชัดเจน ค่าดังกล่าวอาจทำให้เกิดการค้นหาเพื่อแยกความแตกต่างจากที่อยู่ที่คล้ายกัน เช่น "1st Street" อาจเป็นค่าที่สมบูรณ์หรือค่าบางส่วนสำหรับ "1st street NE" หรือ "1st St SE" ผลลัพธ์นี้อาจแตกต่างจากผลลัพธ์ที่ Geocoding API แสดงผล คุณหลีกเลี่ยงการตีความผิดที่อาจเกิดขึ้นได้โดยใช้รหัสสถานที่
  • หรือจะระบุชุดจุดที่เข้ารหัสโดยใช้อัลกอริทึมเส้นประกอบที่เข้ารหัสก็ได้ คุณจะพบว่าชุดที่เข้ารหัสมีประโยชน์สำหรับจุดอ้างอิงจำนวนมาก เนื่องจาก URL จะสั้นลงอย่างมาก เว็บเซอร์วิสทั้งหมดมีขีดจำกัด URL อยู่ที่ 16,384 อักขระ
    • เส้นประกอบที่เข้ารหัสต้องขึ้นต้นด้วย enc: และตามด้วยโคลอน (:) เช่น waypoints=enc:gfo}EtohhU:
    • นอกจากนี้ คุณยังรวมเส้นประกอบที่เข้ารหัสหลายเส้นได้โดยคั่นด้วยอักขระไปป์ (|) เช่น waypoints=via:enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:| via:enc:udymA{~bxM:

กำหนดเส้นทางด้วยจุดแวะพักและจุดอ้างอิงที่ผ่าน

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

หากต้องการกำหนดเส้นทางโดยใช้จุดอ้างอิงโดยไม่เพิ่มจุดแวะพัก ให้เพิ่มคำนำหน้า via: ลงในจุดอ้างอิง จุดอ้างอิงที่มีคำนำหน้าเป็น via: จะไม่เพิ่มรายการลงในอาร์เรย์ legs แต่จะกำหนดเส้นทางการเดินทางผ่านจุดอ้างอิง

URL ต่อไปนี้จะแก้ไขคำขอก่อนหน้าเพื่อให้เส้นทางผ่านเล็กซิงตันโดยไม่หยุดพัก

https://maps.googleapis.com/maps/api/directions/json?
origin=Boston,MA&destination=Concord,MA
&waypoints=Charlestown,MA|via:Lexington,MA

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

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

เพิ่มประสิทธิภาพจุดอ้างอิง

โดยค่าเริ่มต้น บริการเส้นทางจะคำนวณเส้นทางผ่านจุดอ้างอิงที่ระบุตามลำดับที่ระบุ คุณสามารถส่ง optimize:true เป็นอาร์กิวเมนต์แรกภายในพารามิเตอร์จุดอ้างอิง (ไม่บังคับ) เพื่ออนุญาตให้บริการเส้นทางเพิ่มประสิทธิภาพเส้นทางที่ระบุโดยจัดเรียงจุดอ้างอิงใหม่ตามลำดับที่มีประสิทธิภาพมากขึ้น (การเพิ่มประสิทธิภาพนี้เป็นการประยุกต์ใช้ปัญหาพนักงานขายเดินทาง) ระยะเวลาเดินทางเป็นปัจจัยหลักที่ได้รับการเพิ่มประสิทธิภาพ แต่ปัจจัยอื่นๆ เช่น ระยะทาง จำนวนการเลี้ยว และอื่นๆ อีกมากมายอาจได้รับการพิจารณาเมื่อตัดสินใจว่าเส้นทางใดมีประสิทธิภาพมากที่สุด จุดอ้างอิงทั้งหมดต้องเป็นจุดแวะพักเพื่อให้ Directions Service เพิ่มประสิทธิภาพเส้นทางได้

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

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

https://maps.googleapis.com/maps/api/directions/json?
origin=Adelaide,SA&destination=Adelaide,SA
&waypoints=optimize:true|Barossa+Valley,SA|Clare,SA|Connawarra,SA|McLaren+Vale,SA

การตรวจสอบเส้นทางที่คำนวณจะระบุว่าการคำนวณใช้จุดอ้างอิงตามลำดับจุดอ้างอิงต่อไปนี้

"waypoint_order": [ 3, 2, 0, 1 ]
ข้อควรระวัง: คำขอที่ใช้การเพิ่มประสิทธิภาพจุดอ้างอิงจะเรียกเก็บเงินในอัตราที่สูงกว่า ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเรียกเก็บเงินสำหรับผลิตภัณฑ์ Google Maps Platform

ขั้นตอนถัดไป

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

การตอบกลับเส้นทาง