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

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

ปัญหา

เครือข่าย

ข้อมูล

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

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

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

เวิร์กโฟลว์

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

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

แอปของคุณต้องใช้กล่องโต้ตอบที่มีประกาศข้อกำหนดในการให้บริการของ 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 ให้ทำตามขั้นตอนต่อไปนี้เพื่อระบุข้อมูลเวลาถึงโดยประมาณแก่ผู้ใช้แอป

  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

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

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

ได้ ใน 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 หลายรายการที่ออกแบบมาสำหรับลูกค้าของ Mobility Services เท่านั้น ซึ่ง Google จะเรียกเก็บเงินตามธุรกรรม หากคุณไม่ใช่ลูกค้า Mobility Services วิธีต่อไปนี้จะใช้ไม่ได้

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

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

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

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