标记

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。
public final class Marker extensions Object

放置在地图表面上特定位置的图标。标记图标是相对于设备的屏幕(而不是地图的表面)绘制的;也就是说,它不一定会因地图旋转、倾斜或缩放而改变方向。

标记具有以下属性:

Alpha 版
设置标记的不透明度。默认值为 1.0。
锚点
图像上将置于标记的 LatLng 位置的点。默认距离图片左侧和图片底部 50%。
位置
地图上相应位置的 LatLng 值。如果您想移动标记,可以随时更改此值。
标题
当用户点按标记时显示在信息窗口内的文本字符串。您可以随时更改此值。
代码段
标题下方显示的其他文字。您可以随时更改此值。
图标
为标记显示的位图。如果未设置该图标,则会显示默认图标。您可以使用 defaultMarker(float) 指定默认图标的替代颜色。
拖动状态
如果您想允许用户拖动标记,请将此属性设为 true。您可以随时更改此值。默认值为 false
可见性
默认情况下,标记处于可见状态。若要将标记设为不可见,请将此属性设为 false。您可以随时更改此值。
Flat 或 Billboard
如果标记在地图上是扁平的,它会在相机旋转和倾斜时保持固定在地图上,但与相机缩放一样,它仍会保持大小不变,这与 GroundOverlay 不同。如果标记是广告牌,则标记将始终朝向镜头,并且会随相机旋转或倾斜。默认值为广告牌 (false)
旋转
标记围绕标记锚定点顺时针旋转的角度(以度为单位)。旋转轴与标记垂直。旋转 0 对应于标记的默认位置。当地图上的标记为 Flat 标记时,默认位置为指向北方,并且旋转时标记始终保持在地图上平面状态。如果标记是广告牌,则默认位置为朝上,而且旋转时标记始终朝向镜头。默认值为 0。
Z-index
标记的绘制顺序。标记按 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"));
 

开发者指南

如需了解详情,请阅读标记开发者指南。

嵌套类摘要

@接口 Marker.CollisionBehavior 指明当标记与其他标记或基本地图标签发生冲突时的处理方式。

公共方法摘要

布尔值
等于(其他对象)
用于测试此 Marker 是否等于另一个。
浮点数
getAlpha 版()
获取标记的 Alpha 值。
字符串
getId()
获取此标记的 ID。
LatLng
getPosition()
返回标记的位置。
浮点数
getRotation()
获取标记的旋转。
字符串
getSnippet()
获取标记的代码段。
对象
getTag()
获取标记。
字符串
getTitle()
获取标记的标题。
浮点数
getZIndex()
返回标记的 zIndex。
整数
无效
hideInfoWindow()
如果从此标记中显示信息窗口,则将其隐藏。
布尔值
isDraggable()
获取标记的可拖动性。
布尔值
isFlat()
获取标记的平面设置。
布尔值
isInfoWindowShown
用于返回信息窗口当前是否位于此标记上方。
布尔值
isVisible()
获取此标记的可见性设置。
无效
remove()
从地图中删除此标记。
无效
setAlpha 版(浮点数 Alpha 值)
设置标记的 Alpha(不透明度)。
无效
setAnchor(float anchorU, float anchorV)
设置标记的定位点。
无效
setDraggable(布尔值可拖动项)
用于设置标记的可拖动性。
无效
setFlat(布尔值 Flat)
设置此标记是对应地图 true 还是朝向相机 false 的广告牌。
无效
setIcon(BitmapDescriptor iconDescriptor)
设置标记的图标。
无效
setInfoWindowAnchor(float anchorU, float anchorV)
指定信息窗口中显示的标记图像中要锚定的点。
无效
setPosition(LatLng latlng)
设置标记的位置。
无效
setRotation(浮点数轮播)
设置标记围绕标记锚定点的顺时针旋转角度(以度为单位)。
无效
setSnippet(字符串代码段)
设置标记的代码段。
无效
setTag(对象标记)
设置标记。
无效
setTitle(字符串标题)
设置标记的标题。
无效
setVisible(布尔值可见)
设置此标记的可见性。
无效
setZIndex(浮点 zIndex)
设置标记的 zIndex。
无效
showInfoWindow()
在地图上显示此标记的信息窗口(如果此标记isVisible())。

继承的方法摘要

公共方法

public boolean equals (Object other)

用于测试此 Marker 是否等于另一个。

参数
其他 一个 Object
返回
  • 如果两个对象相同(即 == 其他),则为 true。

public float getAlpha ()

获取标记的 Alpha 值。

返回
  • 标记的 Alpha 值在 [0, 1] 范围内。

public String getId ()

获取此标记的 ID。此 ID 在地图的所有标记中是唯一的。

返回
  • 标记对应的 ID。

public LatLng getPosition ()

返回标记的位置。

返回
  • 一个 LatLng 对象,用于指定标记的当前位置。

公开浮点数 getRotation ()

获取标记的旋转。

返回
  • 标记与默认位置所呈顺时针角度的旋转。

public String getSnippet ()

获取标记的代码段。

返回
  • 包含标记代码段的字符串。

public Object getTag ()

获取标记。

返回
  • 标记(如果使用 setTag 进行设置);如果未设置标记,则值为 null

public String getTitle ()

获取标记的标题。

返回
  • 包含标记标题的字符串。

public float getZIndex ()

返回标记的 zIndex。

返回
  • 此标记的 zIndex。

public int hashCode ()

public void hideInfoWindow ()

如果从此标记中显示信息窗口,则将其隐藏。

如果此标记不可见,则此方法不会产生任何影响。

public boolean isDraggable ()

获取标记的可拖动性。当标记可拖动时,用户可以通过长按标记移动标记。

返回
  • 如果标记可拖动,则返回 true;否则返回 false

public boolean isFlat ()

获取标记的平面设置。

返回
  • 如果标记在地图上是平的,则为 true;如果标记应面向相机,则为 false

公开布尔值 isInfoWindowShown ()

用于返回信息窗口当前是否位于此标记上方。这不会考虑信息窗口是否在屏幕上实际可见。

public boolean isVisible ()

获取此标记的可见性设置。请注意,这并不表示标记是否在屏幕的视口内。用于指示如果标记包含在屏幕视口中,是否会进行绘制。

返回
  • 此标记的可见性。

public void remove ()

从地图中删除此标记。移除标记后,其所有方法的行为均未定义。

public void setAlpha (float 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 (boolean 平面)

设置此标记是对应地图 true 还是朝向相机 false 的广告牌。

参数
持平

public void setIcon (BitmapDescriptor iconDescriptor)

设置标记的图标。

参数
iconDescriptor 图标 如果为 null,则使用默认标记。

public void setInfoWindowAnchor (float anchorU, float anchorV)

指定信息窗口中显示的标记图像中要锚定的点。此值在与锚点相同的坐标系中指定。如需了解详情,请参阅 setAnchor(float, float)。默认值为图片的中间。

参数
AnchorU 信息窗口锚点的 u 坐标,以图片宽度的比率(范围 [0, 1])表示。
AnchorV 信息窗口锚点的 v 坐标,以图片高度的比率(范围 [0, 1])表示。

public void setPosition (LatLng latlng)

设置标记的位置。

参数
经纬度

public void setRotation (float 轮替)

设置标记围绕标记锚定点的顺时针旋转角度(以度为单位)。旋转轴与标记垂直。旋转 0 对应于标记的默认位置。

参数
旋转

public void setSnippet (String snippet)

设置标记的代码段。

参数
如果为 null,该代码段会被清除。

public void setTag (Object tag)

设置标记。

您可以使用此属性将任意 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 (booleanvisible)

设置此标记的可见性。如果设置为 false 并且此标记当前会显示一个信息窗口,则系统会隐藏该信息窗口。

参数
visible

public void setZIndex (float zIndex)

设置标记的 zIndex。

参数
Z-index

public void showInfoWindow ()

在地图上显示此标记的信息窗口(如果此标记isVisible())。

抛出
IllegalArgumentException 如果此地图上没有marker