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

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

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

สำหรับการคำนวณเส้นทางที่ตอบสนองต่อข้อมูลที่ผู้ใช้ป้อนแบบเรียลไทม์ (เช่น ภายในองค์ประกอบอินเทอร์เฟซผู้ใช้) คุณสามารถใช้ Directions API (เดิม) หรือหากใช้ Maps JavaScript API ให้ใช้บริการเส้นทาง สำหรับการใช้งานฝั่งเซิร์ฟเวอร์ คุณสามารถใช้ Java Client, Python Client, Go Client และ Node.js Client สำหรับบริการ 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 (ในส่วน Leg และ Step) และคำอธิบายการบังคับทิศทางในช่อง 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 เป็นอาร์กิวเมนต์แรกภายในพารามิเตอร์จุดอ้างอิง (ไม่บังคับ) เพื่ออนุญาตให้บริการเส้นทางเพิ่มประสิทธิภาพเส้นทางที่ระบุโดยจัดเรียงจุดอ้างอิงใหม่ตามลำดับที่มีประสิทธิภาพมากขึ้น (การเพิ่มประสิทธิภาพนี้เป็นการประยุกต์ใช้ปัญหาพนักงานขายเดินทาง) ระยะเวลาเดินทางเป็นปัจจัยหลักที่ได้รับการเพิ่มประสิทธิภาพ แต่ปัจจัยอื่นๆ เช่น ระยะทาง จำนวนการเลี้ยว และอื่นๆ อีกมากมายอาจได้รับการพิจารณาเมื่อตัดสินใจว่าเส้นทางใดมีประสิทธิภาพมากที่สุด จุดอ้างอิงทั้งหมดต้องเป็นจุดแวะพักเพื่อให้บริการเส้นทางเพิ่มประสิทธิภาพเส้นทางได้

    หากคุณสั่งให้บริการเส้นทางเพิ่มประสิทธิภาพลำดับของจุดอ้างอิง ระบบจะแสดงผลลำดับของจุดอ้างอิงในช่อง 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

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

ตัวอย่างเส้นทาง

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