【问题标题】:Route calculation failed and simulating re-routing路由计算失败并模拟重新路由
【发布时间】:2015-06-04 04:00:20
【问题描述】:

我正在使用 Skobbler 示例 Android SDK(从 here 下载)来编写导航应用程序,如果我从 Android Studio 运行应用程序,它可以完美运行,但是当我使用生成的 APK 安装应用程序时,它通常会在路线计算和日志中失败我得到的只是:

06-04 10:09:43.435    6285-6285/com.skobbler.sdkdemo D/SKMaps﹕ SKMapSurfaceView----@setZoom  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﹕ SKRouteManager----@clearCurrentRoute
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

另外,在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);
    }
}

【问题讨论】:

  • 为了模拟重新路由,您必须使用 SKNavigationManager 中的 blockRoad 方法。请在此处查看文档:developer.skobbler.ro/docs/android/com/skobbler/ngx/navigation/…
  • @SylviA 您的评论应该是答案,因为它正在使用 blockRoad 方法
  • @Waqas 你有没有弄清楚你的 ROUTE_CANNOT_BE_CALCULATED 错误的原因?我一直看到我尝试计算的任何路线都失败的问题,如果它们包含地图视图当前未缓存的点。通常在这种情况下,HYBRID 或 ONLINE 的 connectionMode 应该指示 SDK 调用 Skobbler API 以确定路线信息,但我没有看到这种情况发生在我的情况下,想知道您是否遇到过这种情况。感谢您的任何见解!

标签: android skmaps skobbler-maps


【解决方案1】:

为了模拟重新路由,您必须使用 SKNavigationManager 中的 blockRoad 方法。请在此处查看文档:http://developer.skobbler.ro/docs/android/com/skobbler/ngx/navigation/SKNavigationManager.html#blockRoad%28double%29

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2018-10-12
    相关资源
    最近更新 更多