หากต้องการคำนวณเส้นทาง คุณต้องระบุตำแหน่งต้นทางและปลายทางของเส้นทางเป็นอย่างน้อย คุณกำหนดตำแหน่งเหล่านี้เป็นจุดแวะพักบนเส้นทางได้
นอกจากต้นทางและปลายทางแล้ว คุณยังระบุจุดแวะพักประเภทต่างๆ และวิธีจัดการจุดแวะพักสำหรับเส้นทางได้ด้วย ดูข้อมูลและตัวอย่างเพิ่มเติมได้ที่หัวข้อต่อไปนี้
- ระบุทิศทางของยานพาหนะและด้านข้างถนน
- ระบุจุดแวะพักกลางทาง
- ตั้งจุดแวะระหว่างทาง
- กำหนดจุดที่เส้นทางจะผ่าน
- เพิ่มประสิทธิภาพลําดับของจุดแวะพักในเส้นทาง
ระบุสถานที่สำหรับเส้นทาง
คุณแสดงสถานที่ตั้งได้โดยสร้างออบเจ็กต์ Waypoint (REST) หรือ Waypoint (gRPC) ในการกำหนดจุดสังเกต คุณสามารถระบุตำแหน่งด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- รหัสสถานที่ (แนะนำ)
- พิกัดละติจูด/ลองจิจูด
- สตริงที่อยู่ ("ชิคาโก, รัฐอิลลินอยส์" หรือ "ดาร์วิน, รัฐนอร์เทิร์นเทร์ริทอรี, ออสเตรเลีย")
- Plus Code
คุณสามารถระบุตำแหน่งของจุดแวะพักทั้งหมดในคำขอด้วยวิธีเดียวกัน หรือจะผสมผสานกันก็ได้ เช่น คุณสามารถใช้พิกัดละติจูด/ลองจิจูดสำหรับจุดเริ่มต้น และสามารถใช้รหัสสถานที่สำหรับจุดหมาย
ใช้รหัสสถานที่แทนพิกัดละติจูด/ลองจิจูดหรือสตริงที่อยู่เพื่อให้มีประสิทธิภาพและถูกต้อง รหัสสถานที่มีความชัดเจนและมีประโยชน์ในการจับคู่พิกัดภูมิศาสตร์สำหรับการกำหนดเส้นทาง เช่น จุดเข้าใช้งานและตัวแปรการจราจร ซึ่งช่วยหลีกเลี่ยงสถานการณ์ต่อไปนี้ที่อาจเกิดขึ้นจากวิธีอื่นๆ ในการระบุตำแหน่ง
- การใช้พิกัดละติจูด/ลองจิจูดอาจส่งผลให้ระบบจับตำแหน่งไว้ที่ถนนที่อยู่ใกล้กับพิกัดเหล่านั้นที่สุด ซึ่งอาจไม่ใช่จุดเข้าใช้งานของที่พัก หรือแม้แต่ถนนที่นำไปยังจุดหมายได้อย่างรวดเร็วหรือปลอดภัย
- สตริงที่อยู่ต้องได้รับการจับคู่พิกัดภูมิศาสตร์โดย Routes API ก่อนเพื่อแปลงเป็นพิกัดละติจูด/ลองจิจูด จึงจะคำนวณเส้นทางได้ Conversion นี้อาจส่งผลต่อประสิทธิภาพ
ระบุสถานที่เป็นรหัสสถานที่
คุณสามารถใช้รหัสสถานที่เพื่อระบุตำแหน่งของจุดสังเกตได้ เนื่องจากพิกัดละติจูดและลองจิจูดจะยึดตามถนน คุณจึงอาจพบว่ารหัสสถานที่ให้ผลลัพธ์ที่ดีกว่าในบางกรณี
เรียกข้อมูลรหัสสถานที่จาก Geocoding API และ Places API (รวมถึง Place Autocomplete) ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ได้ที่ภาพรวมรหัสสถานที่
ตัวอย่างต่อไปนี้ใช้พร็อพเพอร์ตี้ placeId
เพื่อส่งรหัสสถานที่สำหรับทั้ง origin
และ destination
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
ระบุตำแหน่งเป็นพิกัดละติจูดและลองจิจูด
หากต้องการกำหนดตำแหน่งในจุดสังเกต ให้ระบุตำแหน่ง (REST) หรือตำแหน่ง(gRPC) โดยใช้พิกัดละติจูด/ลองจิจูด
ตัวอย่างเช่น ระบุจุดสังเกตสำหรับเส้นทาง origin
และ destination
ใช้พิกัด latitude
และ longitude
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
ระบุสถานที่เป็นสตริงที่อยู่
สตริงที่อยู่คือที่อยู่ตามตัวอักษรที่แสดงด้วยสตริง (เช่น "1600 Amphitheatre Parkway, Mountain View, CA") การจับคู่พิกัดภูมิศาสตร์คือกระบวนการแปลงสตริงที่อยู่เป็นพิกัดละติจูดและลองจิจูด (เช่น ละติจูด 37.423021 และลองจิจูด -122.083739)
เมื่อคุณส่งสตริงที่อยู่เป็นตำแหน่งของจุดสังเกต Routes API จะแปลงสตริงเป็นรหัสพิกัดภูมิศาสตร์ภายในเพื่อแปลงเป็นพิกัดละติจูดและลองจิจูด
ตัวอย่างเช่น หากต้องการคำนวณเส้นทาง คุณต้องระบุจุดสังเกตสำหรับเส้นทาง origin
และ
destination
โดยใช้สตริงที่อยู่ ดังนี้
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
ในตัวอย่างนี้ Routes API จะจับคู่ที่อยู่ทั้ง 2 แห่งเพื่อแปลงเป็นพิกัดละติจูดและลองจิจูด
หากค่าที่อยู่ไม่ชัดเจน Routes API อาจเรียกใช้การค้นหาเพื่อแยกแยะที่อยู่คล้ายกัน เช่น "ถนน 1" อาจเป็นค่าที่สมบูรณ์หรือค่าบางส่วนสำหรับ "ถนน 1 ภาคตะวันออกเฉียงเหนือ" หรือ "ถนน 1 ภาคใต้ตะวันออก" ผลลัพธ์นี้อาจแตกต่างจากผลลัพธ์ที่ Geocoding API แสดง คุณหลีกเลี่ยงการตีความที่ผิดพลาดได้โดยใช้รหัสสถานที่
กำหนดภูมิภาคสำหรับที่อยู่
หากคุณส่งสตริงที่อยู่ที่ไม่สมบูรณ์เป็นตำแหน่งของจุดสังเกต API อาจใช้พิกัดละติจูด/ลองจิจูดที่แปลงพิกัดภูมิศาสตร์ไม่ถูกต้อง ตัวอย่างเช่น คุณส่งคำขอที่ระบุ "Toledo" เป็นต้นทางและ "Madrid" เป็นปลายทางสำหรับเส้นทางการขับรถ
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
ในตัวอย่างนี้ ระบบจะตีความ "Toledo" เป็นเมืองในรัฐโอไฮโอของสหรัฐอเมริกา ไม่ใช่ในสเปน ดังนั้นคําขอจึงแสดงผลเป็นอาร์เรย์ว่าง ซึ่งหมายความว่าไม่มีเส้นทาง
{ [] }
คุณสามารถกําหนดค่า API ให้แสดงผลลัพธ์ที่เอียงไปทางภูมิภาคหนึ่งๆ ได้ด้วยการรวมพารามิเตอร์ regionCode
พารามิเตอร์นี้จะระบุรหัสภูมิภาคเป็นค่า 2 อักขระของ ccTLD ("โดเมนระดับบนสุด") รหัส ccTLD ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดยมีข้อยกเว้นบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ส่วนรหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคสำหรับนิติบุคคล "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")
คำขอเส้นทางจาก "Toledo" ไปยัง "Madrid" ที่มีพารามิเตอร์ regionCode
จะแสดงผลลัพธ์ที่เหมาะสมเนื่องจากระบบตีความ "Toledo" เป็นเมืองในสเปน
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
ตอนนี้การตอบกลับมีเส้นทางที่คำนวณจากโตเลโด สเปน ไปที่มาดริด สเปน
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
ระบุสถานที่เป็น Plus Code
ผู้คนจำนวนมากไม่มีที่อยู่ที่แน่นอน ซึ่งอาจทำให้รับการนำส่งได้ยาก หรือผู้ที่มีที่อยู่อาจต้องการรับการนำส่งที่สถานที่ที่เฉพาะเจาะจงมากขึ้น เช่น ทางเข้าด้านหลังหรือจุดรับสินค้า
Plus Codes เป็นเหมือนที่อยู่ของผู้คนหรือสถานที่ซึ่งไม่มีที่อยู่จริง Plus Codes ไม่ใช่ข้อมูลที่อยู่ที่ประกอบด้วยชื่อถนนและบ้านเลขที่ แต่จะเป็นชุดตัวเลขและตัวอักษรที่สร้างขึ้นโดยอิงจากพิกัดละติจูด/ลองจิจูด
Google ได้พัฒนา Plus Codes เพื่อมอบสิทธิประโยชน์ของที่อยู่ให้กับทุกคนและทุกสิ่ง Plus Code คือข้อมูลอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งมาจากพิกัดละติจูด/ลองจิจูดที่แสดงถึงพื้นที่ 1/8000 องศาคูณ 1/8000 องศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่านั้น คุณสามารถใช้ Plus Codes แทนที่อยู่ไปรษณีย์ในสถานที่ที่ไม่มีที่อยู่ดังกล่าว หรือในกรณีที่ไม่มีเลขที่อาคารหรือไม่มีชื่อถนน
Plus Codes ต้องอยู่ในรูปแบบโค้ดสากลหรือโค้ดประกอบ ดังนี้
- รหัสสากลประกอบด้วยรหัสพื้นที่ 4 อักขระและรหัสท้องถิ่น 6 อักขระขึ้นไป
ตัวอย่างเช่น สำหรับที่อยู่ "1600 Amphitheatre Parkway, Mountain View, CA" รหัสทั่วโลกคือ "849V" และรหัสในพื้นที่คือ "CWC8+R9" จากนั้นใช้ Plus Codes ทั้งหมด 10 อักขระเพื่อระบุค่าสถานที่เป็น "849VCWC8+R9"
- รหัสประกอบประกอบด้วยรหัสท้องถิ่นที่มีความยาวตั้งแต่ 6 อักขระขึ้นไปรวมกับสถานที่ที่ชัดเจน
เช่น ที่อยู่ "450 Serra Mall, Stanford, CA 94305, USA" มีรหัสท้องถิ่นเป็น "CRHJ+C3" สำหรับที่อยู่แบบผสม ให้รวมรหัสท้องถิ่นเข้ากับส่วนเมือง รัฐ รหัสไปรษณีย์ และประเทศของที่อยู่ในรูปแบบ "CRHJ+C3 Stanford, CA 94305, USA"
เช่น คำนวณเส้นทางโดยระบุจุดสังเกตสำหรับเส้นทาง
origin
และdestination
โดยใช้ Plus Codes{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
Plus Codes ได้รับการสนับสนุนใน API ของ Google Maps Platform ซึ่งรวมถึง Place Autocomplete, รายละเอียดสถานที่, Directions API และ Geocoding API เช่น คุณสามารถใช้ Geocoding API เพื่อทำการจับคู่พิกัดภูมิศาสตร์ย้อนกลับของสถานที่ที่ระบุด้วยพิกัดละติจูด/ลองจิจูดเพื่อระบุ Plus Codes ของสถานที่