Рассчитайте внутренние дороги в HereMap - PullRequest
0 голосов
/ 28 октября 2019

Я использую HereMap SDK для рисования пути от места к другому месту (возможно, у него есть путевые точки на пути) внутри моей страны (Вьетнам). Однако результаты маршрутизации, которые я получаю от API, - это путь, который проходит через Лаос, Камбоджу (соседние страны Вьетнама). Я просто хочу, чтобы результаты маршрутов были путями во Вьетнаме. Я прочитал HereMap документ, но не нашел решения или связанных с ним методов для этого. Я надеюсь получить решение от вас, большое спасибо!

Это мой код для расчета маршрутов:

CoreRouter router = new CoreRouter();
// Create the RoutePlan and add two waypoints
RoutePlan routePlan = new RoutePlan();
for (AppContext.WDContext.WDLocation location : wdLocations) {
    routePlan.addWaypoint(new RouteWaypoint(new GeoCoordinate(location.latitude, location.longitude)));
}
// Create the RouteOptions and set its transport mode & routing type
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.BALANCED); //I have also tried FASTEST and SHORTEST types
routePlan.setRouteOptions(routeOptions);

router.calculateRoute(routePlan, new Router.Listener<List<RouteResult>, RoutingError>() {
    @Override
    public void onProgress(int i) {

    }

    @Override
    public void onCalculateRouteFinished(List<RouteResult> routeResults, RoutingError routingError) {
        // If the route was calculated successfully
        if (routingError == RoutingError.NONE) {
            // Render the route on the map
            List<GeoCoordinate> coordinates = routeResults.get(0).getRoute().getRouteGeometry();
            List<RoutingZone> zones = routeResults.get(0).getRoute().getRoutingZones();

            // create GeoPolyline with list of GeoCoordinates
            GeoPolyline geoPolyline = new GeoPolyline(coordinates);
            MapPolyline polyline = new MapPolyline(geoPolyline);
            polyline.setLineWidth(8);

            // add GeoPolyline to current active map
            mHereMap.addMapObject(polyline);

            GeoBoundingBox boundingBox = routeResults.get(0).getRoute()
                    .getBoundingBox();

            mHereMap.zoomTo(boundingBox, Map.Animation.NONE,40);
            mHereMap.setPadding(40,40,40,40);
        } else {
            // Display a message indicating route calculation failure
            NotificationHelper.getInstance().showBottomError("error - " + routingError.toString());
        }
    }
});
...