คำถามที่พบบ่อย
รายละเอียดผลิตภัณฑ์
- ควรแสดงประกาศข้อกำหนดในการให้บริการของ Navigation SDK อย่างไร
- คำแนะนำด้วยเสียงรองรับภาษาใดบ้าง
- ระบบจะรักษาทิศทางไว้เมื่อผู้ขับ ออกจากโหมดการนำทางหรือไม่
- เส้นหลายส่วนพร้อมใช้งานเมื่อเริ่ม หรือเปลี่ยนเส้นทางไหม
- ผู้ใช้แอปต้องติดตั้ง Google Maps บนอุปกรณ์เคลื่อนที่ไหม
- Navigation SDK ระบุที่จอดรถใกล้ร้านอาหารและจุดหมายอื่นๆ ได้ไหม
- Navigation SDK แสดงทิศทางการจราจรในเลนเมื่อเข้าใกล้จุดเลี้ยวหรือไม่
ปัญหา
เครือข่าย
ข้อมูล
- ฉันจะดึงข้อมูลป้ายจอดรถ/จุดหมายทั้งหมด ในการเดินทางก่อนเริ่มเส้นทางได้ไหม
- มีคำแนะนำเส้นทางแบบเลี้ยวต่อเลี้ยว เมื่อเริ่มต้นเส้นทางไหม
- ระบบจะแจ้งเวลาถึงโดยประมาณ (ETA) ให้ผู้ใช้แอปทราบอย่างไร
- ใช้
RoadSnappedLocationProvider
เพื่อรับ ตำแหน่งปัจจุบันที่สแนปของคนขับได้ไหม หากการนำทางไม่ได้อยู่ในเบื้องหน้า - Navigation SDK รองรับ Geofencing ไหม
- ฉันจะปิดใช้การแจ้งเตือนเมื่อ แอปนำทางทำงานในเบื้องหลังได้ไหม
การปรับแต่ง UI
- ฉันจะใช้การกำหนดรหัสสีกับตัวเลือกเส้นทางที่ดีที่สุดได้ไหม
- Navigation SDK แสดงเวลาถึงโดยประมาณสำหรับจุดหมายสุดท้ายได้ไหม
- ฉันจะซ่อนการอัปเดตเวลาถึงโดยประมาณได้อย่างไร
- การปรับแต่ง UI ใดบ้างที่ใช้ได้กับ การ์ดส่วนหัวและส่วนท้าย
การกำหนดเส้นทาง
- ฉันจะระบุเส้นทางที่เฉพาะเจาะจง ให้คนขับหรือนำเส้นทางอื่นออกได้ไหม
- ฉันแสดงป้ายกำกับอื่นให้คนขับเห็นสำหรับปลายทาง แทนตำแหน่งปลายทางเริ่มต้นได้ไหม
- ฉันใช้ Navigation SDK เพื่อติดตามการเบี่ยงเบนจากเส้นทางที่กำหนดได้ไหม
- คนขับจะออกจากการนำทางโดยไม่ สิ้นสุดเส้นทางได้ไหม
เครื่องมือจำลอง
เวิร์กโฟลว์
บริการด้านการเดินทาง
- การใช้ Navigation SDK แตกต่างกันอย่างไรสำหรับลูกค้า Mobility Services
- ฉันจะทราบได้อย่างไรว่าฉันเป็นลูกค้า 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 หลายรายการที่ออกแบบมาเพื่อใช้โดยลูกค้าของบริการการเดินทางเท่านั้น ซึ่ง Google จะเรียกเก็บเงินตามธุรกรรม หากคุณไม่ใช่ลูกค้า Mobility Services วิธีต่อไปนี้จะใช้ไม่ได้
ได้ ลูกค้า Mobility Services สามารถใช้ทั้งการติดตั้งใช้งาน Mobility Services และการติดตั้งใช้งานที่ไม่ใช่ Mobility Services ของ Navigation SDK อย่างไรก็ตาม คุณจะใช้การติดตั้งใช้งานได้เพียงประเภทเดียวในแอปครั้งละ 1 รายการ นอกจากนี้ คุณยังต้องสร้างโปรเจ็กต์ Google Cloud, บัญชีสำหรับการเรียกเก็บเงิน และคีย์ API ใหม่แยกต่างหากจากโปรเจ็กต์ บัญชี และคีย์ที่คุณใช้กับการติดตั้งใช้งาน Mobility Services ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมการตั้งค่า Navigation SDK
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการใช้การติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services รวมถึงการย้ายข้อมูลแอปจากประเภทการติดตั้งใช้งานหนึ่งไปยังอีกประเภทหนึ่ง โปรดติดต่อตัวแทนฝ่ายดูแลลูกค้าของ Google
หมายเหตุ: หากคุณไม่ใช่ลูกค้า Mobility Services และสนใจดูข้อมูลเพิ่มเติมเกี่ยวกับการรวบรวม API และ SDK ของ Mobility Services โปรดติดต่อทีมขายของ Google Maps Platform