2015-06-04 6 views
2

Я использую образец 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); 
    } 
} 
+1

Для моделирования повторной маршрутизации вам необходимо использовать метод blockRoad от SKNavigationManager. Пожалуйста, проверьте документ: http://developer.skobbler.ro/docs/android/com/skobbler/ngx/navigation/SKNavigationManager.html#blockRoad%28double%29 – SylviA

+1

@SylviA Ваш комментарий должен быть ответом, поскольку он работает с использованием Метод blockRoad – Waqas

+0

@Waqas вы когда-нибудь выяснили причину ошибки ROUTE_CANNOT_BE_CALCULATED? Я вижу проблемы, когда любые маршруты, которые я пытаюсь вычислить, терпят неудачу, если они включают точки, которые в настоящее время не кэшируются с помощью mapview. Обычно в этом случае connectionMode HYBRID или ONLINE должен диктовать, чтобы SDK вызывал API Skobbler для определения информации о маршруте, но я не вижу, что это происходит в моем случае, и задавался вопросом, было ли это то, что вы испытали. Спасибо за понимание! – Keith

ответ