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

รายละเอียดสินค้า

ปัญหา

เครือข่าย

ข้อมูล

การปรับแต่ง 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 ยังไม่มีฟังก์ชันนี้
ได้ ทิศทางการจราจรพร้อมใช้งานและแสดงโดยค่าเริ่มต้น

ปัญหา

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

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

ดูข้อมูลเพิ่มเติมได้ที่เธรด StackOverflow ต่อไปนี้

GMSMapView ไม่โหลด

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

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

เครือข่าย

Navigation SDK จัดการการเชื่อมต่อที่ไม่ดีอย่างไร
Navigation SDK จะแคชเส้นทางล่วงหน้าสำหรับการเดินทางแต่ละครั้ง ข้อมูลที่แคชไว้ล่วงหน้าประกอบด้วยข้อมูลการกำหนดเส้นทางเป็นเวลา 15-20 นาที และเส้นทางสำรองในกรณีที่คนขับเบี่ยงเบนจากเส้นทาง Navigation 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 รองรับ Geofencing ไหม

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

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

  1. กำหนดเกณฑ์เพื่อระบุความถี่ของการเรียกกลับ
  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 โดยมี ชื่อที่กำหนดเองสำหรับปลายทางและละติจูด/ลองจิจูด Navigation SDK จะแสดงชื่อที่กำหนดเองและพิกัด ใน NavigationMap

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

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

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

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

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

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

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

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

Navigation SDK รองรับการกำหนดเส้นทางและการนำทางสำหรับรถบรรทุกและยานพาหนะขนาดใหญ่ไหม

ได้ การกำหนดเส้นทางสำหรับยานพาหนะขนาดใหญ่ (LVR) ช่วยให้คุณส่งโทเค็นเส้นทางเฉพาะรถบรรทุกที่สร้างโดย Routes API หรือ Route Optimization API ไปยัง Navigation SDK ได้ SDK จะให้การนำทางแบบเลี้ยวต่อเลี้ยวพร้อมข้อความไฮไลต์เส้นทาง (ข้อจำกัดด้านความสูง น้ำหนัก วัตถุอันตราย และรถบรรทุก) และจะคงโปรไฟล์ทางกายภาพของยานพาหนะไว้ในระหว่างการเปลี่ยนเส้นทางแบบไดนามิก ดูรายละเอียดได้ที่นำทางเส้นทางยานพาหนะขนาดใหญ่

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

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

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

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

เวิร์กโฟลว์

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

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

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

บริการด้านการเดินทาง

การใช้ Navigation SDK แตกต่างกันอย่างไรสำหรับลูกค้าบริการการเดินทาง

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

ผลิตภัณฑ์ Mobility มีให้บริการแก่ลูกค้าบางรายเท่านั้น โปรดติดต่อตัวแทนฝ่ายขายเพื่อสอบถามข้อมูลเพิ่มเติม

ฉันจะทราบได้อย่างไรว่าฉันเป็นลูกค้าบริการการเดินทาง
หากไม่แน่ใจว่าคุณกำลังติดตั้งใช้งาน Navigation SDK ในฐานะลูกค้า Mobility Services หรือไม่ ให้มองหาการเรียกใช้ ReportBillableEvent ในโค้ด เฉพาะลูกค้า Mobility Services เท่านั้นที่ควรเรียกใช้ReportBillableEvent method

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

ลูกค้า Mobility Services ควรใช้เฉพาะ API ใดของ Navigation SDK

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

หากฉันเป็นลูกค้าของ Mobility Services ฉันจะใช้การติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services ได้ไหม

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้การติดตั้งใช้งาน Navigation SDK ที่ไม่ใช่ Mobility Services รวมถึงการย้ายข้อมูลแอปจากประเภทการติดตั้งใช้งานหนึ่งไปยังอีกประเภทหนึ่งได้โดยติดต่อตัวแทนฝ่ายดูแลลูกค้าของ Google

หมายเหตุ: หากคุณไม่ใช่ลูกค้า Mobility Services และสนใจดูข้อมูลเพิ่มเติมเกี่ยวกับคอลเล็กชัน API และ SDK ของ Mobility Services โปรดติดต่อทีมขายของ Google Maps Platform