หากต้องการคำนวณเส้นทาง คุณต้องระบุตำแหน่งของต้นทางและปลายทางของเส้นทางเป็นอย่างน้อย คุณกำหนดสถานที่เหล่านี้เป็นจุดอ้างอิงในเส้นทาง
นอกจากต้นทางและปลายทางแล้ว คุณยังระบุจุดอ้างอิงประเภทต่างๆ และวิธีจัดการจุดอ้างอิงสำหรับเส้นทางได้ด้วย ดูข้อมูลเพิ่มเติมและตัวอย่างได้ที่หัวข้อต่อไปนี้
- ระบุทิศทางของยานพาหนะและด้านข้างของถนน
- ระบุจุดอ้างอิงระหว่างทาง
- กำหนดจุดแวะพักระหว่างทาง
- กำหนดจุดให้เส้นทางผ่าน
- เพิ่มประสิทธิภาพลำดับจุดแวะพักในเส้นทาง
ระบุสถานที่สำหรับเส้นทาง
คุณแสดงสถานที่ตั้งได้โดยการสร้างออบเจ็กต์ Waypoint (REST) หรือ Waypoint (gRPC) ในคำจำกัดความของจุดอ้างอิง คุณสามารถระบุตำแหน่งด้วยวิธีใดก็ได้ต่อไปนี้
- รหัสสถานที่ (แนะนำ)
- พิกัดละติจูด/ลองจิจูด
- สตริงที่อยู่ ("Chicago, IL" หรือ "Darwin, NT, Australia")
- โทเค็นจุดนำทาง
- Plus Code
คุณสามารถระบุตำแหน่งสำหรับจุดอ้างอิงทั้งหมดในคำขอด้วยวิธีเดียวกัน หรือจะผสมกันก็ได้ เช่น คุณสามารถใช้พิกัดละติจูด/ลองจิจูดสำหรับจุดอ้างอิงต้นทาง และใช้รหัสสถานที่สำหรับจุดอ้างอิงปลายทาง
ใช้รหัสสถานที่แทนพิกัดละติจูด/ลองจิจูดหรือสตริงที่อยู่เพื่อประสิทธิภาพและความแม่นยำ รหัสสถานที่มีความชัดเจนและไม่ซ้ำกัน รวมถึงให้ประโยชน์ในการเข้ารหัสพิกัดภูมิศาสตร์สำหรับการกำหนดเส้นทาง เช่น จุดเข้าถึงและตัวแปรการจราจร ซึ่งจะช่วยหลีกเลี่ยงสถานการณ์ต่อไปนี้ที่อาจเกิดขึ้นจากการระบุสถานที่ตั้งด้วยวิธีอื่นๆ
- การใช้พิกัดละติจูด/ลองจิจูดอาจส่งผลให้ตำแหน่งถูกตรึงไว้กับถนนที่อยู่ใกล้กับพิกัดเหล่านั้นมากที่สุด ซึ่งอาจไม่ใช่จุดเข้าถึงสถานที่ หรือแม้แต่ถนนที่นำไปสู่จุดหมายได้อย่างรวดเร็วหรือปลอดภัย
- สตริงที่อยู่ต้องได้รับการเข้ารหัสพิกัดภูมิศาสตร์โดย Routes API ก่อนเพื่อแปลงเป็นพิกัดละติจูด/ลองจิจูดก่อนที่จะคำนวณเส้นทางได้ Conversion นี้อาจส่งผลต่อประสิทธิภาพ
ระบุสถานที่ตั้งเป็นรหัสสถานที่
คุณใช้รหัสสถานที่เพื่อระบุตำแหน่งของจุดอ้างอิงได้ เนื่องจากพิกัดละติจูดและลองจิจูดจะถูกตรึงไว้กับถนน คุณอาจพบว่ารหัสสถานที่จะให้ผลลัพธ์ที่ดีกว่าในบางสถานการณ์
ดึงข้อมูลรหัสสถานที่จาก Geocoding API และ Places API (ใหม่) (รวมถึงการเติมข้อความอัตโนมัติ (ใหม่)) ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ได้ที่ภาพรวมของรหัสสถานที่
ตัวอย่างต่อไปนี้ใช้พร็อพเพอร์ตี้ placeId เพื่อส่งรหัสสถานที่สำหรับทั้ง origin และ destination
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
ระบุสถานที่ตั้งเป็นพิกัดละติจูดและลองจิจูด
หากต้องการกำหนดตำแหน่งในจุดอ้างอิง ให้ระบุ Location (REST) หรือ Location (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 อาจเรียกใช้การค้นหาเพื่อแก้ความกำกวมจากที่อยู่ที่คล้ายกัน เช่น "1st Street" อาจเป็นค่าที่สมบูรณ์หรือค่าบางส่วนสำหรับ "1st street NE" หรือ "1st St SE" ผลลัพธ์นี้อาจแตกต่างจากผลลัพธ์ที่ 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", ... } ] }
ระบุสถานที่ตั้งเป็นโทเค็นจุดนำทาง
โทเค็นจุดนำทางคือสตริงที่เข้ารหัสตำแหน่งและบริบทเส้นทางเพิ่มเติม โทเค็นจุดนำทางช่วยให้กำหนดเส้นทางที่แม่นยำไปยังจุดเข้าถึงที่เฉพาะเจาะจงใกล้กับทางเข้า ท่าเทียบเรือ หรือพื้นที่รับสินค้าที่กำหนดได้ ซึ่งมีประโยชน์ในกรณีต่างๆ เช่น การจัดส่งอาหารหรือการแชร์รถ ซึ่งจุดรับหรือจุดส่งอาจไม่ชัดเจน
คุณสามารถรับโทเค็นจุดนำทางได้โดยเรียกใช้เมธอด Destinations ของ Geocoding API
วิธีระบุโทเค็นจุดนำทาง
- รับ
navigationPointTokenจากเมธอดSearchDestinationsของ Geocoding API ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ Geocoding API - สร้างจุดอ้างอิงโดยส่ง
navigationPointToken
ตัวอย่างต่อไปนี้ใช้พร็อพเพอร์ตี้ navigation_point_token เพื่อส่งโทเค็นจุดนำทางสำหรับทั้ง origin และ destination
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
ระบุสถานที่ตั้งเป็น Plus Code
หลายคนไม่มีที่อยู่ที่แน่นอน ซึ่งอาจทำให้รับพัสดุได้ยาก หรือผู้ที่มีที่อยู่อาจต้องการรับพัสดุในสถานที่ที่เฉพาะเจาะจงมากขึ้น เช่น ทางเข้าด้านหลังหรือท่าโหลดสินค้า
Plus Codes เป็นเหมือนที่อยู่สำหรับบุคคลหรือสถานที่ที่ไม่มีที่อยู่จริง Plus Codes จะอิงตามพิกัดละติจูด/ลองจิจูด และแสดงเป็นตัวเลขและตัวอักษร แทนที่จะเป็นที่อยู่ซึ่งมีชื่อถนนและหมายเลข
Google ได้พัฒนา Plus Codes ขึ้นมาเพื่อให้ทุกคนและทุกสิ่งมีที่อยู่ Plus Code คือข้อมูลอ้างอิงตำแหน่งที่เข้ารหัสซึ่งได้มาจากพิกัดละติจูด/ลองจิจูดที่แสดงพื้นที่ขนาด 1/8, 000 ขององศา x 1/8, 000 ขององศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่านั้น คุณสามารถใช้ Plus Codes แทนที่อยู่ถนนในสถานที่ที่ไม่มีที่อยู่ถนน หรือในสถานที่ที่อาคารไม่มีหมายเลขหรือถนนไม่มีชื่อ
Plus Codes ต้องจัดรูปแบบเป็นรหัสสากลหรือรหัสผสม ดังนี้
- รหัสสากลประกอบด้วยรหัสพื้นที่ 4 หลักและรหัสท้องถิ่น 6 หลักขึ้นไป
ตัวอย่างเช่น สำหรับที่อยู่ "1600 Amphitheatre Parkway, Mountain View, CA" รหัสส่วนกลางคือ "849V" และรหัสท้องถิ่นคือ "CWC8+R9" จากนั้นใช้ Plus Code ทั้ง 10 อักขระเพื่อระบุค่าสถานที่ตั้งเป็น "849VCWC8+R9"
- รหัสผสมประกอบด้วยรหัสท้องถิ่น 6 หลักขึ้นไปรวมกับตำแหน่งที่ชัดเจน
เช่น ที่อยู่ "450 Serra Mall, Stanford, CA 94305, USA" มีรหัสท้องถิ่นเป็น "CRHJ+C3" สำหรับที่อยู่แบบผสม ให้รวม Plus Code กับเมือง รัฐ รหัสไปรษณีย์ และประเทศของที่อยู่ในรูปแบบ "CRHJ+C3 Stanford, CA 94305, USA"
เช่น คำนวณเส้นทางโดยระบุจุดอ้างอิงสำหรับเส้นทาง
originและdestinationโดยใช้ Plus Code ดังนี้{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
Plus Codes รองรับใน Google Maps Platform API ซึ่งรวมถึงการเติมข้อความอัตโนมัติ (ใหม่), รายละเอียดสถานที่ (ใหม่) และ Geocoding API เช่น คุณสามารถใช้ Geocoding API เพื่อเข้ารหัสพิกัดภูมิศาสตร์แบบย้อนกลับของสถานที่ที่ระบุโดยพิกัดละติจูด/ลองจิจูดเพื่อระบุ Plus Code ของสถานที่นั้นได้