Navigation SDK สำหรับ iOS มีวิธีที่ดียิ่งขึ้นในการระบุจุดอ้างอิงหรือจุดนำทาง ซึ่งช่วยให้การกำหนดเส้นทางแม่นยำยิ่งขึ้นและประสบการณ์การเดินทางถึงจุดหมายดีขึ้น โดยเฉพาะสำหรับจุดหมายที่มีทางเข้าหลายทางหรือจุดนำทางที่เฉพาะเจาะจง คุณสามารถกำหนดเส้นทางไปยังตำแหน่งที่แน่นอนได้โดยใช้ navigationPointToken ซึ่งเป็นสตริงที่เข้ารหัสตำแหน่งและบริบทเส้นทางเพิ่มเติม นอกจากนี้ คุณยังรวมพิกัดละติจูดและลองจิจูดเข้ากับรหัสสถานที่เพื่อเพิ่มบริบทได้ด้วย
ฉากหลัง
ก่อนเวอร์ชัน 10.10 คุณสามารถกำหนด Waypoint โดยใช้พิกัดตำแหน่งหรือรหัสสถานที่ตั้งได้ แม้ว่าบางครั้งจะมีประสิทธิภาพ แต่การกำหนดเส้นทางไปยังละติจูดและลองจิจูดเพียงอย่างเดียวอาจทำให้จุดส่งหรือจุดรับไม่เหมาะสม โดยเฉพาะอย่างยิ่งสำหรับสถานที่จัดงานขนาดใหญ่ สวนสาธารณะ หรืออาคารที่มีทางเข้าหลายทาง ผลลัพธ์อาจสแนปไปยังส่วนถนนที่ใกล้ที่สุด ซึ่งอาจไม่ใช่จุดเข้าถึงที่สะดวกหรือถูกต้องที่สุด
ตัวเลือกจุดอ้างอิงที่ปรับปรุงแล้วจะช่วยแก้ปัญหานี้โดยให้คุณระบุบริบทเพิ่มเติมได้
ใช้โทเค็นจุดนำทาง
หากต้องการเส้นทางที่แม่นยำที่สุดไปยังจุดเข้าถึงที่เฉพาะเจาะจง เช่น ทางเข้า ท่าโหลดสินค้า หรือพื้นที่รับส่งที่กำหนด คุณสามารถใช้ navigationPointToken ได้
โทเค็นนี้ได้มาจากการเรียกใช้เมธอด Destinations ของ Geocoding API ซึ่งแสดงถึงจุดนำทางที่เฉพาะเจาะจงและกำหนดเส้นทางได้ซึ่งเชื่อมโยงกับสถานที่
วิธีระบุโทเค็นจุดนำทาง
รับ
navigationPointTokenจากการตอบกลับเมธอด Destinations ของ Geocoding APIระบุ
navigationPointTokenเมื่อสร้างGMSNavigationWaypoint
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3..",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo =
[[GMSNavigationWaypoint alloc] initWithNavigationPointToken:@"sampleNavigationPointToken"
title:@"Sydney Opera House"];
ใช้โทเค็นจุดนำทางและโทเค็นเส้นทาง
คุณสามารถดึงข้อมูลโทเค็นจุดนำทางผ่าน Geocoding API, ดึงข้อมูลโทเค็นเส้นทางจาก Routes API แล้วส่งทั้งโทเค็นจุดนำทางและโทเค็นเส้นทางไปยัง Navigation SDK ซึ่งจะเป็นประโยชน์ในสถานการณ์ต่างๆ เช่น การร่วมเดินทางหรือการนำส่ง ซึ่งคุณใช้ Routes API เพื่อคำนวณราคาการเดินทางและต้องการความแม่นยำของโทเค็นจุดนำทาง
เมื่อใช้โทเค็นเส้นทาง Navigation SDK จะเริ่มการนําทางในเส้นทางเดียวกับที่คุณใช้คํานวณราคา ซึ่งจะช่วยลดความเสี่ยงในการใช้เส้นทางที่ยาวขึ้นหรือสั้นลงสำหรับการเดินทาง ซึ่งอาจทำให้เกิด "ราคาที่ผันผวน"
ดูข้อมูลเพิ่มเติมเกี่ยวกับการระบุตำแหน่งโดยใช้โทเค็นจุดนำทางและการสร้างโทเค็นเส้นทางได้ในเอกสารประกอบของ Routes API ดูวิธีวางแผนเส้นทางโดยใช้โทเค็นเส้นทางได้ที่"วางแผนเส้นทาง"
แผนภาพนี้แสดงวิธีที่แอปบริการร่วมเดินทางหรือแอปจัดส่งจะใช้โทเค็นจุดนำทางและโทเค็นเส้นทางร่วมกัน
รวมรหัสสถานที่และสถานที่ตั้ง
ตั้งแต่เวอร์ชัน 10.10 เป็นต้นไป คุณสามารถระบุทั้งรหัสสถานที่และพิกัดตำแหน่งเมื่อสร้างจุดอ้างอิงได้ วิธีนี้มีประโยชน์เมื่อคุณต้องการระบุจุดที่แน่นอน (สถานที่ตั้ง) โดยที่ยังคงให้บริบทของสถานที่โดยรวม (รหัสสถานที่) ซึ่งจะช่วยให้ Navigation SDK มอบประสบการณ์การมาถึงที่สมบูรณ์ยิ่งขึ้นโดยไฮไลต์อาคารปลายทางหรือแสดงจุดที่น่าสนใจใกล้เคียงที่เกี่ยวข้องกับรหัสสถานที่
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
ข้อควรพิจารณา
เมื่อคุณระบุทั้ง placeID และ location สิ่งที่จะเกิดขึ้นมีดังนี้
- เส้นทางจะกำหนดเป้าหมายเป็น
locationที่ระบุเป็นหลัก - ระบบจะใช้
placeIdเป็นบริบทเพื่อปรับปรุงประสบการณ์การมาถึง - ทางเลือก: หาก SDK พิจารณาว่า
placeIdที่ระบุสอดคล้องกับฟีเจอร์ที่อยู่ห่างจากlocationที่ระบุมากเกินไป ระบบจะไม่สนใจplaceIdในกรณีนี้ การกำหนดเส้นทางจะไปยังlocationเท่านั้น และการปรับปรุงประสบการณ์การมาถึงเฉพาะสถานที่นั้นจะใช้งานไม่ได้
สรุปการกำหนดค่าจุดอ้างอิงที่ถูกต้อง
| ข้อมูลจำเพาะ | location |
placeID |
navigationPointToken |
ลักษณะการกำหนดเส้นทาง | การไฮไลต์ปลายทาง |
|---|---|---|---|---|---|
| พิกัดตำแหน่งเท่านั้น | ตั้งค่า | ไม่ได้ระบุ | ไม่ได้ระบุ | เส้นทางไปยังส่วนของถนนที่ใกล้กับพิกัดที่กำหนดมากที่สุด | แสดงหากสามารถอนุมานปลายทางได้อย่างมั่นใจสูง |
| รหัสสถานที่เท่านั้น | ไม่ได้ระบุ | ตั้งค่า | ไม่ได้ระบุ | เส้นทางไปยังจุดนำทางเริ่มต้นสำหรับรหัสสถานที่ | จากรหัสสถานที่ |
| โทเค็นจุดนำทางเท่านั้น | ไม่ได้ระบุ | ไม่ได้ระบุ | ตั้งค่า | เส้นทางไปยังจุดนำทางที่แน่นอนซึ่งแสดงโดยโทเค็น | จากปลายทางที่กำหนดไว้ในคำขอเมธอดปลายทางของ Geocoding API เดิม |
| พิกัดสถานที่ตั้งและรหัสสถานที่รวมกัน | se | ตั้งค่า | ไม่ได้ระบุ | เส้นทางไปยังส่วนของถนนที่ใกล้กับพิกัดที่กำหนดมากที่สุด | จากรหัสสถานที่ แต่จะไม่แสดงหากรหัสสถานที่อยู่ห่างจากพิกัดละติจูด/ลองจิจูดมากเกินไป |