Marker

public classMarkerextendsObject
Known Direct Subclasses

An icon placed at a particular point on the map's surface. A marker icon is drawn oriented against the device's screen rather than the map's surface; i.e., it will not necessarily change orientation due to map rotations, tilting, or zooming.

A marker has the following properties:

Alpha
Sets the opacity of the marker. Defaults to 1.0.
Anchor
The point on the image that will be placed at theLatLng position of the marker. This defaults to 50% from the left of the image and at the bottom of the image.
Position
TheLatLngvalue for the marker's position on the map. You can change this value at any time if you want to move the marker.
Title
A text string that's displayed in an info window when the user taps the marker. You can change this value at any time.
Snippet
Additional text that's displayed below the title. You can change this value at any time.
Icon
A bitmap that's displayed for the marker. If the icon is left unset, a default icon is displayed. You can specify an alternative coloring of the default icon using BitmapDescriptorFactory.defaultMarker(float).
Drag Status
If you want to allow the user to drag the marker, set this property to true.You can change this value at any time. The default is false.
Visibility
By default, the marker is visible. To make the marker invisible, set this property to false.You can change this value at any time.
Flat or Billboard
If the marker is flat against the map, it will always be drawn facing the camera and will rotate and tilt with the camera, unlike aGroundOverlay. If the marker is a billboard, it will remain stuck to the map as the camera rotates and tilts. As with flat markers, billboard markers retain their size when the map is zoomed in or out. The default is a billboard (false)
Rotation
The rotation of the marker in degrees clockwise about the marker's anchor point. The axis of rotation is perpendicular to the marker. A rotation of 0 corresponds to the default position of the marker. When the marker is flat on the map, the default position is North aligned and the rotation is such that the marker always remains flat on the map. When the marker is a billboard, the default position is pointing up and the rotation is such that the marker is always facing the camera. The default value is 0.
zIndex
The draw order for the marker. The markers are drawn in order of the zIndex, with the highest zIndex marker drawn on top. By setting the zIndex property for each marker, you can control which tap target your user is most likely to hit. The default value is 0.
Tag
AnObjectassociated with the marker. For example, theObject can contain data about what the marker represents. This is easier than storing a separate Map<Marker, Object>.As another example, you can associate a StringID corresponding to the ID from a data set. Google Maps SDK for Android neither reads nor writes this property.

Methods in this class must be called on the Android UI thread. If not, anIllegalStateException will be thrown at runtime.

Example

GoogleMap map =... // get a map.
// Add a marker at San Francisco.
Marker marker = map.addMarker(new MarkerOptions()
.position(new LatLng(37.7750, 122.4183))
.title( "San Francisco" )
.snippet( "Population: 776733" ));

Developer Guide

For more information, read theMarkersdeveloper guide.

Public Method Summary

boolean
equals(Objectother)
Tests if thisMarker is equal to another.
float
getAlpha()
Gets the Alpha of the marker.
String
getId()
Gets this marker's id.
LatLng
getPosition()
Returns the position of the marker.
float
getRotation()
Gets the rotation of the marker.
String
getSnippet()
Gets the snippet of the marker.
Object
getTag()
Gets the tag for the marker.
String
getTitle()
Gets the title of the marker.
float
getZIndex()
Returns the zIndex of the marker.
int
void
hideInfoWindow()
Hides the info window if it is shown from this marker.
boolean
isDraggable()
Gets the draggability of the marker.
boolean
isFlat()
Gets the flat setting of the Marker.
boolean
isInfoWindowShown()
Returns whether the info window is currently shown above this marker.
boolean
isVisible()
Gets the visibility setting of this marker.
void
remove()
Removes this marker from the map.
void
setAlpha(float Alpha )
Sets the Alpha (opacity) of the marker.
void
setAnchor(float anchorU, float anchorV)
Sets the anchor point for the marker.
void
setDraggable(boolean draggable)
Sets the draggability of the marker.
void
setFlat(boolean flat)
Sets whether this marker should be flat against the maptrueor a billboard facing the camerafalse.
void
setIcon(BitmapDescriptor iconDescriptor)
Sets the icon for the marker.
void
setInfoWindowAnchor(float anchorU, float anchorV)
Specifies the point in the marker image at which to anchor the info window when it is displayed.
void
setPosition(LatLng latlng)
Sets the location of the marker.
void
setRotation(float rotation)
Sets the rotation of the marker in degrees clockwise about the marker's anchor point.
void
setSnippet(Stringsnippet)
Sets the snippet of the marker.
void
setTag(Objecttag)
Sets the tag for the marker.
void
setTitle(Stringtitle)
Sets the title of the marker.
void
setVisible(boolean visible)
Sets the visibility of this marker.
void
setZIndex(float zIndex)
Sets the zIndex of the marker.
void
showInfoWindow()
Shows the info window of this marker on the map, if this markerisVisible().

Inherited Method Summary

Public Methods

public booleanequals(Objectother)

Tests if thisMarkeris equal to another.

Parameters
other anObject.
Returns
  • true if both objects are the same object, that is, this == other.

public floatgetAlpha()

Gets the Alpha of the marker.

Returns
  • the Alpha of the marker in the range [0, 1].

publicStringgetId()

Gets this marker's id. The id will be unique amongst all Markers on a map.

Returns
  • this marker's id.

publicLatLng getPosition()

Returns the position of the marker.

Returns
  • ALatLng object specifying the marker's current position.

public floatgetRotation()

Gets the rotation of the marker.

Returns
  • the rotation of the marker in degrees clockwise from the default position.

publicStringgetSnippet()

Gets the snippet of the marker.

Returns
  • A string containing the marker's snippet, ornullif no snippet has been set.

publicObjectgetTag()

Gets the tag for the marker.

Returns
  • the tag if a tag was set withsetTag;nullif no tag has been set.

publicStringgetTitle()

Gets the title of the marker.

Returns
  • A string containing the marker's title, ornullif no title has been set.

public floatgetZIndex()

Returns the zIndex of the marker.

Returns
  • this marker's zIndex.

public inthashCode()

public voidhideInfoWindow()

Hides the info window if it is shown from this marker.

This method has no effect if this marker is not visible.

public booleanisDraggable()

Gets the draggability of the marker. When a marker is draggable, it can be moved by the user by long pressing on the marker.

Returns
  • trueif the marker is draggable; otherwise, returns false.

public booleanisFlat()

Gets the flat setting of the Marker.

Returns
  • trueif the marker is flat against the map;falseif the marker should face the camera.

public booleanisInfoWindowShown()

Returns whether the info window is currently shown above this marker. This does not consider whether or not the info window is actually visible on screen.

public booleanisVisible()

Gets the visibility setting of this marker. Note that this does not indicate whether the marker is within the screen's viewport. It indicates whether the marker will be drawn if it is contained in the screen's viewport.

Returns
  • this marker's visibility.

public voidremove()

Removes this marker from the map. After a marker has been removed, the behavior of all its methods is undefined.

public voidsetAlpha(float Alpha )

Sets the Alpha (opacity) of the marker. This is a value from 0 to 1, where 0 means the marker is completely transparent and 1 means the marker is completely opaque.

public voidsetAnchor(float anchorU, float anchorV)

Sets the anchor point for the marker.

The anchor specifies the point in the icon image that is anchored to the marker's position on the Earth's surface.

The anchor point is specified in the continuous space [0.0, 1.0] x [0.0, 1.0], where (0, 0) is the top-left corner of the image, and (1, 1) is the bottom-right corner. The anchoring point in aWxHimage is the nearest discrete grid point in a(W + 1)x(H + 1)grid, obtained by scaling the then rounding. For example, in a 4 x 2 image, the anchor point (0.7, 0.6) resolves to the grid point at (3, 1).

*-----+-----+-----+-----*
| | | | |
| | | | |
+-----+-----+-----+-----+
| | | X | | (U, V) = (0.7, 0.6)
| | | | |
*-----+-----+-----+-----*

*-----+-----+-----+-----*
| | | | |
| | | | |
+-----+-----+-----X-----+ (X, Y) = (3, 1)
| | | | |
| | | | |
*-----+-----+-----+-----*
Parameters
anchorU u-coordinate of the anchor, as a ratio of the image width (in the range [0, 1]).
anchorV v-coordinate of the anchor, as a ratio of the image height (in the range [0, 1]).

public voidsetDraggable(boolean draggable)

Sets the draggability of the marker. When a marker is draggable, it can be moved by the user by long pressing on the marker.

public voidsetFlat(boolean flat)

Sets whether this marker should be flat against the maptrueor a billboard facing the camerafalse.

public voidsetIcon(BitmapDescriptor iconDescriptor)

Sets the icon for the marker.

Parameters
iconDescriptor if null, the default marker is used.

public voidsetInfoWindowAnchor(float anchorU, float anchorV)

Specifies the point in the marker image at which to anchor the info window when it is displayed. This is specified in the same coordinate system as the anchor. See setAnchor(float, float)for more details. The default is the top middle of the image.

Parameters
anchorU u-coordinate of the info window anchor, as a ratio of the image width (in the range [0, 1]).
anchorV v-coordinate of the info window anchor, as a ratio of the image height (in the range [0, 1]).

public voidsetPosition(LatLng latlng)

Sets the location of the marker.

public voidsetRotation(float rotation)

Sets the rotation of the marker in degrees clockwise about the marker's anchor point. The axis of rotation is perpendicular to the marker. A rotation of 0 corresponds to the default position of the marker.

public voidsetSnippet(Stringsnippet)

Sets the snippet of the marker.

Parameters
snippet if null, the snippet is cleared.

public voidsetTag(Objecttag)

Sets the tag for the marker.

You can use this property to associate an arbitraryObjectwith this marker. For example, theObjectcan contain data about what the marker represents. This is easier than storing a separateMap<Marker, Object>.As another example, you can associate aStringID corresponding to the ID from a data set. Google Maps SDK for Android neither reads nor writes this property. It is your responsibility to callsetTag(null)to clear the tag when you no longer need it, to prevent memory leaks in your app.

Parameters
tag if null, the tag is cleared.

public voidsetTitle(Stringtitle)

Sets the title of the marker.

Parameters
title if null, the title is cleared.

public voidsetVisible(boolean visible)

Sets the visibility of this marker. If set tofalseand an info window is currently showing for this marker, this will hide the info window.

public voidsetZIndex(float zIndex)

Sets the zIndex of the marker.

public voidshowInfoWindow()

Shows the info window of this marker on the map, if this markerisVisible().

Throws
IllegalArgumentException ifmarkeris not on this map