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

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

ฉากหลัง

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

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

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

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

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

  1. รับ navigationPointToken จากการตอบกลับเมธอดปลายทางของ Geocoding API
  2. สร้าง Waypoint โดยใช้วิธี setNavigationPointToken() ใน เครื่องมือสร้าง

หมายเหตุ: เมื่อใช้ setNavigationPointToken() คุณจะใช้ setLatLng() หรือ setPlaceIdString() พร้อมกันไม่ได้ วิธีการเหล่านี้จะแยกกันกับ setNavigationPointToken()

// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithToken = Waypoint.builder()
    .setTitle(destinationName)
    .setNavigationPointToken(navPointToken)
    .build();

// Use this waypoint in navigator.setDestinations()

ใช้โทเค็นจุดนำทางและโทเค็นเส้นทาง

คุณสามารถดึงโทเค็นจุดนำทางผ่าน Geocoding API ดึงโทเค็นเส้นทางจาก Routes API แล้วส่งทั้งโทเค็นจุดนำทางและโทเค็นเส้นทางไปยัง Navigation SDK ซึ่งจะมีประโยชน์ในสถานการณ์ต่างๆ เช่น การแชร์รถหรือการนำส่ง ซึ่งคุณใช้ Routes API เพื่อคำนวณราคาการเดินทาง และต้องการความแม่นยำของโทเค็นจุดนำทาง

โทเค็นเส้นทางจะเอนเอียงเส้นทางที่ Navigation SDK เลือกไปทางเส้นทาง ที่ใช้ในการกำหนดราคา ซึ่งจะช่วยลดความเสี่ยงในการใช้เส้นทางที่ยาวขึ้นหรือสั้นลงสำหรับการเดินทาง ซึ่งอาจทำให้เกิด "ราคาที่ผันผวน"

ดูข้อมูลเพิ่มเติมเกี่ยวกับการระบุ ตําแหน่งโดยใช้โทเค็น จุดนำทางและ การสร้างโทเค็น เส้นทางได้ในเอกสารประกอบของ Routes API ดู"วางแผนเส้นทาง" เพื่อ ดูวิธีวางแผนเส้นทางโดยใช้โทเค็นเส้นทาง

แผนภาพนี้แสดงวิธีที่แอปเรียกรถหรือแอปนำส่งจะใช้โทเค็นจุดนำทาง และโทเค็นเส้นทางร่วมกัน

แผนภาพกรณีการใช้งานการแชร์รถหรือการนำส่ง
แผนภาพกรณีการใช้งานการแชร์รถหรือการนำส่ง

รวมรหัสสถานที่กับละติจูดและลองจิจูด

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

// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
    .setTitle(destinationName)
    .setPlaceIdString(placeId)
    .setLatLng(lat, lng)
    .build();

// Use this waypoint in navigator.setDestinations()

ข้อควรพิจารณา

เมื่อคุณระบุทั้ง placeId และ latlng

  • เส้นทางนี้มุ่งเน้นไปที่ latlng ที่ระบุเป็นหลัก
  • placeId จะใช้เป็นบริบทเพื่อปรับปรุงประสบการณ์การเดินทางมาถึง
  • การสำรอง: หาก SDK ระบุว่า placeId ที่ระบุสอดคล้อง กับฟีเจอร์ที่อยู่ไกลจาก latlng ที่ระบุมากเกินไป ระบบจะ ไม่สนใจ placeId ในสถานการณ์นี้ การกำหนดเส้นทางจะไปยัง latlng เท่านั้น และการปรับปรุงประสบการณ์การมาถึงที่เฉพาะเจาะจงจะไม่พร้อมใช้งาน

สรุปการกำหนดค่าจุดอ้างอิงที่ถูกต้อง

วิธีการ setLatLng() setPlaceIdString() setNavigationPointToken() ลักษณะการทำงานของการกำหนดเส้นทาง การไฮไลต์ปลายทาง
พิกัดละติจูด/ลองจิจูดเท่านั้น ตั้งค่า ไม่ได้ระบุ ไม่ได้ระบุ เส้นทางไปยังส่วนของถนนที่ใกล้กับพิกัดที่กำหนดมากที่สุด แสดงหากอนุมานปลายทางได้อย่างมั่นใจสูง
รหัสสถานที่เท่านั้น ไม่ได้ระบุ ตั้งค่า ไม่ได้ระบุ เส้นทางไปยังจุดนำทางเริ่มต้นสำหรับรหัสสถานที่ รหัสสถานที่ต้นทาง
โทเค็นจุดนำทางเท่านั้น ไม่ได้ระบุ ไม่ได้ระบุ ตั้งค่า เส้นทางไปยังจุดนำทางที่แน่นอนซึ่งแสดงโดยโทเค็น จากปลายทางที่กำหนดไว้ในคำขอเมธอดปลายทางของ Geocoding API เดิม
รวมพิกัดละติจูด/ลองจิจูดและรหัสสถานที่ ตั้งค่า ตั้งค่า ไม่ได้ระบุ เส้นทางไปยังส่วนของถนนที่ใกล้กับพิกัดที่กำหนดมากที่สุด จากรหัสสถานที่ แม้ว่าจะไม่แสดงหากรหัสสถานที่อยู่ไกลจากพิกัดละติจูด/ลองจิจูดมากเกินไป