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

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

ปัญหา

เครือข่าย

ข้อมูล

การปรับแต่ง 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 Mobile ที่จะติดตั้งในอุปกรณ์
ไม่ แต่ Navigation SDK ไม่มีฟังก์ชันนี้
ใช่ ทิศทางการจราจรมีและแสดงโดยค่าเริ่มต้น
Navigation SDK ใด เฉพาะลูกค้าบริการระบบเคลื่อนที่เท่านั้นจึงจะใช้ API ได้ใช่ไหม

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

ปัญหา

ใน Xcode 12 แอปไม่ได้สร้างขึ้นมาอย่างถูกต้องสำหรับเครื่องมือจำลอง ฉันจะแก้ไขปัญหานี้ได้อย่างไร

ในการแก้ไขปัญหานี้ ให้เปิดการตั้งค่าบิลด์ของโปรเจ็กต์ Xcode และเพิ่ม arm64 ไปยัง Excluded Architectures สำหรับ "iOS Simulator" งานสร้างเท่านั้น

ดูข้อมูลเพิ่มเติมได้ที่เทรดสแต็กโอเวอร์โฟลว์ต่อไปนี้

GMSMapView ไม่โหลด

หาก GMSMapView ไม่โหลด ให้ทำดังนี้

  • ตรวจสอบว่าเปิดใช้ NavSDK ใน Cloud Console แล้ว
  • หากติดตั้ง Nav SDK แล้ว แต่โปรเจ็กต์ของคุณไม่ได้ใช้ Nav SDK API ให้นำออกจากไบนารีของคุณ

เครือข่าย

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 ให้ใช้ Listener เพื่อทำให้การนำทางทำงานต่อไปในเบื้องหลัง สำหรับ GMSRoadSnappedLocationProviderListener และตั้งค่า พร็อพเพอร์ตี้ allowsBackgroundLocationUpdates เป็น TRUE

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

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

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

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

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

ใน iOS ให้ใช้ Listener GMSNavigatorListener.didUpdateRemainingDistance เพื่อจัดการระยะห่างระหว่างการแจ้งเตือน

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

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

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

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

การปรับแต่ง 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

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

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

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

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

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

  1. ในตัวควบคุมมุมมองแผนที่ ให้ใช้ GMSNavigatorListener และโปรโตคอล GMSRoadSnappedLocationProviderListener
  2. ใช้งาน GMSNavigatorListener.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()) จะเรียกจาก กิจกรรมหลัก ซึ่งจะเรียกคืนกิจกรรมเมื่อผู้ใช้แอปคลิกการแจ้งเตือน