Search in sources :

Example 1 with VenueController

use of com.here.android.mpa.venues3d.VenueController in project here-android-sdk-examples by heremaps.

the class BasicVenueActivity method onCalculateRouteClick.

// Setup routing parameters and calculate route.
public void onCalculateRouteClick(View v) {
    if (mLastReceivedPosition != null && mSelectedVenue != null && mSelectedSpace != null) {
        VenueRouteOptions venueRouteOptions = new VenueRouteOptions();
        RouteOptions options = venueRouteOptions.getRouteOptions();
        // Set algorithm mode shortest and transport mode pedestrian in this case
        options.setRouteType(RouteOptions.Type.SHORTEST);
        options.setTransportMode(RouteOptions.TransportMode.PEDESTRIAN);
        options.setRouteCount(1);
        venueRouteOptions.setRouteOptions(options);
        VenueController selectedVenueController = mVenueMapFragment.getVenueController(mSelectedVenue);
        if (selectedVenueController != null && mRoutingController != null) {
            Toast.makeText(BasicVenueActivity.this, "Calculating route...", Toast.LENGTH_SHORT).show();
            // Determine start location either from the venue as
            // LevelLocation, or from outside as OutdoorLocation
            BaseLocation startLocation;
            if ((mLastReceivedPosition.getPositionSource() == GeoPosition.SOURCE_INDOOR)) {
                Level startLevel = selectedVenueController.getSelectedLevel();
                for (final Level level : selectedVenueController.getVenue().getLevels()) {
                    if (level.getFloorNumber() == mLastReceivedPosition.getFloorId()) {
                        startLevel = level;
                        break;
                    }
                }
                startLocation = new LevelLocation(startLevel, mLastReceivedPosition.getCoordinate(), selectedVenueController);
            } else {
                startLocation = new OutdoorLocation(mLastReceivedPosition.getCoordinate());
            }
            // End location is in this case always the selected space
            BaseLocation endLocation = new SpaceLocation(mSelectedSpace, selectedVenueController);
            // This is an async function, the logic to display route is in callback
            // onCombinedRouteCompleted(CombinedRoute route)
            mRoutingController.calculateCombinedRoute(startLocation, endLocation, venueRouteOptions);
        }
    } else {
        Toast.makeText(BasicVenueActivity.this, "Unable to calculate route", Toast.LENGTH_SHORT).show();
    }
}
Also used : LevelLocation(com.here.android.mpa.venues3d.LevelLocation) SpaceLocation(com.here.android.mpa.venues3d.SpaceLocation) VenueController(com.here.android.mpa.venues3d.VenueController) VenueRouteOptions(com.here.android.mpa.venues3d.VenueRouteOptions) Level(com.here.android.mpa.venues3d.Level) OutdoorLocation(com.here.android.mpa.venues3d.OutdoorLocation) VenueRouteOptions(com.here.android.mpa.venues3d.VenueRouteOptions) RouteOptions(com.here.android.mpa.routing.RouteOptions) BaseLocation(com.here.android.mpa.venues3d.BaseLocation)

Example 2 with VenueController

use of com.here.android.mpa.venues3d.VenueController in project here-android-sdk-examples by heremaps.

the class BasicVenueActivity method onCombinedRouteCompleted.

@Override
public void onCombinedRouteCompleted(CombinedRoute route) {
    Log.v(TAG, "onCombinedRouteCompleted");
    CombinedRoute.VenueRoutingError error = route.getError();
    if (error == CombinedRoute.VenueRoutingError.NO_ERROR) {
        if (mVenueMapFragment != null) {
            VenueController selectedVenueController = mVenueMapFragment.getVenueController(mSelectedVenue);
            if (selectedVenueController != null && mRoutingController != null) {
                Log.i(TAG, "onCombinedRouteCompleted route found");
                Toast.makeText(BasicVenueActivity.this, "Route found", Toast.LENGTH_SHORT).show();
                // Use RoutingController to show route
                mRoutingController.showRoute(route);
                mRouteShown = true;
            }
        }
    } else {
        Toast.makeText(BasicVenueActivity.this, "No route found", Toast.LENGTH_SHORT).show();
    }
}
Also used : VenueController(com.here.android.mpa.venues3d.VenueController) CombinedRoute(com.here.android.mpa.venues3d.CombinedRoute)

Aggregations

VenueController (com.here.android.mpa.venues3d.VenueController)2 RouteOptions (com.here.android.mpa.routing.RouteOptions)1 BaseLocation (com.here.android.mpa.venues3d.BaseLocation)1 CombinedRoute (com.here.android.mpa.venues3d.CombinedRoute)1 Level (com.here.android.mpa.venues3d.Level)1 LevelLocation (com.here.android.mpa.venues3d.LevelLocation)1 OutdoorLocation (com.here.android.mpa.venues3d.OutdoorLocation)1 SpaceLocation (com.here.android.mpa.venues3d.SpaceLocation)1 VenueRouteOptions (com.here.android.mpa.venues3d.VenueRouteOptions)1