คำถามที่พบบ่อย
รายละเอียดสินค้า
- ควรแสดงประกาศข้อกำหนดในการให้บริการของ 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 จากลูกค้าบริการการเดินทางอย่างไร
- ลูกค้าบริการการเดินทางควรใช้เฉพาะ API ใดของ Navigation SDK
- หากฉันเป็นลูกค้า Mobility Services ฉันจะใช้การติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services ได้ไหม
รายละเอียดสินค้า
- แอปของคุณต้องใช้กล่องโต้ตอบที่มีประกาศข้อกำหนดในการให้บริการของ Navigation SDK ซึ่งผู้ขับขี่แต่ละรายต้องยอมรับ กล่องโต้ตอบนี้ช่วยให้คนขับ มีโอกาสยอมรับข้อกำหนดในการให้บริการ ไฟล์ข้อความของข้อกำหนด จะมาพร้อมกับ Navigation SDK
- ใน Android ให้ใช้วิธี
NavigationApi.showTermsAndConditionsDialogเพื่อแสดงกล่องโต้ตอบที่มีข้อกำหนด - ใน iOS ให้โทร
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName - ภาษาที่ Google Maps Mobile รองรับจะพร้อมใช้งานใน Navigation SDK โดยอัตโนมัติ อุปกรณ์มีภาษาของระบบเริ่มต้นและแอปไม่สามารถเปลี่ยนการตั้งค่านั้นได้ อย่างไรก็ตาม แอปมีสิทธิ์เข้าถึงกว่า 70 ภาษา
-
ได้ ใน Android เมื่อเริ่มแล้ว
LocationListenerจะทำงานต่อในเบื้องหลัง แอปจะยังคงสแนปตำแหน่งบนถนนและรักษา การวางแนวใน iOS หากต้องการรับข้อมูลอัปเดตตำแหน่งและทิศทางต่อไปในเบื้องหลัง ให้ใช้การปัดถนนและตั้งค่า
allowsBackgroundLocationUpdatesเป็นYES -
ได้ เมื่อมีการสร้างหรือเปลี่ยนแปลงเส้นทาง
RouteChangeListenerจะระบุเส้นหลายเส้น - ไม่ Navigation SDK ไม่ได้กำหนดให้ต้องติดตั้ง Google Maps Mobile ในอุปกรณ์
- ไม่ 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 จะแสดงรายการกลุ่มเส้นทาง นอกจากนี้ คนขับยังปัดผ่านการ์ดเส้นทางในส่วนหัว เพื่อดูการเลี้ยวแต่ละครั้งได้ด้วย
- มีการสื่อสารเวลาที่คาดว่าจะถึง (ETA) กับผู้ใช้แอปอย่างไร
-
ใน Android ให้ทำตามขั้นตอนต่อไปนี้เพื่อระบุข้อมูลเวลาถึงโดยประมาณแก่ผู้ใช้แอป
- ดึงข้อมูลเวลาและระยะทางสำหรับจุดแวะพักทั้งหมดโดยใช้
Navigator.getTimeAndDistanceList() - ส่งต่อข้อมูลนี้ไปยังแอปพลิเคชันไคลเอ็นต์เช่นเดียวกับที่คุณ ทำสำหรับเวลาถึงโดยประมาณของคนขับ
ใน iOS ให้ทำตามขั้นตอนต่อไปนี้เพื่อระบุข้อมูลเวลาถึงโดยประมาณแก่ผู้ใช้แอป
- ดึงข้อมูลช่วงในเส้นทางโดยใช้
Navigator.getRouteSegments() - โทรหา
GMSNavigator.timeToNextDestinationสำหรับการเดินทางแต่ละช่วง - ส่งต่อข้อมูลเวลาไปยังแอปพลิเคชันไคลเอ็นต์เช่นเดียวกับที่คุณทำสำหรับเวลาถึงโดยประมาณของคนขับ
- ดึงข้อมูลเวลาและระยะทางสำหรับจุดแวะพักทั้งหมดโดยใช้
-
สามารถใช้
RoadSnappedLocationProviderเพื่อรับตำแหน่งปัจจุบันที่สแนปของคนขับได้ไหม หากการนำทางไม่ได้อยู่ในเบื้องหน้า -
ได้ ใน Android
RoadSnappedLocationProviderจะทำงานใน เบื้องหลังโดยค่าเริ่มต้นใน iOS หากต้องการให้การนำทางทำงานในเบื้องหลัง ให้ใช้ Listener สำหรับ
GMSRoadSnappedLocationProviderListenerและตั้งค่าพร็อพเพอร์ตี้allowsBackgroundLocationUpdatesเป็นTRUE - Navigation SDK รองรับการกำหนดขอบเขตทางภูมิศาสตร์ไหม
-
ไม่ ในบริบทของการนำทาง
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 หลายรายการที่ออกแบบมาสำหรับลูกค้าบริการการเดินทางเท่านั้น ซึ่ง Google จะเรียกเก็บเงินจากลูกค้าเหล่านี้ตามธุรกรรม หากคุณไม่ใช่ลูกค้า Mobility Services วิธีต่อไปนี้จะไม่มีการดำเนินการ
ได้ ลูกค้า Mobility Services สามารถใช้ทั้งการติดตั้งใช้งาน Mobility Services และการติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services อย่างไรก็ตาม คุณใช้การติดตั้งใช้งานได้เพียงประเภทเดียวในแอปครั้งละ 1 รายการ นอกจากนี้ คุณยังต้องสร้างโปรเจ็กต์ Google Cloud, บัญชีสำหรับการเรียกเก็บเงิน และคีย์ API ใหม่แยกต่างหากจากที่ใช้กับการติดตั้งใช้งาน Mobility Services ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตั้งค่า Navigation SDK
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้การติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services รวมถึงการย้ายข้อมูลแอปจากประเภทการติดตั้งใช้งานหนึ่งไปยังอีกประเภทหนึ่งได้โดยติดต่อตัวแทนฝ่ายดูแลลูกค้าของ Google
หมายเหตุ: หากคุณไม่ใช่ลูกค้า Mobility Services และสนใจดูข้อมูลเพิ่มเติมเกี่ยวกับคอลเล็กชัน API และ SDK ของ Mobility Services โปรดติดต่อทีมขายของ Google Maps Platform