คำถามที่พบบ่อย

รายละเอียดผลิตภัณฑ์

เครือข่าย

ข้อมูล

การปรับแต่ง UI

การกำหนดเส้นทาง

เครื่องมือจำลอง

เวิร์กโฟลว์

รายละเอียดผลิตภัณฑ์

แอปของคุณต้องใช้กล่องโต้ตอบที่มีประกาศเกี่ยวกับข้อกำหนดในการให้บริการของ SDK การนำทางที่ผู้ใช้แต่ละรายต้องยอมรับ กล่องโต้ตอบนี้เปิดโอกาสให้ผู้ใช้ยอมรับข้อกำหนดในการให้บริการ ไฟล์ข้อความของข้อกำหนดจะได้รับมาพร้อมกับ Navigation SDK โดยใช้เมธอด NavigationApi.showTermsAndConditionsDialog เพื่อแสดงกล่องโต้ตอบที่มีคำดังกล่าว
ภาษาที่ Google Maps Mobile รองรับจะมีให้ใช้งานโดยอัตโนมัติสำหรับ Navigation SDK อุปกรณ์มีภาษาเริ่มต้นของระบบและแอปจะเปลี่ยนการตั้งค่านั้นไม่ได้ แต่แอปมีสิทธิ์เข้าถึงกว่า 70 ภาษา

ใช่ เมื่อเริ่มใช้งานแล้ว LocationListener จะทำงานต่อในเบื้องหลัง แอปของคุณจะยังจัดตำแหน่งถนนและคงตำแหน่งไว้ดังเดิม

ใช่ เมื่อมีการสร้างหรือเปลี่ยนแปลงเส้นทาง RouteChangeListener จะระบุเส้นประกอบ

ไม่ได้ Navigation SDK ไม่จำเป็นต้องติดตั้ง Google Maps Mobile บนอุปกรณ์
ไม่ได้ Navigation SDK ไม่มีฟีเจอร์นี้ในขณะนี้
ได้ ทิศทางการจราจรมีและแสดงโดยค่าเริ่มต้น
Navigation SDK สนับสนุน JDK เวอร์ชันใด
Navigation SDK รองรับ Java SE เวอร์ชัน LTS ที่ Oracle รองรับอย่างต่อเนื่อง เวอร์ชันเหล่านี้มีการระบุว่ามีการสนับสนุน Premier ในแผนกลยุทธ์การสนับสนุนของ Oracle Java SE

เครือข่าย

Navigation SDK จัดการกับการเชื่อมต่อที่ไม่ดีอย่างไร
Navigation SDK จะแคชเส้นทางของแต่ละเส้นทางไว้ล่วงหน้า ข้อมูลที่จัดเก็บในแคชล่วงหน้าประกอบด้วยข้อมูลการกำหนดเส้นทาง 15-20 นาที และทางเลือกเส้นทางในกรณีที่ผู้ใช้เบี่ยงเบนออกจากเส้นทาง SDK การนำทางจะประมาณตำแหน่งโดยใช้ GPS และเซ็นเซอร์ของอุปกรณ์
มีโหมดออฟไลน์ไหม
ไม่ได้ Navigation SDK ไม่มีโหมดออฟไลน์ในขณะนี้ แต่ SDK ให้ข้อมูลที่จัดเก็บในแคชล่วงหน้าสำหรับการเดินทาง

ข้อมูล

ฉันจะดึงข้อมูลจุดแวะ/จุดหมายทั้งหมดในการเดินทางก่อนเริ่มเส้นทางได้ไหม

ใช่ หากต้องการเรียกดูคำแนะนำเส้นทาง โปรดโทร Navigator.getRouteSegments()

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

ทำตามขั้นตอนต่อไปนี้เพื่อให้ข้อมูลเวลาถึงโดยประมาณแก่ผู้ใช้แอป

  1. ดึงข้อมูลเวลาและระยะทางของจุดอ้างอิงทั้งหมดโดยใช้ Navigator.getTimeAndDistanceList()
  2. ส่งต่อข้อมูลนี้ไปยังแอปพลิเคชันไคลเอ็นต์เหมือนเวลาที่จะถึงโดยประมาณของคนขับรถ
หากการนำทางไม่ได้อยู่ในเบื้องหน้า จะใช้ RoadSnappedLocationProvider เพื่อรับตำแหน่งสแนปปัจจุบันของผู้ใช้ได้ไหม

ใช่ RoadSnappedLocationProvider จะทำงานในเบื้องหลังโดยค่าเริ่มต้น

Navigation SDK สนับสนุนการกำหนดเขตพื้นที่เสมือนหรือไม่

ไม่ได้ ในบริบทของการนำทาง remainingTimeOrdistanceChangeListener มีข้อได้เปรียบมากกว่าเขตพื้นที่เสมือน เขตพื้นที่เสมือนอาจไม่ถือว่าเป็นรูปเรขาคณิตของถนน และอาจไม่อยู่จุดศูนย์กลางของจุดที่ผู้ใช้นำทางอยู่

คุณประมาณฟีเจอร์นี้ได้โดยใช้ remainingTimeOrdistanceChangeListener

  1. กำหนดเกณฑ์เพื่อกำหนดความถี่ของ Callback
  2. ตรวจสอบระยะทางที่เหลือไปยังจุดหมาย

ตัวอย่างเช่น ถ้าคุณกำหนดเกณฑ์เป็น 100 ม. คุณจะได้รับการติดต่อกลับเมื่อระยะทางไปยังปลายทางเปลี่ยนไป 100 ม. เมื่อระยะทางลดลง คุณอัปเดตเกณฑ์นี้ให้มีค่าน้อยลงและได้รับการติดต่อกลับบ่อยขึ้นได้ จากนั้นตรวจสอบระยะทางที่เหลือเพื่อพิจารณาว่าคุณอยู่ใกล้กับจุดรับ/ส่งสินค้ามากพอหรือไม่

ฉันสามารถปิดใช้งานการแจ้งเตือนเมื่อแอปการนำทางทำงานในพื้นหลังได้หรือไม่

ใช่ ใช้ Navigator.setHeadsUpNotificationEnabled เพื่อควบคุมการแจ้งเตือน เมธอดนี้มีอาร์กิวเมนต์บูลีน FALSE ปิดการแจ้งเตือน ส่วน TRUE จะเปิดใช้การแจ้งเตือน

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

การปรับแต่ง UI

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

ใช่ โดยใช้วิธีการต่อไปนี้

  1. ดึงข้อมูลเวลาและระยะทางของจุดอ้างอิงทั้งหมดโดยใช้ Navigator.getTimeAndDistanceList()
  2. ซ่อนเวลาถึงโดยประมาณของจุดอ้างอิงปัจจุบันโดยใช้ NavigationFragment.setEtaCardEnabled(false)
  3. แสดงเวลาถึงจุดหมายสุดท้าย
ฉันจะซ่อนการอัปเดตเวลาถึงโดยประมาณได้อย่างไร

คุณสามารถปิดใช้งานการ์ดเวลาถึงโดยประมาณได้โดยโทรไปที่ navigationView.setEtaCardEnabled(false)

การปรับแต่ง UI ใดที่พร้อมใช้งานสำหรับการ์ดส่วนหัวและส่วนท้าย

ใช้ StylingOptions เพื่อตั้งค่า การจัดรูปแบบสีพื้นหลัง หากต้องการซ่อนหรือแสดงส่วนหัวและส่วนท้าย ให้ใช้ฟังก์ชันสมาชิก setHeaderEnabled และ setFooterEnabled ของ NavigationFragment

การกำหนดเส้นทาง

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

ใช่ สร้าง Marker ด้วยชื่อที่กำหนดเองสำหรับปลายทางและละติจูด/ลองจิจูด SDK การนำทางจะแสดงชื่อที่กำหนดเองและพิกัดบน NavigationMap

ฉันสามารถใช้ SDK การนำทางเพื่อติดตามการเบี่ยงเบนจากเส้นทางที่กำหนดได้หรือไม่

ใช่ ใช้ Navigator.setRouteChangedListener เพื่อรับการแจ้งเตือนเมื่อมีการเปลี่ยนเส้นทางหรือแนะนำให้ใช้เส้นทางใหม่

  1. ลงทะเบียน Listener ที่ตรวจสอบตำแหน่งอุปกรณ์ตลอดเส้นทางโดยใช้เมธอด Navigator.setRouteChangedListener
  2. เพิ่มโค้ดลงในเครื่องจัดการเหตุการณ์ Callback onRouteChanged ดังนี้
    • ส่งข้อความถึงผู้ใช้แอปพร้อมข้อมูลเวลาถึงโดยประมาณและระยะทางที่อัปเดต
    • ติดตามตำแหน่งของอุปกรณ์
    • [ไม่บังคับ] เพิ่มฟีเจอร์อื่นๆ ที่แอปต้องใช้ในการจัดการ เมื่อผู้ใช้ออกนอกเส้นทางที่กำหนด
ผู้ใช้สามารถออกจากการนำทางโดยที่ไม่ไปตามเส้นทางได้หรือไม่

ใช่ เรียกใช้เมธอด Navigator.stopGuidance() เพื่อหยุดการนำทาง

เครื่องมือจำลอง

เครื่องมือจำลองรองรับการเปลี่ยนเส้นทางไหม

ใช่ โทร simulateLocationsAlongNewRoute เพื่อจำลองการเดินทางที่มีการเปลี่ยนเส้นทาง เมธอด simulateLocationsAlongExistingRoute จะไม่สนใจการเปลี่ยนแปลงเส้นทางที่มีอยู่

เวิร์กโฟลว์

ฉันจะปิดการแจ้งเตือนหลังจากปิดกิจกรรมที่มี Fragment การนำทางได้อย่างไร

การแจ้งเตือนเกี่ยวกับการนำทางจะยังมองเห็นได้ระหว่างการนำทาง เมื่อปิดกิจกรรมแล้ว เมื่อรถมาถึงจุดหมาย การนำทางจะหยุดและการแจ้งเตือนจะหายไป

หากต้องการจัดการการคลิกการแจ้งเตือน ให้ใช้ Navigator.startGuidance(intent resumeIntent) resume intent จะเริ่มทำงานเมื่อผู้ใช้คลิกการแจ้งเตือน โดยปกติแล้ว ระบบจะเรียก Navigator.startguidance(getIntent()) จากกิจกรรมหลัก ซึ่งจะจำกิจกรรมนั้นเมื่อผู้ใช้คลิกการแจ้งเตือน