A class containing methods for creatingCameraUpdate
objects that change a map's camera. To modify the map's camera, call
GoogleMap.animateCamera(CameraUpdate)
,
GoogleMap.animateCamera(CameraUpdate, GoogleMap.CancelableCallback)
or
GoogleMap.moveCamera(CameraUpdate)
,using aCameraUpdate
object created with this class.
For example, to zoom in on a map, you can use the following code:
GoogleMap map =...;
map.animateCamera(CameraUpdateFactory.zoomIn());
Prior to using any methods from this class, you must do one of the following to ensure that this class is initialized:
- Wait for a
GoogleMap
to become available from aMapFragment
orMapView
that you have added to your application. You can obtain theGoogleMap
instance by callinggetMapAsync()
and waiting for theonMapReady(GoogleMap map)
callback. - Call
MapsInitializer.initialize(Context)
.As long as aGooglePlayServicesNotAvailableException
isn't thrown, this class will be correctly initialized.
Developer Guide
For more information, read theCamera and Viewdeveloper guide.
Public Method Summary
staticCameraUpdate |
newCameraPosition(CameraPosition
cameraPosition)
Returns a
CameraUpdate
that moves the camera to a specifiedCameraPosition .
|
staticCameraUpdate |
newLatLng(LatLng
latLng)
Returns a
CameraUpdate
that moves the center of the screen to a latitude and longitude specified by a
LatLng
object.
|
staticCameraUpdate |
newLatLngBounds(LatLngBounds
bounds, int padding)
Returns a
CameraUpdate
that transforms the camera such that the specified latitude/longitude bounds
are centered on screen at the greatest possible zoom level.
|
staticCameraUpdate |
newLatLngBounds(LatLngBounds
bounds, int width, int height, int padding)
Returns a
CameraUpdate
that transforms the camera such that the specified latitude/longitude bounds
are centered on screen within a bounding box of specified dimensions at the
greatest possible zoom level.
|
staticCameraUpdate |
newLatLngZoom(LatLng
latLng, float zoom)
Returns a
CameraUpdate
that moves the center of the screen to a latitude and longitude specified by a
LatLng
object, and moves to the given zoom level.
|
staticCameraUpdate |
scrollBy(float xPixel, float yPixel)
Returns a
CameraUpdate
that scrolls the camera over the map, shifting the center of view by the
specified number of pixels in the x and y directions.
|
staticCameraUpdate |
zoomBy(float amount,Pointfocus)
Returns a
CameraUpdate
that shifts the zoom level of the current camera viewpoint.
|
staticCameraUpdate |
zoomBy(float amount)
Returns a
CameraUpdate
that shifts the zoom level of the current camera viewpoint.
|
staticCameraUpdate |
zoomIn()
Returns a
CameraUpdate
that zooms in on the map by moving the viewpoint's height closer to the Earth's
surface.
|
staticCameraUpdate |
zoomOut()
Returns a
CameraUpdate
that zooms out on the map by moving the viewpoint's height farther away from
the Earth's surface.
|
staticCameraUpdate |
zoomTo(float zoom)
Returns a
CameraUpdate
that moves the camera viewpoint to a particular zoom level.
|
Inherited Method Summary
Public Methods
public staticCameraUpdate newCameraPosition(CameraPosition cameraPosition)
Returns aCameraUpdate
that moves the camera to a specifiedCameraPosition
.
In effect, this creates a transformation from theCameraPosition
object's latitude, longitude, zoom level, bearing and tilt.
Parameters
cameraPosition | The requested position. Must not benull . |
---|
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate newLatLng(LatLng latLng)
Returns aCameraUpdate
that moves the center of the screen to a latitude and longitude specified by a
LatLng
object. This centers the camera on theLatLng
object.
Parameters
latLng | aLatLng
object containing the desired latitude and longitude. Must not be
null . |
---|
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate newLatLngBounds(LatLngBounds bounds, int padding)
Returns aCameraUpdate
that transforms the camera such that the specified latitude/longitude bounds are
centered on screen at the greatest possible zoom level. You can specify padding, in
order to inset the bounding box from the map view's edges. The returnedCameraUpdate
has a bearing of 0 and a tilt of 0.
Do not change the camera with this camera update until the map has undergone layout
(in order for this method to correctly determine the appropriate bounding box and zoom
level, the map must have a size). Otherwise anIllegalStateException
will be thrown. It is NOT sufficient for the map to be available; the view containing
the map must have also undergone layout such that its dimensions have been determined.
If you cannot be sure that this has occurred, use
newLatLngBounds(LatLngBounds, int, int, int)
instead and provide the
dimensions of the map manually.
Parameters
bounds | region to fit on screen. Must not benull . |
---|---|
padding | space (in px) to leave between the bounding box edges and the view edges. This value is applied to all four sides of the bounding box. |
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate newLatLngBounds(LatLngBounds bounds, int width, int height, int padding)
Returns aCameraUpdate
that transforms the camera such that the specified latitude/longitude bounds are
centered on screen within a bounding box of specified dimensions at the greatest
possible zoom level. You can specify additional padding, to further restrict the size
of the bounding box. The returnedCameraUpdate
has a bearing of 0 and a tilt of 0.
Unlike
newLatLngBounds(LatLngBounds, int)
,you can use theCameraUpdate
returned by this method to change the camera prior to the map's the layout phase,
because the arguments specify the desired size of the bounding box.
Parameters
bounds | the region to fit in the bounding box. Must not benull . |
---|---|
width | bounding box width in pixels (px) |
height | bounding box height in pixels (px) |
padding | additional size restriction (in px) of the bounding box |
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate newLatLngZoom(LatLnglatLng, float zoom)
Returns aCameraUpdate
that moves the center of the screen to a latitude and longitude specified by a
LatLng
object, and moves to the given zoom level.
Parameters
latLng | aLatLng
object containing the desired latitude and longitude. Must not be
null . |
---|---|
zoom | the desired zoom level, in the range of 2.0 to 21.0. Values below this range are set to 2.0, and values above it are set to 21.0. Increase the value to zoom in. Not all areas have tiles at the largest zoom levels. |
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate scrollBy(float xPixel, float yPixel)
Returns aCameraUpdate
that scrolls the camera over the map, shifting the center of view by the specified
number of pixels in the x and y directions.
Examples:
- If xPixel = 5 and yPixel = 0, the system scrolls right by moving the camera so that the map appears to have shifted 5 pixels to the left.
- If xPixel = 0 and yPixel = 5, the system scrolls down by moving the camera so that the map appears to have shifted 5 pixels upwards.
The scrolling is relative to the camera's current orientation. For example, if the camera is bearing 90 degrees, then east is "up" and scrolling right will move the camera south.
Parameters
xPixel | the number of pixels to scroll horizontally. A positive value moves the camera to the right, with respect to its current orientation. A negative value moves the camera to the left, with respect to its current orientation. |
---|---|
yPixel | the number of pixels to scroll vertically. A positive value moves the camera downwards, with respect to its current orientation. A negative value moves the camera upwards, with respect to its current orientation. |
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate zoomBy(float amount, Point focus)
Returns aCameraUpdate
that shifts the zoom level of the current camera viewpoint.
A point specified by focus will remain fixed (i.e., it corresponds to the same lat/long both before and after the zoom process).
This method is different to
zoomTo(float)
in that zoom is relative to the current camera.
For example, if theLatLng
(11.11, 22.22) is currently at the screen location (23, 45). After calling this method
with a zoom amount and thisLatLng
,
the screen location of thisLatLng
will still be (23, 45).
Parameters
amount | amount to change the zoom level. Positive values indicate zooming closer to the surface of the Earth while negative values indicate zooming away from the surface of the Earth. |
---|---|
focus | pixel location on the screen that is to remain fixed after the zooming process.
The lat/long that was at that pixel location before the camera move will remain the
same after the camera has moved. Must not benull . |
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate zoomBy(float amount)
Returns aCameraUpdate
that shifts the zoom level of the current camera viewpoint.
This method is different to
zoomTo(float)
in that zoom is relative to the current camera.
Parameters
amount | amount to change the zoom level. Positive values indicate zooming closer to the surface of the Earth while negative values indicate zooming away from the surface of the Earth. |
---|
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate zoomIn()
Returns aCameraUpdate
that zooms in on the map by moving the viewpoint's height closer to the Earth's
surface. The zoom increment is 1.0.
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate zoomOut()
Returns aCameraUpdate
that zooms out on the map by moving the viewpoint's height farther away from the
Earth's surface. The zoom increment is -1.0.
Returns
- a
CameraUpdate
containing the transformation.
public staticCameraUpdate zoomTo(float zoom)
Returns aCameraUpdate
that moves the camera viewpoint to a particular zoom level.
Parameters
zoom | the desired zoom level, in the range of 2.0 to 21.0. Values below this range are set to 2.0, and values above it are set to 21.0. Increase the value to zoom in. Not all areas have tiles at the largest zoom levels. |
---|