Search in sources :

Example 1 with GeoPolygon

use of com.here.android.mpa.common.GeoPolygon in project here-android-sdk-examples by heremaps.

the class MapFragmentView method createPolygon.

/**
 * Create a MapPolygon and add the MapPolygon to active map view.
 */
private void createPolygon() {
    // create an bounding box centered at current cent
    GeoBoundingBox boundingBox = new GeoBoundingBox(m_map.getCenter(), 1000, 1000);
    // add boundingbox's four vertices to list of Geocoordinates.
    List<GeoCoordinate> coordinates = new ArrayList<GeoCoordinate>();
    coordinates.add(boundingBox.getTopLeft());
    coordinates.add(new GeoCoordinate(boundingBox.getTopLeft().getLatitude(), boundingBox.getBottomRight().getLongitude(), boundingBox.getTopLeft().getAltitude()));
    coordinates.add(boundingBox.getBottomRight());
    coordinates.add(new GeoCoordinate(boundingBox.getBottomRight().getLatitude(), boundingBox.getTopLeft().getLongitude(), boundingBox.getTopLeft().getAltitude()));
    // create GeoPolygon with list of GeoCoordinates.
    GeoPolygon geoPolygon = new GeoPolygon(coordinates);
    // create MapPolygon with GeoPolygon.
    m_polygon = new MapPolygon(geoPolygon);
    // set line color, fill color and line width
    m_polygon.setLineColor(Color.RED);
    m_polygon.setFillColor(Color.GRAY);
    m_polygon.setLineWidth(12);
    // add MapPolygon to map.
    m_map.addMapObject(m_polygon);
}
Also used : MapPolygon(com.here.android.mpa.mapping.MapPolygon) ArrayList(java.util.ArrayList) GeoCoordinate(com.here.android.mpa.common.GeoCoordinate) GeoBoundingBox(com.here.android.mpa.common.GeoBoundingBox) GeoPolygon(com.here.android.mpa.common.GeoPolygon)

Example 2 with GeoPolygon

use of com.here.android.mpa.common.GeoPolygon in project here-android-sdk-examples by heremaps.

the class MapFragmentView method addPolygonObject.

/**
 * Create a MapPolygon and add the MapPolygon to active map view.
 */
private void addPolygonObject() {
    // create an bounding box centered at current cent
    GeoBoundingBox boundingBox = new GeoBoundingBox(m_map.getCenter(), 1000, 1000);
    // add boundingbox's four vertices to list of Geocoordinates.
    List<GeoCoordinate> coordinates = new ArrayList<GeoCoordinate>();
    coordinates.add(boundingBox.getTopLeft());
    coordinates.add(new GeoCoordinate(boundingBox.getTopLeft().getLatitude(), boundingBox.getBottomRight().getLongitude(), boundingBox.getTopLeft().getAltitude()));
    coordinates.add(boundingBox.getBottomRight());
    coordinates.add(new GeoCoordinate(boundingBox.getBottomRight().getLatitude(), boundingBox.getTopLeft().getLongitude(), boundingBox.getTopLeft().getAltitude()));
    // create GeoPolygon with list of GeoCoordinates.
    GeoPolygon geoPolygon = new GeoPolygon(coordinates);
    // create MapPolygon with GeoPolygon.
    MapPolygon polygon = new MapPolygon(geoPolygon);
    // set line color, fill color and line width
    polygon.setLineColor(Color.RED);
    polygon.setFillColor(Color.GRAY);
    polygon.setLineWidth(12);
    // add MapPolygon to map.
    m_map.addMapObject(polygon);
    m_polygons.add(polygon);
}
Also used : MapPolygon(com.here.android.mpa.mapping.MapPolygon) ArrayList(java.util.ArrayList) GeoCoordinate(com.here.android.mpa.common.GeoCoordinate) GeoBoundingBox(com.here.android.mpa.common.GeoBoundingBox) GeoPolygon(com.here.android.mpa.common.GeoPolygon)

Example 3 with GeoPolygon

use of com.here.android.mpa.common.GeoPolygon in project here-android-sdk-examples by heremaps.

the class MapFragmentView method createRoute.

private void createRoute(final List<RoutingZone> excludedRoutingZones) {
    /* Initialize a CoreRouter */
    CoreRouter coreRouter = new CoreRouter();
    /* Initialize a RoutePlan */
    RoutePlan routePlan = new RoutePlan();
    /*
         * Initialize a RouteOption. HERE Mobile SDK allow users to define their own parameters for the
         * route calculation,including transport modes,route types and route restrictions etc.Please
         * refer to API doc for full list of APIs
         */
    RouteOptions routeOptions = new RouteOptions();
    /* Other transport modes are also available e.g Pedestrian */
    routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
    /* Disable highway in this route. */
    routeOptions.setHighwaysAllowed(false);
    /* Calculate the shortest route available. */
    routeOptions.setRouteType(RouteOptions.Type.SHORTEST);
    /* Calculate 1 route. */
    routeOptions.setRouteCount(1);
    /* Exclude routing zones. */
    if (!excludedRoutingZones.isEmpty()) {
        routeOptions.excludeRoutingZones(toStringIds(excludedRoutingZones));
    }
    if (m_addAvoidedAreas) {
        DynamicPenalty dynamicPenalty = new DynamicPenalty();
        // There are two option to avoid certain areas during routing
        // 1. Add banned area using addBannedArea API
        GeoPolygon geoPolygon = new GeoPolygon();
        geoPolygon.add(Arrays.asList(new GeoCoordinate(52.631692, 13.437591), new GeoCoordinate(52.631905, 13.437787), new GeoCoordinate(52.632577, 13.438357)));
        // Note, the maximum supported number of banned areas is 20.
        dynamicPenalty.addBannedArea(geoPolygon);
        // 1. Add banned road link using addRoadPenalty API
        // Note, map data needs to be present to get RoadElement by the GeoCoordinate.
        RoadElement roadElement = RoadElement.getRoadElement(new GeoCoordinate(52.406611, 13.194916), "MAC");
        if (roadElement != null) {
            dynamicPenalty.addRoadPenalty(roadElement, DrivingDirection.DIR_BOTH, 0);
        }
        coreRouter.setDynamicPenalty(dynamicPenalty);
    }
    /* Finally set the route option */
    routePlan.setRouteOptions(routeOptions);
    /* Define waypoints for the route */
    /* START: South of Berlin */
    RouteWaypoint startPoint = new RouteWaypoint(new GeoCoordinate(52.406425, 13.193975));
    /* END: North of Berlin */
    RouteWaypoint destination = new RouteWaypoint(new GeoCoordinate(52.638623, 13.441998));
    /* Add both waypoints to the route plan */
    routePlan.addWaypoint(startPoint);
    routePlan.addWaypoint(destination);
    /* Trigger the route calculation,results will be called back via the listener */
    coreRouter.calculateRoute(routePlan, new Router.Listener<List<RouteResult>, RoutingError>() {

        @Override
        public void onProgress(int i) {
        /* The calculation progress can be retrieved in this callback. */
        }

        @Override
        public void onCalculateRouteFinished(List<RouteResult> routeResults, RoutingError routingError) {
            /* Calculation is done. Let's handle the result */
            if (routingError == RoutingError.NONE) {
                Route route = routeResults.get(0).getRoute();
                if (m_isExcludeRoutingZones && excludedRoutingZones.isEmpty()) {
                    // Here we exclude all available routing zones in the route.
                    // Also RoutingZoneRestrictionsChecker can be used to get
                    // available routing zones for specific RoadElement.
                    createRoute(route.getRoutingZones());
                } else {
                    /* Create a MapRoute so that it can be placed on the map */
                    m_mapRoute = new MapRoute(route);
                    /* Show the maneuver number on top of the route */
                    m_mapRoute.setManeuverNumberVisible(true);
                    /* Add the MapRoute to the map */
                    m_map.addMapObject(m_mapRoute);
                    /*
                                 * We may also want to make sure the map view is orientated properly
                                 * so the entire route can be easily seen.
                                 */
                    m_map.zoomTo(route.getBoundingBox(), Map.Animation.NONE, Map.MOVE_PRESERVE_ORIENTATION);
                }
            } else {
                Toast.makeText(m_activity, "Error:route calculation returned error code: " + routingError, Toast.LENGTH_LONG).show();
            }
        }
    });
}
Also used : MapRoute(com.here.android.mpa.mapping.MapRoute) RoadElement(com.here.android.mpa.common.RoadElement) CoreRouter(com.here.android.mpa.routing.CoreRouter) Router(com.here.android.mpa.routing.Router) CoreRouter(com.here.android.mpa.routing.CoreRouter) GeoCoordinate(com.here.android.mpa.common.GeoCoordinate) RouteOptions(com.here.android.mpa.routing.RouteOptions) RouteWaypoint(com.here.android.mpa.routing.RouteWaypoint) DynamicPenalty(com.here.android.mpa.routing.DynamicPenalty) GeoPolygon(com.here.android.mpa.common.GeoPolygon) RouteWaypoint(com.here.android.mpa.routing.RouteWaypoint) RoutingError(com.here.android.mpa.routing.RoutingError) RouteResult(com.here.android.mpa.routing.RouteResult) ArrayList(java.util.ArrayList) List(java.util.List) RoutePlan(com.here.android.mpa.routing.RoutePlan) Route(com.here.android.mpa.routing.Route) MapRoute(com.here.android.mpa.mapping.MapRoute)

Aggregations

GeoCoordinate (com.here.android.mpa.common.GeoCoordinate)3 GeoPolygon (com.here.android.mpa.common.GeoPolygon)3 ArrayList (java.util.ArrayList)3 GeoBoundingBox (com.here.android.mpa.common.GeoBoundingBox)2 MapPolygon (com.here.android.mpa.mapping.MapPolygon)2 RoadElement (com.here.android.mpa.common.RoadElement)1 MapRoute (com.here.android.mpa.mapping.MapRoute)1 CoreRouter (com.here.android.mpa.routing.CoreRouter)1 DynamicPenalty (com.here.android.mpa.routing.DynamicPenalty)1 Route (com.here.android.mpa.routing.Route)1 RouteOptions (com.here.android.mpa.routing.RouteOptions)1 RoutePlan (com.here.android.mpa.routing.RoutePlan)1 RouteResult (com.here.android.mpa.routing.RouteResult)1 RouteWaypoint (com.here.android.mpa.routing.RouteWaypoint)1 Router (com.here.android.mpa.routing.Router)1 RoutingError (com.here.android.mpa.routing.RoutingError)1 List (java.util.List)1