หากต้องการคำนวณเส้นทาง คุณต้องระบุตำแหน่งต้นทางและปลายทางของเส้นทางเป็นอย่างน้อย คุณกำหนดตำแหน่งเหล่านี้เป็นจุดอ้างอิงในเส้นทาง
นอกจากจุดต้นทางและจุดปลายทางแล้ว คุณยังระบุประเภทต่างๆ ของ จุดแวะพักและวิธีจัดการจุดแวะพักสำหรับเส้นทางได้ด้วย ดูข้อมูลและ ตัวอย่างเพิ่มเติมได้ที่หัวข้อต่อไปนี้
- ระบุทิศทางของยานพาหนะและด้านข้างของถนน
- ระบุจุดแวะพักระหว่างทาง
- ตั้งจุดแวะพักระหว่างเส้นทาง
- กำหนดจุดให้เส้นทางผ่าน
- เพิ่มประสิทธิภาพลำดับจุดแวะพักในเส้นทาง
ระบุสถานที่สำหรับเส้นทาง
คุณแสดงตำแหน่งได้โดยการสร้างออบเจ็กต์จุดอ้างอิง (REST) หรือจุดอ้างอิง (gRPC) ใน คำจำกัดความของจุดอ้างอิง คุณสามารถระบุตำแหน่งได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- รหัสสถานที่ (แนะนำ)
- พิกัดละติจูด/ลองจิจูด
- สตริงที่อยู่ ("Chicago, IL" หรือ "Darwin, NT, Australia")
- รหัสพลัส
คุณสามารถระบุตำแหน่งสำหรับจุดอ้างอิงทั้งหมดในคำขอได้ในลักษณะเดียวกัน หรือจะผสมกันก็ได้ เช่น คุณสามารถใช้พิกัดละติจูด/ลองจิจูดสำหรับจุดแวะพักต้นทาง และใช้รหัสสถานที่สำหรับจุดแวะพักปลายทาง
ใช้รหัสสถานที่แทนพิกัดละติจูด/ลองจิจูดหรือสตริงที่อยู่เพื่อให้มีประสิทธิภาพและความแม่นยำ รหัสสถานที่เป็นรหัสที่ชัดเจนและไม่ซ้ำกัน และให้ประโยชน์ด้านการเข้ารหัสพิกัดภูมิศาสตร์สำหรับการกำหนดเส้นทาง เช่น จุดเข้าถึงและตัวแปรการจราจร ซึ่งจะช่วยหลีกเลี่ยงสถานการณ์ต่อไปนี้ที่อาจเกิดขึ้นจากวิธีอื่นๆ ในการระบุสถานที่ตั้ง
- การใช้พิกัดละติจูด/ลองจิจูดอาจส่งผลให้ระบบ ปักหมุดตำแหน่งบนถนนที่ใกล้กับพิกัดเหล่านั้นมากที่สุด ซึ่งอาจไม่ใช่ จุดเข้าถึงที่พัก หรือแม้แต่ถนนที่นำไปสู่จุดหมายปลายทางได้อย่างรวดเร็วหรือปลอดภัย
- สตริงที่อยู่ต้องได้รับการเข้ารหัสภูมิศาสตร์โดย Routes API ก่อนเพื่อแปลงเป็นพิกัดละติจูด/ลองจิจูด ก่อนที่จะคำนวณเส้นทางได้ ซึ่งอาจส่งผลต่อประสิทธิภาพ
ระบุสถานที่ตั้งเป็นรหัสสถานที่
คุณใช้รหัสสถานที่เพื่อระบุตำแหน่งของจุดอ้างอิงได้ เนื่องจากพิกัดละติจูดและลองจิจูดจะเชื่อมโยงกับถนน คุณจึงอาจพบว่ารหัสสถานที่ให้ผลลัพธ์ที่ดีกว่าในบางกรณี
ดึงรหัสสถานที่จาก 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 อาจใช้พิกัดละติจูด/ลองจิจูดที่เข้ารหัสภูมิศาสตร์ไม่ถูกต้อง ตัวอย่างเช่น คุณส่งคำขอที่ระบุ "โตเลโด" เป็นต้นทางและ "มาดริด" เป็น ปลายทางสำหรับเส้นทางการขับขี่
{ "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" (ในทางเทคนิคสำหรับนิติบุคคลของ "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")
คำขอเส้นทางจาก "โตเลโด" ไปยัง "มาดริด" ที่มีพารามิเตอร์ regionCode
จะแสดงผลลัพธ์ที่เหมาะสมเนื่องจากระบบตีความ "โตเลโด" เป็นเมืองในสเปน
{ "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 คือการอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งได้มาจากพิกัดละติจูด/ลองจิจูด และ แสดงถึงพื้นที่ขนาด 1/8000 ขององศา x 1/8000 ขององศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่า คุณสามารถใช้ Plus Codes แทนที่อยู่ ในสถานที่ที่ไม่มีที่อยู่หรืออาคารไม่มี หมายเลข หรือถนนไม่มีชื่อ
Plus Codes ต้องจัดรูปแบบเป็นรหัสสากลหรือรหัสผสม
- รหัสสากลประกอบด้วยรหัสพื้นที่ 4 ตัวและรหัสท้องถิ่น 6 ตัวขึ้นไป
เช่น สำหรับที่อยู่ "1600 Amphitheatre Parkway, Mountain View, CA" รหัสสากลคือ "849V" และรหัสท้องถิ่นคือ "CWC8+R9" จากนั้นใช้โค้ด Plus ทั้ง 10 อักขระเพื่อระบุค่าตำแหน่งเป็น "849VCWC8+R9"
- รหัสผสมประกอบด้วยรหัสท้องถิ่นที่มีความยาว 6 อักขระขึ้นไป
รวมกับสถานที่ตั้งที่ชัดเจน
เช่น ที่อยู่ "450 Serra Mall, Stanford, CA 94305, USA" มีรหัสท้องถิ่นเป็น "CRHJ+C3" สำหรับที่อยู่ที่ซับซ้อน ให้รวมรหัสท้องถิ่นกับส่วนเมือง รัฐ รหัสไปรษณีย์ และประเทศ ของที่อยู่ในรูปแบบ "CRHJ+C3 สแตนฟอร์ด แคลิฟอร์เนีย 94305 สหรัฐอเมริกา"
เช่น คำนวณเส้นทางโดยระบุจุดอ้างอิงสำหรับเส้นทาง
origin
และdestination
โดยใช้ Plus Codes{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
API ของ Google Maps Platform รองรับ Plus Codes ซึ่งรวมถึง การเติมข้อความอัตโนมัติของสถานที่ รายละเอียดสถานที่ Directions API (เดิม) และ Geocoding API เช่น คุณสามารถใช้ Geocoding API เพื่อทำการ Geocoding แบบย้อนกลับของตำแหน่งที่ระบุโดยพิกัดละติจูด/ลองจิจูดเพื่อกำหนด Plus Code ของตำแหน่ง