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

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

ปัญหา

เครือข่าย

ข้อมูล

การปรับแต่ง 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 ให้นำ Nav SDK ออกจากไบนารี

เครือข่าย

Navigation SDK จัดการกับการเชื่อมต่อที่ไม่ดีอย่างไร
Navigation SDK จะแคชเส้นทางล่วงหน้าสำหรับการเดินทางแต่ละครั้ง ข้อมูลที่แคชไว้ล่วงหน้าประกอบด้วยข้อมูลการกำหนดเส้นทางเป็นเวลา 15-20 นาที และเส้นทางสำรองในกรณีที่คนขับเบี่ยงออกจากเส้นทาง Navigation SDK จะประมาณตำแหน่งโดยใช้ GPS และเซ็นเซอร์ของอุปกรณ์
มีโหมดออฟไลน์ไหม
ไม่ Navigation SDK ไม่มีโหมดออฟไลน์ในขณะนี้ แต่ SDK จะให้ข้อมูลที่แคชไว้ล่วงหน้าสำหรับการเดินทาง

ข้อมูล

ฉันจะดึงข้อมูลจุดแวะพัก/จุดหมายทั้งหมดในการเดินทางก่อนเริ่มเส้นทางได้ไหม

ได้ ใน Android หากต้องการเรียกข้อมูลเส้นทาง ให้เรียกใช้ Navigator.getRouteSegments()

ใน iOS ให้โทรหา GMSNavigator.routeLegs(read)

มีคำแนะนำเส้นทางแบบเลี้ยวต่อเลี้ยวที่จุดเริ่มต้นของเส้นทางไหม
ใช่ Navigation SDK จะแสดงรายการส่วนของเส้นทาง นอกจากนี้ คนขับยังปัดผ่านการ์ดเส้นทางในส่วนหัวเพื่อดูการบังคับทิศทางแต่ละครั้งได้ด้วย
ระบบจะแจ้ง ETA ให้ผู้ใช้แอปทราบอย่างไร

ใน Android ให้ใช้ขั้นตอนต่อไปนี้เพื่อแสดงข้อมูล ETA แก่ผู้ใช้แอป

  1. ดึงข้อมูลเวลาและระยะทางสำหรับจุดอ้างอิงทั้งหมดโดยใช้ Navigator.getTimeAndDistanceList()
  2. ส่งต่อข้อมูลนี้ไปยังแอปพลิเคชันไคลเอ็นต์เช่นเดียวกับที่ทำกับ ETA ของคนขับ

ใน iOS ให้ใช้ขั้นตอนต่อไปนี้เพื่อแสดงข้อมูล ETA แก่ผู้ใช้แอป

  1. ดึงข้อมูลช่วงการเดินทางโดยใช้ Navigator.getRouteSegments()
  2. โทรหา GMSNavigator.timeToNextDestination สำหรับการเดินทางแต่ละช่วง
  3. ส่งต่อข้อมูลเวลาไปยังแอปพลิเคชันไคลเอ็นต์เช่นเดียวกับที่ทำกับ ETA ของคนขับ
สามารถใช้ RoadSnappedLocationProvider เพื่อรับตำแหน่งที่สแนปปัจจุบันของคนขับได้ไหมหากการนำทางไม่ได้อยู่ในเบื้องหน้า

ได้ ใน Android RoadSnappedLocationProvider จะทำงานในเบื้องหลังโดยค่าเริ่มต้น

ใน iOS หากต้องการให้การนำทางทำงานในเบื้องหลัง ให้ใช้ Listener สำหรับ GMSRoadSnappedLocationProviderListener และตั้งค่าพร็อพเพอร์ตี้ allowsBackgroundLocationUpdates เป็น TRUE

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

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

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

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

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

ใน 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. แสดงผล ETA ของจุดหมายปลายทางสุดท้าย

ใน iOS ให้ใช้สิ่งต่อไปนี้

  1. โทรมาที่ GMSNavigator.routeLegs(read)
  2. สำหรับช่วงสุดท้าย ให้โทรหา GMSNavigator.timeToNextDestination
  3. ซ่อนเวลาถึงโดยประมาณของจุดอ้างอิงปัจจุบันโดยใช้ MSMapView.settings.navigationFooterEnabled=NO เป็น FALSE
  4. แสดงผล ETA ของจุดหมายปลายทางสุดท้าย
ฉันจะซ่อนข้อมูลอัปเดตเกี่ยวกับ ETA ได้อย่างไร

คุณปิดใช้การ์ด ETA ได้ด้วยวิธีต่อไปนี้

  • ใน 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. เพิ่มโค้ดลงในเครื่องจัดการเหตุการณ์ Callback 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 ได้

เวิร์กโฟลว์

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

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

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

บริการคมนาคมขนส่ง

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

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

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

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

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

ลูกค้าบริการด้านการเดินทางควรใช้ API ใดของ Navigation SDK เท่านั้น

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

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

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

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

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