เส้นทางไปยังจุดนำทาง

Navigation SDK สำหรับ iOS มีวิธีที่ดียิ่งขึ้นในการระบุจุดอ้างอิงหรือจุดนำทาง ซึ่งช่วยให้การกำหนดเส้นทางแม่นยำยิ่งขึ้นและประสบการณ์การมาถึงที่ดีขึ้น โดยเฉพาะสำหรับจุดหมายที่มีทางเข้าหลายทางหรือจุดนำทางที่เฉพาะเจาะจง คุณสามารถกำหนดเส้นทางไปยังตำแหน่งที่แน่นอนได้โดยใช้ navigationPointToken ซึ่งเป็นสตริงที่เข้ารหัสตำแหน่งและบริบทเส้นทางเพิ่มเติม นอกจากนี้ คุณยังรวมพิกัดละติจูดและลองจิจูดเข้ากับรหัสสถานที่เพื่อเพิ่มบริบทได้ด้วย

ฉากหลัง

ก่อนเวอร์ชัน 10.10 คุณสามารถกำหนด Waypoint โดยใช้พิกัดสถานที่ตั้งหรือรหัสสถานที่ตั้งก็ได้ แม้ว่าบางครั้งจะมีประสิทธิภาพ แต่การกำหนดเส้นทางไปยังละติจูดและลองจิจูดเพียงอย่างเดียวอาจทำให้จุดส่งหรือจุดรับไม่เหมาะสม โดยเฉพาะอย่างยิ่งสำหรับสถานที่จัดงานขนาดใหญ่ สวนสาธารณะ หรืออาคารที่มีทางเข้าหลายทาง ผลลัพธ์อาจสแนปไปยังส่วนถนนที่ใกล้ที่สุด ซึ่งอาจไม่ใช่จุดเข้าถึงที่สะดวกหรือถูกต้องที่สุด

ตัวเลือกจุดอ้างอิงที่ปรับปรุงแล้วจะช่วยแก้ปัญหานี้โดยให้คุณระบุบริบทเพิ่มเติมได้

ใช้โทเค็นจุดนำทาง

หากต้องการเส้นทางที่แม่นยำที่สุดไปยังจุดเข้าถึงที่เฉพาะเจาะจง เช่น ทางเข้า ท่าโหลดสินค้า หรือพื้นที่รับสินค้าที่กำหนด คุณสามารถใช้ navigationPointToken ได้

โทเค็นนี้ได้มาจากการเรียกใช้เมธอด Destinations ของ Geocoding API ซึ่งแสดงถึงจุดนำทางที่เฉพาะเจาะจงและกำหนดเส้นทางได้ซึ่งเชื่อมโยงกับสถานที่

วิธีระบุโทเค็นจุดนำทาง

  1. รับ navigationPointToken จากการตอบกลับเมธอด SearchDestinations ของ Geocoding API

  2. ระบุ 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 ได้ที่หัวข้อระบุตำแหน่งสำหรับเส้นทางและรับโทเค็นเส้นทาง ดูวิธีวางแผนเส้นทางโดยใช้โทเค็นเส้นทางได้ที่วางแผนเส้นทาง

แผนภาพต่อไปนี้แสดงวิธีที่แอปบริการร่วมเดินทางหรือแอปจัดส่งจะใช้โทเค็นจุดนำทางและโทเค็นเส้นทางร่วมกัน ตั้งแต่เวอร์ชัน 11.3 เป็นต้นไป แอปคนขับจะส่งเฉพาะโทเค็นเส้นทางไปยัง Navigation SDK ในขั้นตอนที่ 7

แผนภาพกรณีการใช้งานการร่วมเดินทางหรือการนำส่ง
แผนภาพกรณีการใช้งานการร่วมเดินทางหรือการนำส่ง

รวมรหัสสถานที่และสถานที่ตั้ง

ตั้งแต่ v10.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 เดิม
พิกัดสถานที่ตั้งและรหัสสถานที่รวมกัน ตั้งค่า ตั้งค่า ไม่ได้ระบุ เส้นทางไปยังส่วนของถนนที่ใกล้กับพิกัดที่กำหนดมากที่สุด จากรหัสสถานที่ แต่จะไม่แสดงหากรหัสสถานที่อยู่ห่างจากพิกัดละติจูด/ลองจิจูดมากเกินไป