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

รายละเอียดผลิตภัณฑ์

ปัญหา

เครือข่าย

ข้อมูล

การปรับแต่ง UI

การกำหนดเส้นทาง

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

เวิร์กโฟลว์

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

รายละเอียดผลิตภัณฑ์

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

ปัญหา

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

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

ดูข้อมูลเพิ่มเติมได้ที่ชุดข้อความใน StackOverflow ต่อไปนี้

GMSMapView ไม่โหลด

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

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

เครือข่าย

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

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

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

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

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

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

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

ฉันจะปิดใช้การแจ้งเตือนเมื่อแอปการนำทางทำงานอยู่เบื้องหลังได้ไหม

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

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

หากต้องการปิดใช้การประมวลผลในเบื้องหลังสำหรับการแจ้งเตือนตำแหน่งอื่นๆ ให้เรียกใช้ 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 และ Listeners ของ 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()) จะเรียกใช้จากกิจกรรมหลัก ซึ่งจะเรียกใช้กิจกรรมเมื่อผู้ใช้แอปคลิกการแจ้งเตือน

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

การใช้ Navigation SDK แตกต่างจากลูกค้าบริการยานพาหนะอย่างไร

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

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

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

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

ลูกค้า Mobility Services ควรใช้ Navigation SDK API ใดเท่านั้น

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

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

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

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

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