ในการคำนวณเส้นทาง คุณต้องระบุตำแหน่งต้นทางและปลายทางของเส้นทางเป็นอย่างน้อย คุณระบุสถานที่เหล่านี้เป็นจุดอ้างอิงบนเส้นทาง
นอกเหนือจากต้นทางและปลายทางแล้ว คุณสามารถระบุจุดอ้างอิงประเภทต่างๆ และวิธีจัดการจุดอ้างอิงสำหรับเส้นทางหนึ่งๆ ได้ สำหรับข้อมูลเพิ่มเติมและตัวอย่าง โปรดดูหัวข้อเหล่านี้
- ระบุทิศทางของรถและด้านข้างของถนน
- ระบุจุดอ้างอิงระดับกลาง
- กำหนดจุดแวะระหว่างทาง
- กำหนดจุดสำหรับเส้นทางที่จะผ่าน
- เพิ่มประสิทธิภาพลำดับจุดแวะพักบนเส้นทาง
ระบุตำแหน่งสำหรับเส้นทาง
คุณแสดงสถานที่โดยการสร้างออบเจ็กต์ Waypoint (REST) หรือ Waypoint (gRPC) ในคำจำกัดความของจุดอ้างอิง คุณสามารถระบุสถานที่ได้ด้วยวิธีต่อไปนี้
- รหัสสถานที่ (แนะนำ)
- พิกัดละติจูด/ลองจิจูด
- สตริงที่อยู่ ("ชิคาโก, อิลลินอยส์" หรือ "ดาร์วิน, NT, ออสเตรเลีย")
- 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 อาจเรียกใช้การค้นหาเพื่อแยกแยะที่อยู่ที่คล้ายกัน เช่น "1st Street" อาจเป็นค่าที่สมบูรณ์หรือค่าบางส่วนสำหรับ "1st Street NE" หรือ "1st St SE" ผลลัพธ์นี้อาจแตกต่างจากข้อมูลที่ Geocoding API แสดง เพื่อหลีกเลี่ยงการตีความที่ผิดพลาด โดยใช้รหัสสถานที่
ตั้งค่าภูมิภาคสำหรับที่อยู่
หากคุณส่งสตริงที่อยู่ที่ไม่สมบูรณ์เป็นตำแหน่งของจุดอ้างอิง API อาจใช้พิกัดละติจูด/ลองจิจูดที่ไม่ถูกต้อง ตัวอย่างเช่น คุณส่งคำขอโดยระบุ "โตเลโด" เป็นต้นทาง และ "มาดริด" เป็นปลายทางของเส้นทางขับรถ ดังนี้
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
ในตัวอย่างนี้ "โตเลโด" จะตีความว่าเป็นเมืองในรัฐโอไฮโอในสหรัฐอเมริกา ไม่ใช่ในสเปน ดังนั้น คำขอจะแสดงผลอาร์เรย์ว่าง ซึ่งหมายความว่าไม่มีเส้นทาง
{ [] }
คุณกำหนดค่า 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 Code เป็นข้อมูลอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งมาจากพิกัดละติจูด/ลองจิจูดที่แสดงพื้นที่ซึ่งเท่ากับ 1/8000 องศา 1/8000 องศา (ประมาณ 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" สำหรับที่อยู่รวม ให้ใส่รหัสท้องถิ่นร่วมกับส่วนเมือง รัฐ รหัสไปรษณีย์ และประเทศของที่อยู่ในรูปแบบ "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 ได้รับการสนับสนุนใน Google Maps Platform API ซึ่งรวมถึง Place Autocomplete, Place Details, Directions API และ Geocoding API ตัวอย่างเช่น คุณสามารถใช้ Geo Code API เพื่อกลับการเข้ารหัสพิกัดภูมิศาสตร์ของสถานที่ที่ระบุโดยพิกัดละติจูด/ลองจิจูดเพื่อระบุ Plus Code ของสถานที่ตั้งดังกล่าว