Câu hỏi thường gặp
Thông tin về sản phẩm
- Điều khoản SDK điều hướng nên Thông báo về Dịch vụ có xuất hiện không?
- Tính năng hướng dẫn bằng giọng nói hỗ trợ những ngôn ngữ nào?
- Ổ trục có được duy trì khi người lái xe không thoát khỏi chế độ chỉ đường?
- Có hình nhiều đường khi bắt đầu không hay thay đổi một tuyến đường?
- Người dùng ứng dụng có cần phải có Google Maps không cài đặt qua thiết bị di động không?
- SDK điều hướng có thể xác định bãi đỗ xe gần nhà hàng và các điểm đến khác không?
- SDK điều hướng có phải hiển thị hướng lưu thông trên các làn đường khi đến gần một điểm rẽ?
- SDK điều hướng nào Chỉ khách hàng Dịch vụ di động mới được sử dụng API?
Vấn đề
- Trong Xcode 12, ứng dụng không tạo một cách chính xác cho trình mô phỏng. Làm cách nào để khắc phục vấn đề này?
GMSMapView
không tải được.
Mạng
- Làm cách nào SDK điều hướng có xử lý được tình trạng kết nối kém không?
- Có chế độ ngoại tuyến không?
Dữ liệu
- Tôi có thể truy xuất tất cả điểm dừng/điểm đến trong một hành trình trước khi bắt đầu tuyến đường?
- Có hướng dẫn về tuyến đường từng chặng không khi bắt đầu một tuyến đường?
- Thời gian đến dự kiến như thế nào (ETA) có được thông báo cho người dùng ứng dụng không?
RoadSnappedLocationProvider
được dùng để lấy thông tin vị trí hiện tại được chụp nếu chỉ đường không ở nền trước?- SDK điều hướng có phải có hỗ trợ khoanh vùng địa lý không?
- Tôi có thể tắt thông báo khi ứng dụng Chỉ đường đang chạy trong nền không?
Tuỳ chỉnh giao diện người dùng
- Tôi có thể tô màu mã đẹp nhất không chọn tuyến đường?
- SDK điều hướng có thể hiển thị thời gian đến dự kiến của điểm đến cuối cùng không?
- Làm cách nào để ẩn thông tin cập nhật về thời gian đến dự kiến?
- Những cách tuỳ chỉnh giao diện người dùng có sẵn cho các thẻ đầu trang và chân trang không?
Đang định tuyến
- Tôi có thể cung cấp một tuyến đường cụ thể không cho người lái xe hoặc xoá tuyến đường thay thế không?
- Tôi có thể cho người lái xe xem một nhãn khác không? cho điểm đến khác với vị trí điểm đến mặc định?
- Tôi có thể sử dụng SDK điều hướng không? để theo dõi các sai lệch so với một lộ trình đã xác định không?
- Người lái xe có thể thoát khỏi chế độ chỉ đường mà không cần hoàn thành tuyến đường này không?
Trình mô phỏng
Quy trình công việc
Thông tin về sản phẩm
- Ứng dụng của bạn phải triển khai một hộp thoại có Điều khoản SDK điều hướng về Dịch vụ mà mỗi tài xế phải chấp nhận. Hộp thoại này cung cấp cho người lái xe cơ hội đồng ý với Điều khoản dịch vụ. Tệp văn bản chứa các điều khoản được cung cấp cùng với SDK điều hướng.
- Trong Android, hãy sử dụng
NavigationApi.showTermsAndConditionsDialog
để hiển thị hộp thoại có chứa các cụm từ. - Trong iOS, gọi
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Mọi ngôn ngữ được Google Maps dành cho thiết bị di động hỗ trợ sẽ tự động có sẵn cho SDK điều hướng. Một thiết bị có ngôn ngữ hệ thống mặc định và ứng dụng không thể thay đổi chế độ cài đặt đó; tuy nhiên, ứng dụng này có quyền truy cập hơn 70 ngôn ngữ.
-
Có. Trong Android, sau khi bắt đầu,
LocationListener
tiếp tục sẽ chạy trong nền. Ứng dụng của bạn tiếp tục xác định vị trí và duy trì phương hướng.Trong iOS, để tiếp tục nhận thông tin cập nhật về vị trí và góc phương vị trong nền, thực hiện chụp ảnh đường và thiết lập
allowsBackgroundLocationUpdates
thànhYES
. -
Có. Khi một tuyến đường được tạo hoặc thay đổi,
RouteChangeListener
cung cấp hình nhiều đường. - Không, SDK điều hướng không yêu cầu Google Maps dành cho thiết bị di động được cài đặt trên thiết bị.
- Không, SDK điều hướng không cung cấp chức năng này lúc này bất cứ lúc nào.
- Đúng vậy. Hướng lưu thông có sẵn và được hiển thị theo mặc định.
- SDK điều hướng nào Chỉ khách hàng Dịch vụ di động mới được sử dụng API?
-
Có một số API trong SDK điều hướng chỉ dành cho khách hàng Dịch vụ di động được Google tính phí trên cơ sở mỗi giao dịch. Nếu bạn không phải là khách hàng Dịch vụ di động, thì các phương thức sau đây không hoạt động:
Vấn đề
- Trong Xcode 12, ứng dụng không tạo bản dựng chính xác cho trình mô phỏng. Làm cách nào để khắc phục vấn đề này?
-
Để khắc phục vấn đề này, hãy mở phần Cài đặt bản dựng của dự án Xcode rồi thêm
arm64
vàoExcluded Architectures
cho "Trình mô phỏng iOS" chỉ có bản dựng.Để biết thêm thông tin, hãy xem phần luồng StackOverflow.
- GMSMapView không tải.
-
Nếu GMSMapView không tải:
- Kiểm tra để đảm bảo bạn đã bật NavSDK trong Cloud Console.
- Nếu bạn đã cài đặt SDK điều hướng, nhưng dự án của bạn không sử dụng API SDK điều hướng, hãy xoá SDK đó khỏi tệp nhị phân.
Mạng
- SDK điều hướng xử lý kết nối kém như thế nào?
- SDK điều hướng sẽ lưu trước tuyến đường vào bộ nhớ đệm của mỗi hành trình. Thông tin được lưu trước trong bộ nhớ đệm bao gồm thông tin định tuyến trong 15-20 phút, và các lựa chọn tuyến đường trong trường hợp người lái xe đi chệch khỏi tuyến đường. Chiến lược phát hành đĩa đơn SDK điều hướng ước chừng vị trí bằng cách sử dụng GPS và các cảm biến.
- Có chế độ ngoại tuyến không?
- Không, SDK điều hướng không cung cấp chế độ ngoại tuyến vào lúc này; tuy nhiên, SDK không cung cấp thông tin được lưu trước trong bộ nhớ đệm cho một hành trình.
Dữ liệu
- Tôi có thể truy xuất tất cả điểm dừng/điểm đến trong một hành trình trước khi bắt đầu không? tuyến đường?
-
Có. Trong Android, để truy xuất thông tin chỉ đường cho một tuyến đường, hãy gọi
Navigator.getRouteSegments()
.Trong iOS, hãy gọi
GMSNavigator.routeLegs(read)
. - Có hướng dẫn tuyến đường từng chặng ở đầu tuyến đường không?
- Đúng vậy. SDK điều hướng cung cấp một danh sách các đoạn tuyến. Ngoài ra, người lái xe có thể vuốt qua thẻ chỉ đường trong phần đầu để xem từng cách thao tác.
- ETA được thông báo cho người dùng ứng dụng như thế nào?
-
Trong Android, hãy làm theo các bước sau để cung cấp thông tin về Giờ đến dự kiến cho người dùng ứng dụng:
- Truy xuất thời gian và khoảng cách cho tất cả các điểm tham chiếu bằng cách sử dụng
Navigator.getTimeAndDistanceList()
. - Chuyển tiếp thông tin này đến ứng dụng dưới tên bạn hiện đang áp dụng cho thời gian đến dự kiến của người lái xe.
Trên iOS, hãy làm theo các bước sau để cung cấp thông tin về Giờ đến dự kiến cho người dùng ứng dụng:
- Truy xuất các chân trong hành trình bằng cách sử dụng
Navigator.getRouteSegments()
. - Gọi
GMSNavigator.timeToNextDestination
cho mỗi chặng của hành trình. - Chuyển tiếp thông tin về thời gian đến ứng dụng khi bạn hiện đang áp dụng cho thời gian đến dự kiến của người lái xe.
- Truy xuất thời gian và khoảng cách cho tất cả các điểm tham chiếu bằng cách sử dụng
-
Có thể sử dụng
RoadSnappedLocationProvider
để lấy thông tin của người lái xe không? vị trí hiện tại được chụp nếu chỉ đường không ở nền trước? -
Có. Trong Android,
RoadSnappedLocationProvider
chạy trong nền theo mặc định.Trong iOS, để tiếp tục chạy điều hướng ở chế độ nền, hãy triển khai trình nghe cho
GMSRoadSnappedLocationProviderListener
và đặt từallowsBackgroundLocationUpdates
đếnTRUE
. - SDK điều hướng có hỗ trợ tính năng khoanh vùng địa lý không?
-
Không. Trong ngữ cảnh điều hướng,
remainingTimeOrdistanceChangeListener
có lợi thế hơn so với khoanh vùng địa lý đơn giản. Khoanh vùng địa lý có thể không tính đến hình học của đường và có thể không tập trung vào điểm chính xác mà người lái xe đang điều hướng.Bạn có thể ước chừng chức năng này bằng cách sử dụng
remainingTimeOrdistanceChangeListener
.- Đặt ngưỡng để xác định tần suất của lệnh gọi lại.
- Hãy kiểm tra quãng đường còn lại tới điểm đến.
Ví dụ: nếu bạn đặt ngưỡng là 100m, bạn sẽ nhận được lệnh gọi lại khi khoảng cách tới điểm đến thay đổi 100m. Khi khoảng cách giảm xuống, bạn có thể cập nhật ngưỡng này lên mức nhỏ hơn giá trị và nhận được lệnh gọi lại thường xuyên hơn. Sau đó, kiểm tra khoảng cách còn lại để xác định xem bạn có ở đủ gần vị trí nhận/trả xe không.
Trên iOS, hãy triển khai trình nghe
GMSNavigatorListener.didUpdateRemainingDistance
để quản lý khoảng cách giữa các thông báo. - Tôi có thể tắt thông báo khi ứng dụng Chỉ đường chạy trong nền không?
-
Có. Trong Android, hãy sử dụng
Navigator.setHeadsUpNotificationEnabled
để kiểm soát thông báo. Phương thức này có một đối số boolean.FALSE
tắt thông báo;TRUE
cho phép thông báo.Trong iOS, hãy tắt thông báo trong nền cho các vị trí bị chặn đường bằng cách cài đặt
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
thành KHÔNGĐể tắt tính năng xử lý nền cho các thông báo khác về vị trí, hãy gọi
GMSNavigator.sendsBackgroundNotifications(NO)
.
Tuỳ chỉnh giao diện người dùng
- Tôi có thể tô màu mã lựa chọn tuyến đường tốt nhất không?
- Không. Mã hoá bằng màu cho một tuỳ chọn tuyến đường cụ thể không được hỗ trợ tại thời điểm này.
- SDK điều hướng có thể hiển thị giờ đến dự kiến cho điểm đến cuối cùng không?
-
Có. Trong Android, hãy sử dụng các phương thức sau:
- Truy xuất thời gian và khoảng cách cho tất cả các điểm tham chiếu bằng cách sử dụng
Navigator.getTimeAndDistanceList()
. - Ẩn thời gian đến dự kiến của điểm tham chiếu hiện tại bằng cách sử dụng
NavigationFragment.setEtaCardEnabled(false)
. - Hiển thị thời gian đến dự kiến cuối cùng.
Trong iOS, hãy sử dụng:
- Gọi cho
GMSNavigator.routeLegs(read)
. - Ở chặng cuối, gọi
GMSNavigator.timeToNextDestination
. - Ẩn thời gian đến dự kiến của điểm tham chiếu hiện tại bằng cách sử dụng
MSMapView.settings.navigationFooterEnabled=NO
thành FALSE. - Hiển thị thời gian đến dự kiến cuối cùng.
- Truy xuất thời gian và khoảng cách cho tất cả các điểm tham chiếu bằng cách sử dụng
- Làm cách nào để ẩn thông tin cập nhật về thời gian đến dự kiến?
-
Bạn có thể tắt thẻ ETA bằng các phương pháp sau:
- Trong Android, hãy sử dụng
navigationView.setEtaCardEnabled(false)
. - Trong iOS, hãy sử dụng
GMSMapView.settings.navigationFooterEnabled=NO
.
- Trong Android, hãy sử dụng
-
Trong Android, bạn dùng
StylingOptions
để đặt nền định kiểu màu. Để ẩn hoặc hiển thị tiêu đề và chân trang, hãy sử dụngsetHeaderEnabled
và Hàm thành phầnsetFooterEnabled
củaNavigationFragment
.Trong iOS, hãy sử dụng
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
để đặt kiểu màu nền. Để ẩn hoặc hiển thị đầu trang và chân trang sử dụngnavigationFooterEnabled
vànavigationHeaderEnabled
thuộc tính củaGMSUISettings
.
Đang định tuyến
- Tôi có thể cung cấp một tuyến đường cụ thể không cho người lái xe hoặc xoá tuyến đường thay thế?
- Không. Theo mặc định, hệ thống sẽ cung cấp nhiều tuyến đường và tuyến đường nhanh nhất sẽ có mức độ ưu tiên. Bạn có thể tác động đến tuyến đường mặc định bằng cách thêm các lựa chọn ưu tiên, chẳng hạn như "tránh đường cao tốc và trạm thu phí," cho yêu cầu của bạn. Việc thêm điểm tham chiếu cũng ảnh hưởng đến tuyến đường.
- Tôi có thể hiển thị cho người dùng ứng dụng một nhãn cho đích đến khác với nhãn mặc định không? vị trí đích?
-
Có. Trong Android, hãy tạo một
Marker
có phần tử tiêu đề tuỳ chỉnh cho điểm đến và vĩ độ/kinh độ. Chiến lược phát hành đĩa đơn SDK điều hướng hiển thị tiêu đề tuỳ chỉnh và toạ độ trênNavigationMap
.Trong iOS, bạn tạo và hiển thị
GMSMarker
cho đích đến. - Tôi có thể sử dụng SDK điều hướng để theo dõi các sai lệch so với một đường dẫn đã xác định không?
-
Có. Trong Android, hãy sử dụng
Navigator.setRouteChangedListener
để nhận thông báo khi một tuyến đường thay đổi hoặc một tuyến đường mới được đề xuất:- Đăng ký một trình nghe kiểm tra vị trí của thiết bị dọc theo tuyến đường
bằng phương thức
Navigator.setRouteChangedListener
. - Thêm mã vào trình xử lý sự kiện gọi lại
onRouteChanged
:- Gửi tin nhắn cho người dùng ứng dụng để cập nhật thông tin về thời gian đến dự kiến và khoảng cách.
- Theo dõi vị trí của thiết bị.
- [Không bắt buộc] Thêm chức năng khác mà ứng dụng của bạn yêu cầu để xử lý khi người lái xe không đi đúng tuyến đường quy định.
Trong iOS, hãy dùng
GMSNavigator
và trình nghe để nhận thông báo khi một tuyến đường thay đổi hoặc một tuyến đường mới được đề xuất:- Trên trình điều khiển chế độ xem của bản đồ, hãy triển khai
GMSNavigatorListener
và giao thứcGMSRoadSnappedLocationProviderListener
. - Triển khai
GMSNavigatorListener.navigatorDidChangeRoute
. - Truy cập tuyến đường mới bằng cách sử dụng
routeLegs
và Các thuộc tínhcurrentRouteLeg
củaGMSNavigator
.
- Đăng ký một trình nghe kiểm tra vị trí của thiết bị dọc theo tuyến đường
bằng phương thức
-
Có. Trong Android, hãy gọi phương thức
Navigator.stopGuidance()
để ngừng điều hướng.Trong iOS, hãy gọi
GMSNavigator.clearDestinations
.
Trình mô phỏng
- Trình mô phỏng có hỗ trợ thay đổi tuyến đường không?
-
Có. Trong Android, hãy gọi
simulateLocationsAlongNewRoute
tới mô phỏng một hành trình có thay đổi tuyến đường.simulateLocationsAlongExistingRoute
phương thức sẽ bỏ qua các thay đổi đối với tuyến hiện có.Trong iOS, hãy sử dụng
GMSLocationSimulator.simulateAlongNewRouteToDestinations
để mô phỏng một hành trình có thay đổi tuyến đường. Nếu bạn không dự đoán bất kỳ thay đổi nào về tuyến đường, bạn có thể sử dụngGMSLocationSimulator.simulateLocationsAlongExistingRoute
hoặcGMSLocationSimulator.simulateAlongNewRouteToDestinations
.
Quy trình công việc
- Làm cách nào để đóng thông báo sau khi đóng một hoạt động có chứa mảnh điều hướng?
-
Thông báo điều hướng vẫn hiển thị trong khi điều hướng. khi hoạt động này bị đóng. Khi xe đến điểm đến, điều hướng dừng và thông báo biến mất.
Để xử lý các lượt nhấp vào thông báo, hãy sử dụng
Navigator.startGuidance(intent resumeIntent)
.resume intent
sẽ kích hoạt khi người dùng ứng dụng nhấp vào thông báo đó. Thông thường,Navigator.startguidance(getIntent())
được gọi từ Hoạt động chính để gọi lại Hoạt động khi người dùng ứng dụng nhấp vào thông báo.