หากต้องการคำนวณเส้นทาง คุณต้องระบุตำแหน่งขั้นต่ำของเส้นทาง ปลายทาง และปลายทางเส้นทาง คุณกำหนดสถานที่เหล่านี้เป็นจุดอ้างอิงบน เส้นทาง
นอกจากต้นทางและปลายทางแล้ว คุณยังระบุประเภทของ จุดอ้างอิงและวิธีจัดการจุดอ้างอิงสำหรับเส้นทาง สำหรับข้อมูลเพิ่มเติมและ โปรดดูตัวอย่างในหัวข้อต่อไปนี้
- ระบุทิศทางและทิศทางของรถบนถนน
- ระบุจุดอ้างอิงระดับกลาง
- กำหนดจุดแวะระหว่างเส้นทาง
- กำหนดจุดสำหรับเส้นทางที่จะผ่าน
- เพิ่มประสิทธิภาพลำดับการแวะพักในเส้นทาง
ระบุตำแหน่งของเส้นทาง
คุณแสดงสถานที่ตั้งโดยการสร้าง Waypoint (REST) หรือออบเจ็กต์ Waypoint (gRPC) ใน คำจำกัดความการชี้ทางนั้น คุณสามารถระบุตำแหน่งได้โดยวิธีดังต่อไปนี้:
- รหัสสถานที่ (แนะนำ)
- พิกัดละติจูด/ลองจิจูด
- สตริงที่อยู่ ("Chicago, IL" หรือ "Darwin, NT, Australia")
- Plus Code
คุณสามารถระบุสถานที่ของจุดอ้างอิงทั้งหมดได้ในคำขอในลักษณะเดียวกัน หรือคุณจะผสมผสานกัน ตัวอย่างเช่น คุณสามารถใช้พิกัดละติจูด/ลองจิจูดสำหรับ จุดอ้างอิงต้นทาง และใช้รหัสสถานที่สำหรับจุดอ้างอิงปลายทาง
ใช้รหัสสถานที่แทนละติจูด/ลองจิจูดเพื่อประสิทธิภาพและความแม่นยำ พิกัด หรือสตริงที่อยู่ รหัสสถานที่มีความโจ่งแจ้งและไม่ซ้ำกัน ประโยชน์ด้านการระบุพิกัดทางภูมิศาสตร์สำหรับการกำหนดเส้นทาง เช่น จุดเข้าใช้งาน และตัวแปรการรับส่งข้อมูล โฆษณาเหล่านี้ ช่วยหลีกเลี่ยงสถานการณ์ต่อไปนี้ที่อาจเกิดจากวิธีการ การระบุสถานที่ตั้ง:
- การใช้พิกัดละติจูด/ลองจิจูดอาจทำให้ตำแหน่ง เข้ากับถนนที่ใกล้ที่สุดกับพิกัดเหล่านั้น ซึ่งอาจจะไม่ใช่ ทางเข้าอสังหาริมทรัพย์ หรือแม้กระทั่งถนนที่รวดเร็วหรือปลอดภัย จะนำไปสู่จุดหมาย
- สตริงที่อยู่ต้องมีการระบุพิกัดทางภูมิศาสตร์โดย Routes API เพื่อแปลงก่อน ไปยังพิกัดละติจูด/ลองจิจูดก่อนที่จะสามารถคำนวณเส้นทางได้ Conversion นี้อาจส่งผลต่อประสิทธิภาพ
ระบุสถานที่ตั้งเป็นรหัสสถานที่
คุณใช้รหัสสถานที่เพื่อระบุตำแหน่งของจุดอ้างอิงได้ เพราะ พิกัดละติจูดและลองจิจูดจะถูกพอดีกับถนน คุณอาจเห็น รหัสสถานที่ให้ผลลัพธ์ที่ดีกว่าในบางสถานการณ์
เรียกดูรหัสสถานที่จาก Geocoding API และ Places API (รวมถึง Place เติมข้อความอัตโนมัติ) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ โปรดดูที่ ภาพรวมรหัสสถานที่
ตัวอย่างต่อไปนี้ใช้พร็อพเพอร์ตี้ 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 อาจใช้พิกัดละติจูด/ลองจิจูดที่เข้ารหัสพิกัดภูมิศาสตร์ไม่ถูกต้อง ตัวอย่างเช่น คุณส่งคำขอโดยระบุ "Toledo" "มาดริด" ในฐานะ ปลายทางสำหรับเส้นทางขับรถ:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
ในตัวอย่างนี้ "Toledo" ตีความว่าเป็นเมืองในรัฐ รัฐโอไฮโอในสหรัฐอเมริกา ไม่ใช่ในสเปน ดังนั้น คำขอจึงแสดงผล อาร์เรย์ว่างเปล่า หมายความว่าไม่มีเส้นทาง
{ [] }
คุณสามารถกำหนดค่า API ให้ส่งกลับผลลัพธ์ที่มีความลำเอียงไปยังภูมิภาคใดภูมิภาคหนึ่งโดย
โดยรวมพารามิเตอร์ regionCode
พารามิเตอร์นี้ระบุรหัสภูมิภาคเป็น
ccTLD ("โดเมนระดับบนสุด")
ที่เป็นค่าสองตัว รหัส ccTLD ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดย
ข้อยกเว้นบางอย่างที่สำคัญ เช่น ccTLD ของสหราชอาณาจักรคือ "uk"
(.co.uk) ในขณะที่รหัส ISO 3166-1 คือ "gb" (โดยทางเทคนิคสำหรับหน่วยงาน "
สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")
คำขอเส้นทางสำหรับ "Toledo" ไปยัง "มาดริด" ที่มี 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 ขององศา x 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" }
Google Maps Platform API รองรับ Plus Codes ดังต่อไปนี้ เติมข้อความอัตโนมัติสถานที่ รายละเอียดสถานที่ Directions API และ Geocoding API ตัวอย่างเช่น คุณสามารถใช้ Geocoding API เพื่อกลับการเข้ารหัสพิกัดภูมิศาสตร์ ตำแหน่งที่ระบุด้วยพิกัดละติจูด/ลองจิจูดเพื่อระบุ Plus Code ของสถานที่ตั้งนั้นๆ