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

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

ปัญหา

เครือข่าย

ข้อมูล

การปรับแต่ง 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 แล้ว
  • หากติดตั้ง 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 หากต้องการให้การนําทางทํางานในเบื้องหลัง ให้ใช้ Listener สำหรับ 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. ใน ViewController ของแผนที่ ให้ใช้โปรโตคอล 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 Services
หากไม่แน่ใจว่ากำลังใช้ Navigation SDK เป็นลูกค้า Mobility Services หรือไม่ ให้มองหาการเรียกใช้ ReportBillableEvent ในโค้ด เฉพาะลูกค้า Mobility Services เท่านั้นที่ควรโทรหาวิธีการ ReportBillableEvent

ระบบจะเรียกเก็บเงิน Navigation SDK ให้กับลูกค้า 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