คำถามที่พบบ่อย
รายละเอียดผลิตภัณฑ์
- ควรแสดงประกาศข้อกำหนดในการให้บริการของ Navigation SDK อย่างไร
- คำแนะนำด้วยเสียงรองรับภาษาใดบ้าง
- ระบบจะรักษาทิศทางไว้เมื่อคนขับ ออกจากโหมดการนำทางหรือไม่
- เส้นหลายเส้นพร้อมใช้งานเมื่อเริ่ม หรือเปลี่ยนเส้นทางไหม
- ผู้ใช้แอปต้องติดตั้ง Google Maps บนอุปกรณ์เคลื่อนที่ไหม
- Navigation SDK ระบุที่จอดรถใกล้ร้านอาหารและจุดหมายอื่นๆ ได้ไหม
- Navigation SDK แสดงทิศทางการจราจรในเลนเมื่อเข้าใกล้จุดเลี้ยวหรือไม่
ปัญหา
เครือข่าย
ข้อมูล
- ฉันจะดึงข้อมูลป้ายจอดรถ/จุดหมายทั้งหมด ในการเดินทางก่อนเริ่มเส้นทางได้ไหม
- มีคำแนะนำเส้นทางแบบเลี้ยวต่อเลี้ยว เมื่อเริ่มต้นเส้นทางไหม
- ระบบจะแจ้งเวลาถึงโดยประมาณ (ETA) ให้ผู้ใช้แอปทราบอย่างไร
- ใช้
RoadSnappedLocationProvider
เพื่อรับ ตำแหน่งปัจจุบันที่สแนปของคนขับได้ไหม หากการนำทางไม่ได้อยู่ในเบื้องหน้า - Navigation SDK รองรับ Geofencing ไหม
- ฉันจะปิดใช้การแจ้งเตือนเมื่อ แอปนำทางทำงานในเบื้องหลังได้ไหม
การปรับแต่ง UI
- ฉันจะใช้การกำหนดรหัสสีกับตัวเลือกเส้นทางที่ดีที่สุดได้ไหม
- Navigation SDK แสดงเวลาถึงโดยประมาณสำหรับจุดหมายสุดท้ายได้ไหม
- ฉันจะซ่อนการอัปเดตเวลาถึงโดยประมาณได้อย่างไร
- การปรับแต่ง UI ใดบ้างที่ใช้ได้กับ การ์ดส่วนหัวและส่วนท้าย
การกำหนดเส้นทาง
- ฉันจะระบุเส้นทางที่เฉพาะเจาะจง ให้คนขับหรือนำเส้นทางอื่นออกได้ไหม
- ฉันแสดงป้ายกำกับอื่นให้คนขับเห็นสำหรับปลายทาง แทนตำแหน่งปลายทางเริ่มต้นได้ไหม
- ฉันใช้ Navigation SDK เพื่อติดตามการเบี่ยงเบนจากเส้นทางที่กำหนดได้ไหม
- คนขับจะออกจากการนำทางโดยไม่ สิ้นสุดเส้นทางได้ไหม
เครื่องมือจำลอง
เวิร์กโฟลว์
บริการด้านการเดินทาง
- การใช้ Navigation SDK แตกต่างกันอย่างไรสำหรับลูกค้าบริการการเดินทาง
- ฉันจะทราบได้อย่างไรว่าฉันเป็นลูกค้า Mobility Services
- ระบบจะเรียกเก็บเงิน Navigation SDK จากลูกค้า Mobility Services อย่างไร
- ลูกค้าของ Mobility Services ควรใช้เฉพาะ API ใดของ Navigation SDK
- หากฉันเป็นลูกค้า Mobility Services ฉันจะใช้การติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services ได้ไหม
รายละเอียดผลิตภัณฑ์
- แอปของคุณต้องใช้กล่องโต้ตอบที่มีประกาศข้อกำหนดในการให้บริการของ Navigation SDK ซึ่งผู้ขับขี่แต่ละรายต้องยอมรับ กล่องโต้ตอบนี้ช่วยให้คนขับ มีโอกาสยอมรับข้อกำหนดในการให้บริการ ไฟล์ข้อความของข้อกำหนด จะมาพร้อมกับ Navigation SDK
- ใน Android ให้ใช้วิธี
NavigationApi.showTermsAndConditionsDialog
เพื่อแสดงกล่องโต้ตอบที่มีข้อกำหนด - ใน iOS ให้โทร
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
- ภาษาที่ Google Maps บนอุปกรณ์เคลื่อนที่รองรับจะพร้อมใช้งานใน Navigation SDK โดยอัตโนมัติ อุปกรณ์มีภาษาของระบบเริ่มต้นและแอปไม่สามารถเปลี่ยนการตั้งค่านั้นได้ อย่างไรก็ตาม แอปมีสิทธิ์เข้าถึงกว่า 70 ภาษา
-
ได้ ใน Android เมื่อเริ่มแล้ว
LocationListener
จะทำงานต่อไปในเบื้องหลัง แอปจะยังคงสแนปตำแหน่งบนถนนและรักษา ทิศทางไว้ใน iOS หากต้องการรับข้อมูลอัปเดตตำแหน่งและทิศทางต่อไปในเบื้องหลัง ให้ใช้การปัดถนนและตั้งค่า
allowsBackgroundLocationUpdates
เป็นYES
-
ได้ เมื่อมีการสร้างหรือเปลี่ยนแปลงเส้นทาง
RouteChangeListener
จะระบุเส้นหลายเส้น - ไม่ SDK การนำทางไม่จำเป็นต้องติดตั้ง Google Maps บนอุปกรณ์เคลื่อนที่ ในอุปกรณ์
- ไม่ SDK การนำทางยังไม่มีฟังก์ชันนี้ในขณะนี้
- ได้ ทิศทางการจราจรพร้อมใช้งานและแสดงโดยค่าเริ่มต้น
ปัญหา
- ใน Xcode 12 แอปจะสร้างไม่ถูกต้องสำหรับเครื่องจำลอง ฉันจะแก้ไขปัญหานี้ได้อย่างไร
-
หากต้องการแก้ไขปัญหานี้ ให้เปิดการตั้งค่าการบิลด์โปรเจ็กต์ Xcode แล้วเพิ่ม
arm64
ไปยังExcluded Architectures
สำหรับการบิลด์ "iOS Simulator" เท่านั้นดูข้อมูลเพิ่มเติมได้ที่เธรด StackOverflow ต่อไปนี้
- GMSMapView ไม่โหลด
-
หาก GMSMapView ไม่โหลด ให้ทำดังนี้
- ตรวจสอบว่าได้เปิดใช้ NavSDK ใน Cloud Console แล้ว
- หากติดตั้ง Nav SDK แต่โปรเจ็กต์ไม่ได้ใช้ API ของ Nav SDK ให้นำออกจากไบนารี
เครือข่าย
- Navigation SDK จัดการการเชื่อมต่อที่ไม่ดีอย่างไร
- Navigation SDK จะแคชเส้นทางล่วงหน้าสำหรับการเดินทางแต่ละครั้ง ข้อมูลที่แคชไว้ล่วงหน้าประกอบด้วยข้อมูลการกำหนดเส้นทางเป็นเวลา 15-20 นาที และเส้นทางสำรองในกรณีที่คนขับเบี่ยงเบนจากเส้นทาง Navigation SDK จะประมาณตำแหน่งโดยใช้ GPS และเซ็นเซอร์ของอุปกรณ์
- มีโหมดออฟไลน์ไหม
- ไม่ SDK การนำทางไม่มีโหมดออฟไลน์ในขณะนี้ แต่ SDK มีข้อมูลที่แคชไว้ล่วงหน้า สำหรับการเดินทาง
ข้อมูล
- ฉันจะดึงข้อมูลป้ายจอด/จุดหมายทั้งหมดในการเดินทางก่อนเริ่ม เส้นทางได้ไหม
-
ได้ ใน Android หากต้องการดึงข้อมูลเส้นทาง ให้เรียกใช้
Navigator.getRouteSegments()
ใน iOS ให้โทร
GMSNavigator.routeLegs(read)
- มีคำแนะนำเส้นทางแบบเลี้ยวต่อเลี้ยวเมื่อเริ่มต้นเส้นทางไหม
- ได้ Navigation SDK จะแสดงรายการกลุ่มเส้นทาง นอกจากนี้ คนขับยังปัดผ่านการ์ดเส้นทางในส่วนหัว เพื่อดูการเลี้ยวแต่ละครั้งได้ด้วย
- จะสื่อสารเวลาถึงโดยประมาณกับผู้ใช้แอปอย่างไร
-
ใน Android ให้ทำตามขั้นตอนต่อไปนี้เพื่อระบุข้อมูลเวลาถึงโดยประมาณแก่ผู้ใช้แอป
- เรียกเวลาและระยะทางสำหรับจุดแวะพักทั้งหมดโดยใช้
Navigator.getTimeAndDistanceList()
- ส่งต่อข้อมูลนี้ไปยังแอปพลิเคชันไคลเอ็นต์เช่นเดียวกับที่คุณ ทำสำหรับเวลาถึงโดยประมาณของคนขับ
ใน iOS ให้ทำตามขั้นตอนต่อไปนี้เพื่อแสดงข้อมูลเวลาถึงโดยประมาณแก่ผู้ใช้แอป
- ดึงข้อมูลขาในการเดินทางโดยใช้
Navigator.getRouteSegments()
- โทรติดต่อ
GMSNavigator.timeToNextDestination
สำหรับการเดินทางแต่ละช่วง - ส่งต่อข้อมูลเวลาไปยังแอปพลิเคชันไคลเอ็นต์เช่นเดียวกับที่คุณทำสำหรับเวลาถึงโดยประมาณของคนขับ
- เรียกเวลาและระยะทางสำหรับจุดแวะพักทั้งหมดโดยใช้
-
RoadSnappedLocationProvider
ใช้เพื่อรับตำแหน่งปัจจุบันที่สแนปของคนขับได้ไหม หากการนำทางไม่ได้อยู่ในเบื้องหน้า -
ได้ ใน Android
RoadSnappedLocationProvider
จะทำงานใน เบื้องหลังโดยค่าเริ่มต้นใน iOS หากต้องการให้การนำทางทำงานในเบื้องหลัง ให้ใช้ Listener สำหรับ
GMSRoadSnappedLocationProviderListener
และตั้งค่าพร็อพเพอร์ตี้allowsBackgroundLocationUpdates
เป็นTRUE
- Navigation SDK รองรับ Geofencing ไหม
-
ไม่ ในบริบทของการนำทาง
remainingTimeOrdistanceChangeListener
ได้เปรียบกว่ารั้วภูมิศาสตร์ รั้วภูมิศาสตร์อาจไม่คำนึงถึง รูปทรงเรขาคณิตของถนน และอาจไม่ได้อยู่ตรงจุดที่ คนขับกำลังนำทางคุณสามารถประมาณฟังก์ชันนี้ได้โดยใช้
remainingTimeOrdistanceChangeListener
- กำหนดเกณฑ์เพื่อระบุความถี่ของการเรียกกลับ
- ตรวจสอบระยะทางที่เหลือไปยังจุดหมาย
เช่น หากตั้งค่าเกณฑ์เป็น 100 เมตร คุณจะได้รับการเรียกกลับเมื่อระยะทางไปยังจุดหมายเปลี่ยนแปลง 100 เมตร เมื่อระยะทางลดลง คุณสามารถอัปเดตเกณฑ์นี้ให้มีค่าน้อยลง และรับการเรียกกลับได้บ่อยขึ้น จากนั้นให้ตรวจสอบระยะทางที่เหลือเพื่อ ดูว่าคุณอยู่ใกล้กับสถานที่รับ/ส่งมากพอหรือไม่
ใน iOS ให้ใช้ Listener
GMSNavigatorListener.didUpdateRemainingDistance
เพื่อจัดการระยะห่างระหว่างการแจ้งเตือน - ฉันจะปิดใช้การแจ้งเตือนเมื่อแอปนำทางทำงานในเบื้องหลังได้ไหม
-
ได้ ใน Android ให้ใช้
Navigator.setHeadsUpNotificationEnabled
เพื่อควบคุมการแจ้งเตือน เมธอดนี้มีอาร์กิวเมนต์บูลีนFALSE
ปิดใช้การแจ้งเตือนTRUE
เปิดใช้การแจ้งเตือนใน iOS ให้ปิดใช้การแจ้งเตือนในเบื้องหลังสำหรับตำแหน่งที่สแนปกับถนนโดย ตั้งค่า
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
เป็น NOหากต้องการปิดใช้การประมวลผลในเบื้องหลังสำหรับการแจ้งเตือนตำแหน่งอื่นๆ ให้โทรหา
GMSNavigator.sendsBackgroundNotifications(NO)
การปรับแต่ง UI
- ฉันจะกำหนดรหัสสีให้กับตัวเลือกเส้นทางที่ดีที่สุดได้ไหม
- ไม่ได้ ขณะนี้ระบบยังไม่รองรับการกำหนดรหัสสีให้กับตัวเลือกเส้นทางที่เฉพาะเจาะจง
- Navigation SDK แสดงเวลาถึงโดยประมาณสำหรับจุดหมายสุดท้ายได้ไหม
-
ได้ ใน Android ให้ใช้วิธีการต่อไปนี้
- เรียกเวลาและระยะทางสำหรับจุดแวะพักทั้งหมดโดยใช้
Navigator.getTimeAndDistanceList()
- ซ่อนเวลาถึงโดยประมาณของจุดพักรถปัจจุบันโดยใช้
NavigationFragment.setEtaCardEnabled(false)
- แสดงเวลาถึงโดยประมาณของจุดหมายสุดท้าย
ใน iOS ให้ใช้รายการต่อไปนี้
- โทรมาที่
GMSNavigator.routeLegs(read)
- ในส่วนสุดท้าย ให้โทรหา
GMSNavigator.timeToNextDestination
- ซ่อนเวลาถึงโดยประมาณของจุดแวะพักปัจจุบันโดยใช้
MSMapView.settings.navigationFooterEnabled=NO
เป็น FALSE - แสดงเวลาถึงโดยประมาณของจุดหมายสุดท้าย
- เรียกเวลาและระยะทางสำหรับจุดแวะพักทั้งหมดโดยใช้
- ฉันจะซ่อนการอัปเดตเวลาถึงโดยประมาณได้อย่างไร
-
คุณปิดใช้การ์ดเวลาถึงโดยประมาณได้ด้วยวิธีต่อไปนี้
- ใน Android ให้ใช้
navigationView.setEtaCardEnabled(false)
- ใน iOS ให้ใช้
GMSMapView.settings.navigationFooterEnabled=NO
- ใน Android ให้ใช้
-
ใน Android คุณใช้
StylingOptions
เพื่อตั้งค่าสไตล์สีพื้นหลัง หากต้องการซ่อนหรือแสดงส่วนหัวและส่วนท้าย ให้ใช้ฟังก์ชันสมาชิกsetHeaderEnabled
และsetFooterEnabled
ของNavigationFragment
ใน iOS ให้ใช้
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
เพื่อตั้งค่าสไตล์สีพื้นหลัง หากต้องการซ่อนหรือแสดงส่วนหัวและส่วนท้าย ให้ใช้พร็อพเพอร์ตี้navigationFooterEnabled
และnavigationHeaderEnabled
ของGMSUISettings
การกำหนดเส้นทาง
- ฉันระบุเส้นทางที่เฉพาะเจาะจงให้คนขับหรือนำเส้นทางอื่นออกได้ไหม
- ไม่ โดยค่าเริ่มต้น ระบบจะแสดงเส้นทางหลายเส้นทางและเส้นทางที่เร็วที่สุดจะมีลำดับความสำคัญ คุณสามารถเปลี่ยนเส้นทางเริ่มต้นได้โดยเพิ่มค่ากำหนด เช่น "หลีกเลี่ยง ทางหลวงและค่าผ่านทาง" ลงในคำขอ การเพิ่มจุดอ้างอิงจะส่งผลต่อเส้นทางด้วย
- ฉันแสดงป้ายกำกับอื่นสำหรับปลายทางให้ผู้ใช้แอปได้ไหม นอกเหนือจากตำแหน่งปลายทางเริ่มต้น
-
ได้ ใน Android ให้สร้าง
Marker
โดยมี ชื่อที่กำหนดเองสำหรับปลายทางและละติจูด/ลองจิจูด Navigation SDK จะแสดงชื่อที่กำหนดเองและพิกัด ในNavigationMap
ใน iOS คุณสร้างและแสดง
GMSMarker
สำหรับปลายทาง - ฉันใช้ Navigation SDK เพื่อติดตามการเบี่ยงเบนจากเส้นทางที่กำหนดได้ไหม
-
ได้ ใน Android ให้ใช้
Navigator.setRouteChangedListener
เพื่อ รับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงเส้นทางหรือมีการแนะนำเส้นทางใหม่- ลงทะเบียน Listener ที่ตรวจสอบตำแหน่งอุปกรณ์ตามเส้นทาง
โดยใช้วิธี
Navigator.setRouteChangedListener
- เพิ่มโค้ดลงในตัวแฮนเดิลเหตุการณ์การเรียกกลับ
onRouteChanged
ดังนี้- ส่งข้อความถึงผู้ใช้แอปพร้อมข้อมูลเวลาถึงโดยประมาณและระยะทางที่อัปเดตแล้ว
- ติดตามตำแหน่งของอุปกรณ์
- [ไม่บังคับ] เพิ่มฟังก์ชันอื่นๆ ที่แอปของคุณต้องใช้เพื่อจัดการ เมื่อคนขับไม่ได้อยู่บนเส้นทางที่กำหนด
ใน iOS ให้ใช้
GMSNavigator
และ Listener เพื่อ รับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงเส้นทางหรือมีการแนะนำเส้นทางใหม่- ในตัวควบคุมมุมมองของแผนที่ ให้ใช้โปรโตคอล
GMSNavigatorListener
และโปรโตคอลGMSRoadSnappedLocationProviderListener
- ใช้งาน
GMSNavigatorListener.navigatorDidChangeRoute
- เข้าถึงเส้นทางใหม่โดยใช้พร็อพเพอร์ตี้
routeLegs
และcurrentRouteLeg
ของGMSNavigator
- ลงทะเบียน Listener ที่ตรวจสอบตำแหน่งอุปกรณ์ตามเส้นทาง
โดยใช้วิธี
-
ได้ ใน Android ให้เรียกใช้เมธอด
Navigator.stopGuidance()
เพื่อ หยุดการนำทางใน iOS ให้โทร
GMSNavigator.clearDestinations
เครื่องมือจำลอง
- เครื่องจำลองรองรับการเปลี่ยนแปลงเส้นทางไหม
-
ได้ ใน Android ให้เรียกใช้
simulateLocationsAlongNewRoute
เพื่อ จำลองการเดินทางที่มีการเปลี่ยนเส้นทาง เมธอดsimulateLocationsAlongExistingRoute
จะไม่สนใจการเปลี่ยนแปลงเส้นทางที่มีอยู่ใน iOS ให้ใช้
GMSLocationSimulator.simulateAlongNewRouteToDestinations
เพื่อจำลองการเดินทางที่มีการเปลี่ยนเส้นทาง หากคุณไม่คาดว่า จะมีการเปลี่ยนแปลงเส้นทาง ให้ใช้GMSLocationSimulator.simulateLocationsAlongExistingRoute
หรือGMSLocationSimulator.simulateAlongNewRouteToDestinations
เวิร์กโฟลว์
- ฉันจะปิดการแจ้งเตือนหลังจากปิดกิจกรรมที่มี Navigation Fragment ได้อย่างไร
-
การแจ้งเตือนการนำทางจะยังคงแสดงอยู่ระหว่างการนำทาง เมื่อปิดกิจกรรมแล้ว เมื่อยานพาหนะถึง จุดหมาย การนำทางจะหยุดลงและการแจ้งเตือนจะหายไป
หากต้องการจัดการการคลิกในการแจ้งเตือน ให้ใช้
Navigator.startGuidance(intent resumeIntent)
resume intent
จะเริ่มทำงานเมื่อผู้ใช้แอปคลิกการแจ้งเตือน โดยปกติแล้วNavigator.startguidance(getIntent())
จะเรียกจาก Activity หลัก ซึ่งจะเรียก Activity อีกครั้งเมื่อผู้ใช้แอปคลิกการแจ้งเตือน
บริการด้านการเดินทาง
บริการการเดินทางของ Google Maps Platform มีชุด API และ SDK ที่ช่วยรองรับความต้องการขององค์กรสำหรับธุรกิจการขนส่งและโลจิสติกส์ สําหรับลูกค้าที่ใช้บริการการเดินทาง โดยทั่วไปจะใช้ Navigation SDK ร่วมกับบริการที่เกี่ยวข้องเพื่อเพิ่มประสิทธิภาพเส้นทาง การจัดส่ง การติดตามงาน ข้อมูลวิเคราะห์กลุ่มยานพาหนะ และอื่นๆ นอกจากนี้ ระบบยังเรียกเก็บเงินแตกต่างกันสำหรับลูกค้า Mobility Services ที่ใช้ Navigation SDK ด้วย ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของบริการการเดินทาง
ผลิตภัณฑ์ Mobility มีให้บริการแก่ลูกค้าบางรายเท่านั้น โปรดติดต่อตัวแทนฝ่ายขายเพื่อขอข้อมูลเพิ่มเติม
ReportBillableEvent
ในโค้ด เฉพาะลูกค้า Mobility Services เท่านั้นที่ควรโทรหาReportBillableEvent
method
Navigation SDK มี API หลายรายการที่ออกแบบมาสำหรับลูกค้าของ Mobility Services เท่านั้น ซึ่ง Google จะเรียกเก็บเงินตามธุรกรรม หากคุณไม่ใช่ลูกค้า Mobility Services วิธีต่อไปนี้จะใช้ไม่ได้
ได้ ลูกค้า Mobility Services สามารถใช้ทั้งการติดตั้งใช้งาน Mobility Services และการติดตั้งใช้งานที่ไม่ใช่ Mobility Services ของ Navigation SDK อย่างไรก็ตาม คุณจะใช้การติดตั้งใช้งานได้เพียงประเภทเดียวในแอปครั้งละ 1 รายการ นอกจากนี้ คุณยังต้องสร้างโปรเจ็กต์ Google Cloud, บัญชีสำหรับการเรียกเก็บเงิน และคีย์ API ใหม่แยกต่างหากจากโปรเจ็กต์ บัญชีสำหรับการเรียกเก็บเงิน และคีย์ API ที่ใช้กับการติดตั้งใช้งาน Mobility Services ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตั้งค่า Navigation SDK
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้การติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services รวมถึงการย้ายข้อมูลแอปจากประเภทการติดตั้งใช้งานหนึ่งไปยังอีกประเภทหนึ่งได้โดยติดต่อตัวแทนฝ่ายดูแลลูกค้าของ Google
หมายเหตุ: หากคุณไม่ใช่ลูกค้า Mobility Services และสนใจดูข้อมูลเพิ่มเติมเกี่ยวกับการรวบรวม API และ SDK ของ Mobility Services โปรดติดต่อทีมขายของ Google Maps Platform