Я использую образец Skobbler Android SDK (скачанный с here) для написания приложения для навигации, он отлично работает, если я запускаю приложение из студии Android, но когда я устанавливаю приложение с использованием сгенерированного APK, он обычно терпит неудачу по расчету маршрута и в журналах все, что я получаю:Не удалось выполнить расчет маршрута и смоделировать повторную маршрутизацию
06-04 10:09:43.435 6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ [email protected] 11.0
06-04 10:09:43.435 6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ SKMapSurfaceView---- centerMapOnPosition [101.6156902,3.0311728]
06-04 10:09:43.435 6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ SKRouteManager---- @clearAllRoutesFromCache
06-04 10:09:43.436 6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ SKRouteManager---- @calculateRoute SKRouteSettings [startCoordinate=[101.6156902,3.0311728], destinationCoordinate=[101.6156,3.03496], routeMode=CAR_FASTEST, alternativeRouteModes=null, routeConnectionMode=HYBRID, downloadRouteCorridor=true, routeCorridorWidthInMeters=2000, waitForCorridorDownload=false, destinationIsPoint=true, tollRoadsAvoided=false, highWaysAvoided=false, avoidFerries=false, noOfRoutes=1, countryCodesReturned=false, extendedPointsReturned=false, viaPoints=null, useRoadSlopes=false, exposeRoute=true, filterAlternatives=false, requestAdvices=true, bicycleWalk= false, bicycleCarryAvoided= false]
06-04 10:09:43.437 6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ [email protected]
06-04 10:09:43.437 6285-6285/com.skobbler.sdkdemo D/SkobblerNG﹕ clear route
06-04 10:09:43.437 6285-6285/com.skobbler.sdkdemo D/SkobblerNG﹕ clear route final
06-04 10:09:43.439 6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ SKUtils----Return calculated device type HIGH
06-04 10:09:43.440 6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ SKRouteManager---- Calculate route setroute SKRouteSettings [startCoordinate=[101.6156902,3.0311728], destinationCoordinate=[101.6156,3.03496], routeMode=CAR_FASTEST, alternativeRouteModes=null, routeConnectionMode=HYBRID, downloadRouteCorridor=true, routeCorridorWidthInMeters=2000, waitForCorridorDownload=false, destinationIsPoint=true, tollRoadsAvoided=false, highWaysAvoided=false, avoidFerries=false, noOfRoutes=1, countryCodesReturned=false, extendedPointsReturned=false, viaPoints=null, useRoadSlopes=false, exposeRoute=true, filterAlternatives=false, requestAdvices=true, bicycleWalk= false, bicycleCarryAvoided= false]
06-04 10:09:43.440 6285-6285/com.skobbler.sdkdemo D/SkobblerNG﹕ Java_com_skobbler_ngx_routing_SKRouteManager_setroute
06-04 10:09:43.440 6285-6285/com.skobbler.sdkdemo D/SkobblerNG﹕ No Via points added to the route
06-04 10:09:43.442 6285-6285/com.skobbler.sdkdemo D/SkobblerNG﹕ Java_com_skobbler_ngx_routing_SKRouteManager_setroute final
06-04 10:09:43.445 6285-6344/com.skobbler.sdkdemo D/SKMaps﹕ SKRouteManager---- @onRouteCalculationFailed called with SKRoutingErrorCode =ROUTE_CANNOT_BE_CALCULATED
06-04 10:09:43.447 6285-6344/com.skobbler.sdkdemo W/SKMaps﹕ SKRouteManager---- @onAllRoutesCompleted called
Кроме того, есть ли способ simluate повторной маршрутизации при использовании навигации в режиме SKNavigationType.SIMULATION
? Я попытался изменить текущее местоположение пользователя в явном виде внутри onCurrentPositionUpdate(SKPosition currentPosition)
метода, как это, но он не работает:
@Override
public void onCurrentPositionUpdate(SKPosition currentPosition) {
iteration++;
this.currentPosition = currentPosition;
if (mapView != null) {
if(iteration >= 5) {
Toast.makeText(MapActivity.this, "Changed location", Toast.LENGTH_LONG).show();
this.currentPosition = new SKPosition();
this.currentPosition.setCoordinate(new SKCoordinate(101.618133, 3.025863));
}
mapView.reportNewGPSPosition(this.currentPosition);
}
}
Для моделирования повторной маршрутизации вам необходимо использовать метод blockRoad от SKNavigationManager. Пожалуйста, проверьте документ: http://developer.skobbler.ro/docs/android/com/skobbler/ngx/navigation/SKNavigationManager.html#blockRoad%28double%29 – SylviA
@SylviA Ваш комментарий должен быть ответом, поскольку он работает с использованием Метод blockRoad – Waqas
@Waqas вы когда-нибудь выяснили причину ошибки ROUTE_CANNOT_BE_CALCULATED? Я вижу проблемы, когда любые маршруты, которые я пытаюсь вычислить, терпят неудачу, если они включают точки, которые в настоящее время не кэшируются с помощью mapview. Обычно в этом случае connectionMode HYBRID или ONLINE должен диктовать, чтобы SDK вызывал API Skobbler для определения информации о маршруте, но я не вижу, что это происходит в моем случае, и задавался вопросом, было ли это то, что вы испытали. Спасибо за понимание! – Keith