位于地图表面上特定点的图标。标记图标绘制时朝向设备屏幕(而非地图表面)的方向;也就是说,标记图标不一定会因地图旋转、倾斜或缩放而改变方向。
标记具有以下属性:
- Alpha 版
- 设置标记的不透明度。默认值为 1.0。
- 锚点
- 图片上将置于标记的
LatLng
位置的点。默认距离图片左侧和底部的距离为 50%。 - 位置
- 地图上标记位置的
LatLng
值。如果您想移动标记,可以随时更改此值。 - 标题
- 当用户点按标记时显示在信息窗口内的文本字符串。您可以随时更改此值。
- 代码段
- 显示在标题下方的附加文字。您可以随时更改此值。
- 图标
- 为标记显示的位图。如果未设置该图标,则系统会显示默认图标。您可以使用
defaultMarker(float)
指定默认图标的替代颜色。 - 拖动状态
- 如果您想允许用户拖动标记,请将此属性设为
true
。您可以随时更改此值。默认值为false
。 - 可见性
- 默认情况下,标记可见。如需隐藏标记,请将此属性设为
false
。您可以随时更改此值。 - Flat 或 Billboard
- 如果标记在地图上是平面的,那么当镜头旋转和倾斜时,标记会始终固定在地图上,但与
GroundOverlay
不同,该标记的大小仍会随着镜头缩放而改变大小。如果标记是广告牌,它将始终朝向镜头绘制,并随镜头旋转和倾斜。默认名称为广告牌 (false
) - 旋转
- 标记围绕标记的锚点顺时针旋转的角度(以度为单位)。旋转轴与标记垂直。旋转角度 0 对应于标记的默认位置。当地图上的标记为 Flat 标记时,默认位置为北对齐,而且旋转后该标记在地图上始终保持为扁平状态。当标记是广告牌时,默认位置是朝上,而且旋转时标记始终朝向镜头。默认值为 0。
- zIndex
- 标记的绘制顺序。这些标记按 zIndex 的顺序绘制,最高的 zIndex 标记绘制在顶部。通过为每个标记设置 zIndex 属性,您可以控制用户最有可能点击哪个点按目标。默认值为 0。
- 标记
- 与标记关联的
Object
。例如,Object
可以包含与标记所代表内容相关的数据。这比存储单独的Map<Marker, Object>
更简单。再举一例,您可以关联与数据集中的 ID 对应的String
ID。Google Maps SDK for Android 既不会读取也不会写入此属性。
此类中的方法必须在 Android 界面线程上调用。否则,系统会在运行时抛出 IllegalStateException
。
示例
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"));
开发者指南
如需了解详情,请参阅标记开发者指南。
嵌套类摘要
@interface | Marker.CollisionBehavior | 指明当该标记与其他标记或基本地图标签发生冲突时的处理方式。 |
公共方法摘要
布尔值 | |
浮点数 |
getAlpha()
获取标记的 Alpha 值。
|
字符串 |
getId()
获取此标记的 ID。
|
LatLng |
getPosition()
返回标记的位置。
|
浮点数 |
getRotation()
获取标记的旋转角度。
|
字符串 |
getSnippet()
获取标记的代码段。
|
对象 |
getTag()
获取标记的标记。
|
字符串 |
getTitle()
获取标记的标题。
|
浮点数 |
getZIndex()
返回标记的 zIndex。
|
整型 |
hashCode()
|
void |
hideInfoWindow()
如果信息窗口显示在该标记中,则将其隐藏。
|
布尔值 |
isDraggable()
获取标记的可拖动性。
|
布尔值 |
isFlat()
获取标记的平面设置。
|
布尔值 |
isInfoWindowShown()
用于返回信息窗口当前是否显示在此标记上方。
|
布尔值 |
isVisible()
获取此标记的可见性设置。
|
void |
remove()
从地图中删除此标记。
|
void |
setAlpha(float alpha)
设置标记的 Alpha 值(不透明度)。
|
void |
setAnchor(float anchorU, float anchorV)
用于设置标记的定位点。
|
void |
setDraggable(布尔值可拖动)
设置标记的可拖动性。
|
void |
setFlat(布尔值平面)
设置此标记是贴于地图
true 的平面,还是朝向相机 false 的广告牌。 |
void | |
void |
setInfoWindowAnchor(float anchorU, float anchorV)
用于指定标记图像中显示信息窗口的锚定点。
|
void | |
void |
setRotation(浮点旋转)
用于设置标记围绕标记的锚点顺时针旋转的角度(以度为单位)。
|
void |
setSnippet(String snippet)
设置标记的代码段。
|
void |
setTag(对象标记)
设置标记的标记。
|
void |
setTitle(String title)
设置标记的标题。
|
void |
setVisible(布尔值 visible)
设置此标记的可见性。
|
void |
setZIndex(float zIndex)
设置标记的 zIndex。
|
void |
showInfoWindow()
在地图上显示此标记的信息窗口(如果该标记为
isVisible() )。 |
继承的方法摘要
公共方法
public boolean 等于 (其他对象)
public float getAlpha ()
获取标记的 Alpha 值。
返回
- 标记的 Alpha 值,范围为 [0, 1]。
public String getId ()
获取此标记的 ID。此 ID 在地图上的所有标记中都是唯一的。
返回
- 此标记的 ID。
public float getRotation ()
获取标记的旋转角度。
返回
- 标记与默认位置所呈顺时针旋转角度(以度为单位)。
public String getSnippet ()
获取标记的代码段。
返回
- 包含标记摘要的字符串。
public Object getTag ()
获取标记的标记。
返回
- 如果使用
setTag
设置标记,则为标记;如果未设置标记,则为null
。
public String getTitle ()
获取标记的标题。
返回
- 包含标记标题的字符串。
公共 浮点数 getZIndex ()
返回标记的 zIndex。
返回
- 此标记的 ZIndex。
public int hashCode ()
public void hideInfoWindow ()
如果信息窗口显示在该标记中,则将其隐藏。
如果该标记不可见,则此方法不会产生任何影响。
public boolean isDraggable ()
获取标记的可拖动性。当标记可拖动时,用户可通过长按标记来移动它。
返回
- 如果标记可拖动,则返回
true
;否则返回false
。
public boolean isFlat ()
获取标记的平面设置。
返回
- 如果标记相对于地图是平面的,则为
true
;如果标记应朝向镜头,则为false
。
public boolean isInfoWindowShown ()
用于返回信息窗口当前是否显示在此标记上方。此值不会考虑信息窗口是否在屏幕上实际可见。
public boolean isVisible ()
获取此标记的可见性设置。请注意,这并不表示标记是否位于屏幕的视口内。用于指示如果标记包含在屏幕的视口中,是否绘制该标记。
返回
- 是否可见。
public void remove ()
从地图中删除此标记。移除标记后,其所有方法的行为将处于未定义状态。
public void setAlpha (浮动 Alpha 值)
设置标记的 Alpha 值(不透明度)。这是一个介于 0 到 1 之间的值,其中 0 表示标记完全透明,1 表示该标记完全不透明。
参数
Alpha 版 |
---|
public void setAnchor (float anchorU, float anchorV)
设置标记的定位点。
锚点用于指定图标图片中某个点,该点锚定在地球表面上标记的位置。
锚点在连续空间 [0.0, 1.0] x [0.0, 1.0] 中指定,其中 (0, 0) 表示图片的左上角,(1, 1) 表示右下角。W x H 图像中的定位点是(W + 1) x(H + 1) 网格中最近的离散网格点,通过缩放然后舍入获得。例如,在 4 x 2 的图片中,定位点 (0.7, 0.6) 会解析为位于 (3, 1) 处的网格点。
*-----+-----+-----+-----* | | | | | | | | | | +-----+-----+-----+-----+ | | | X | | (U, V) = (0.7, 0.6) | | | | | *-----+-----+-----+-----* *-----+-----+-----+-----* | | | | | | | | | | +-----+-----+-----X-----+ (X, Y) = (3, 1) | | | | | | | | | | *-----+-----+-----+-----*
参数
anchorU | 锚点的 u 坐标,以图片宽度的比率(在 [0, 1] 范围内)表示。 |
---|---|
anchorV | 锚点的 v 坐标,以图片高度的比率(介于 [0, 1] 范围内)表示。 |
public void setDraggable (boolean draggable)
设置标记的可拖动性。当标记可拖动时,用户可通过长按标记来移动它。
参数
可拖动 |
---|
public void setFlat (布尔值平面)
设置此标记在贴近地图 true
时是平面的,还是朝向相机 false
的广告牌布局。
参数
flat |
---|
public void setInfoWindowAnchor (float anchorU, float anchorV)
用于指定标记图像中显示信息窗口的锚定点。此属性使用与锚点相同的坐标系指定。如需了解详情,请参阅 setAnchor(float, float)
。默认值为图片的顶部中间位置。
参数
anchorU | 信息窗口锚点的 u 坐标,以图片宽度的比率(在 [0, 1] 范围内)表示。 |
---|---|
anchorV | 信息窗口锚点的 v 坐标,以图片高度的比率(在 [0, 1] 范围内)表示。 |
public void setRotation (浮点数旋转)
用于设置标记围绕标记的锚点顺时针旋转的角度(以度为单位)。旋转轴与标记垂直。旋转角度为 0 对应于标记的默认位置。
参数
旋转 |
---|
public void setSnippet (String snippet)
设置标记的代码段。
参数
snippet | 如果为 null,系统会清除代码段。 |
---|
public void setTag (对象标记)
设置标记的标记。
您可以使用此属性将任意 Object
与此标记相关联。例如,Object
可以包含与标记所代表内容相关的数据。这比存储单独的 Map<Marker, Object>
更简单。再举一例,您可以关联与数据集中的 ID 对应的 String
ID。Google Maps SDK for Android 既不会读取也不会写入此属性。您有责任在不再需要该标记时调用 setTag(null)
将其清除,以防止应用中出现内存泄漏。
参数
标记 | 如果为 null,则会清除标记。 |
---|
public void setTitle (String title)
设置标记的标题。
参数
标题 | 如果为 null,则清除标题。 |
---|
public void setVisible (boolean visible)
设置此标记的可见性。如果设为 false
,并且此标记当前显示了信息窗口,则会隐藏信息窗口。
参数
visible |
---|
public void setZIndex (float zIndex)
设置标记的 zIndex。
参数
zIndex |
---|
public void showInfoWindow ()
在地图上显示此标记的信息窗口(如果该标记为 isVisible()
)。
抛出
IllegalArgumentException | 如果 marker 不在此地图上
|
---|