Skip to content

Camera Control

Camera Control

This document describes how to interact with Telenav's MapView Camera Controller, including:

  • Camera position information: such as getting/setting the center position, the region of importance, and the bearing and tilt of the camera.
  • Camera behavioral settings: such as following the vehicle in navigation and the user-touch interaction modes (pinch, rotate, and pan).

The camera's positional settings

These are managed via the Camera.Builder class. There are no default settings. Only the settings set in the builder will update.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
//Change various camera positional settings

//Set tilt to 30 degrees
mapView.cameraController().setPosition(new Camera.Position.Builder().setTilt(30.0f).build());
//Set bearing to 0 degrees (aka North Up)
mapView.cameraController().setPosition(new Camera.Position.Builder().setBearing(0.0f).build());

//Multiple settings
Location location = new Location("");
location.setLatitude(37.3382);
location.setLongitude(-121.8863);

Camera.Position position = new Camera.Position.Builder().
    setLocation(location).
    setTilt(30.0f).
    setBearing(0.0f).
    build();
mapView.cameraController().setPosition(position);
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
//Change various camera positional settings

//Set tilt to 30 degrees
mapView.cameraController().position = Camera.Position.Builder().setTilt(30.0f).build()) 
//Set bearing to 0 degrees (aka North Up)
mapView.cameraController().position = Camera.Position.Builder().setBearing(0.0f).build()) 

//Multiple settings
val location = Location("")
location.latitude = 37.3382
location.longitude = -121.8863

val position = Camera.Position.Builder().
    setLocation(location).
    setTilt(30.0f).
    setBearing(0.0f).
    build()
mapView.cameraController().position = position

Instructing the camera to enter into a vehicle-following mode is done via a simple enable/disable API pair.

1
2
3
4
5
//Set vehicle follow mode
mapView.cameraController().enableFollowVehicleMode(Camera.FollowVehicleMode.HeadingUp);
...
//Stop following vehicle
mapView.cameraController().disableFollowVehicle();
1
2
3
4
5
//Set vehicle follow mode
mapView.cameraController().enableFollowVehicleMode(Camera.FollowVehicleMode.HeadingUp)
...
//Stop following vehicle
mapView.cameraController().disableFollowVehicle()

Setting the user-touch interaction behavior:

1
//@TODO: API not available yet
1
//@TODO: API not available yet

Warning

Document is still in progress