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

ข้อเท็จจริงเกี่ยวกับผลิตภัณฑ์

เครือข่าย

ข้อมูล

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

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

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

เวิร์กโฟลว์

ข้อเท็จจริงเกี่ยวกับผลิตภัณฑ์

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

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

ใน iOS หากต้องการรับข้อมูลอัปเดตตำแหน่งของตำแหน่งและทิศทางในเบื้องหลังต่อไป ให้ใช้การสแนปถนนและตั้งค่า allowsBackgroundLocationUpdates เป็น YES

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

ไม่ Navigation SDK ไม่จำเป็นต้องติดตั้ง Google Maps บนอุปกรณ์เคลื่อนที่
ไม่ Navigation SDK ไม่มีฟังก์ชันนี้ในขณะนี้
ได้ ทิศทางการจราจรพร้อมใช้งานและแสดงตามค่าเริ่มต้น

เครือข่าย

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

ข้อมูล

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

ใช่ ใน Android หากต้องการเรียกข้อมูลเส้นทางของเส้นทาง ให้โทรหา Navigator.getRouteSegments()

ใน iOS ให้โทร GMSNavigator.routeLegs(read)

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

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

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

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

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

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

ใน iOS หากต้องการให้การไปยังส่วนต่างๆ ทำงานในเบื้องหลังต่อไป ให้ใช้การมอบสิทธิ์สำหรับ GMSRoadSnappedLocationProviderDelegate และตั้งค่าพร็อพเพอร์ตี้ allowsBackgroundLocationUpdates เป็น TRUE

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

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

คุณประมาณฟังก์ชันนี้ได้โดยใช้ remainingTimeOrdistanceChangeListener

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

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

ใน iOS ใช้ GMSNavigatorDelegate.didUpdateRemainingDistance ที่ได้รับสิทธิ์เพื่อจัดการระยะห่างระหว่างการแจ้งเตือน

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

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

ใน iOS ให้ปิดใช้การแจ้งเตือนในเบื้องหลังสําหรับตําแหน่งที่มีการสแนปถนนโดยตั้งค่า GMSRoadSnappedLocationProviderDelegate.allowsBackgroundLocationUpdates เป็น NO

หากต้องการปิดการประมวลผลในเบื้องหลังสำหรับการแจ้งเตือนตำแหน่งอื่นๆ โปรดโทร GMSNavigator.sendsBackgroundNotifications(NO)

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

ดูข้อมูลเกี่ยวกับการเขียนโค้ดของธุรกรรมการเรียกเก็บเงินได้ที่ ธุรกรรมที่เรียกเก็บเงินได้

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

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

ใช่ ใน Android ให้ใช้วิธีการต่อไปนี้

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

ใน iOS ให้ใช้รายการต่อไปนี้

  1. โทรมาที่ GMSNavigator.routeLegs(read)
  2. สำหรับขั้นตอนสุดท้าย ให้โทรหา GMSNavigator.timeToNextDestination
  3. ซ่อนเวลาถึงโดยประมาณของจุดอ้างอิงปัจจุบันโดยใช้ MSMapView.settings.navigationFooterEnabled=NO ไปยัง FALSE
  4. แสดงผลเวลาถึงจุดหมายสุดท้าย
ฉันจะซ่อนการอัปเดตเวลาถึงโดยประมาณได้อย่างไร

คุณปิดใช้การ์ดเวลาถึงโดยประมาณได้ด้วยวิธีต่อไปนี้

  • ใน Android ให้ใช้ navigationView.setEtaCardEnabled(false)
  • ใน iOS ให้ใช้ GMSMapView.settings.navigationFooterEnabled=NO
การปรับแต่ง UI ใดที่พร้อมใช้งานสำหรับการ์ดส่วนหัวและส่วนท้าย

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

ใน iOS ให้ใช้ GMSMapView.settings.navigationHeaderPrimaryBackgroundColor เพื่อตั้งค่าการจัดรูปแบบสีพื้นหลัง หากต้องการซ่อนหรือแสดงส่วนหัวและส่วนท้าย ให้ใช้พร็อพเพอร์ตี้ navigationFooterEnabled และ navigationHeaderEnabled ของ GMSUISettings

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

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

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

ใน iOS คุณสร้างและแสดง GMSMarker สำหรับปลายทาง

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

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

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

ใน iOS ให้ใช้ GMSNavigator และผู้รับมอบสิทธิ์เพื่อรับการแจ้งเตือนเมื่อมีการเปลี่ยนเส้นทางหรือแนะนำให้ใช้เส้นทางใหม่

  1. ใช้โปรโตคอล GMSNavigatorDelegate และโปรโตคอล GMSRoadSnappedLocationProviderDelegate ในตัวควบคุมมุมมองของแผนที่
  2. นำ GMSNavigatorDelegate.navigatorDidChangeRoute ไปใช้
  3. เข้าถึงเส้นทางใหม่โดยใช้ routeLegs และพร็อพเพอร์ตี้ currentRouteLeg ของ GMSNavigator
ผู้ใช้ขับรถออกจากการนำทางโดยไม่จำเป็นต้องไปตามเส้นทางได้หรือไม่

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

ใน iOS ให้โทร GMSNavigator.clearDestinations

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

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

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

ใน iOS ให้ใช้ GMSLocationSimulator.simulateAlongNewRouteToDestinations เพื่อจำลองเส้นทางที่มีการเปลี่ยนเส้นทาง หากไม่ได้คาดว่าจะเปลี่ยนเส้นทาง คุณสามารถใช้ GMSLocationSimulator.simulateLocationsAlongExistingRoute หรือ GMSLocationSimulator.simulateAlongNewRouteToDestinations ได้

เวิร์กโฟลว์

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

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

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