Google Navigation SDK (Android): SetDestinations (..., CustomRouteSoptions (Routetoken)) по -прежнему занимает самый бысAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Google Navigation SDK (Android): SetDestinations (..., CustomRouteSoptions (Routetoken)) по -прежнему занимает самый быс

Сообщение Anonymous »

Я использую Google Navigation SDK для Android вместе с API Routes - DIRECTIONS/V2: COMPUTEROUTES .
от ComputOutes Я получаю два маршрута: по умолчанию один и альтернативная. Я хочу ориентироваться, используя альтернативную (не самый быстрый), поэтому я беру его routetoken и передаю ее на навигатор.

Код: Выделить всё

@SuppressLint("MissingPermission")
private fun startNavigationWithRouteToken(originLat: Double, originLng: Double) {
val token = routeTokenArg ?: return toast("Missing route token")
if (!::navigator.isInitialized) return toast("Navigator not ready yet")
if (!mLocationPermissionGranted) return toast("Location permission required")

val destLat = destLatArg ?: return toast("Missing destination lat")
val destLng = destLngArg ?: return toast("Missing destination lng")

val currentLatLng = getCurrentDeviceLatLng()
val isNearOrigin = currentLatLng != null && metersBetween(
currentLatLng.latitude, currentLatLng.longitude,
originLat, originLng
) < 100 // Example threshold: 100 meters

if (isNearOrigin) {
// User is close to the route's original start. Redeem the token.
Log.d(TAG, "User is near origin. Attempting to redeem route token.")

val originWp = Waypoint.Builder().setLatLng(originLat, originLng).build()
val destWp = Waypoint.Builder().setLatLng(destLat, destLng).build()

val custom = CustomRoutesOptions.builder()
.setRouteToken(token)
.setTravelMode(CustomRoutesOptions.TravelMode.DRIVING)
.build()

navigator.setDestinations(listOf(originWp, destWp), custom)
.setOnResultListener { code ->
if (code == Navigator.RouteStatus.OK) {
Log.d(TAG, "Token redemption successful. Starting guidance.")
navigator.setAudioGuidance(Navigator.AudioGuidance.VOICE_ALERTS_AND_GUIDANCE)
navigator.startGuidance()
} else {
Log.e(TAG, "Token redemption failed ($code). Falling back to live route.")
toast("Failed to use preferred route. Starting live navigation.")
}
}
} else {
// User is NOT near the origin. Don't use the token;
Log.d(TAG, "User is not near origin. Starting live navigation without token.")
toast("Starting live navigation from current location.")
}
}
Что я ожидаю: Навигатор следует по маршруту, описанному с помощью Routetoken из выбранного альтернативного маршрута. См.:
Пользователь близок к происхождению. Попытка выкупить токен маршрута. Начальное руководство. /> Использование routetoken из альтернативного маршрута с SetDestinations (..., CustomRouteSoptions). < /p>
(альтернативный подход) Преобразование всей выбранной полилинии во многие путевые точки остановки и вызовы SetDestinations (Waypoints, Routingoptions). Это примерно вызывает путь, но мне не нравится это решение - оно хрупкое, достигает ограничений на путевую точку и побеждает цель использования токенов маршрута. источник? Или я должен пройти только направленную точку назначения при использовании Routetoken (то есть происхождение происходит от текущего GPS и не должно поставляться в качестве путевой точки)? /> 3.) Если я хочу вывести альтернативный маршрут, который я выбрал (не самый быстрый), каков поддерживаемый способ сделать это с навигацией SDK?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ionsroutet
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»