GroundOverlay

public final 类 GroundOverlay扩展对象

地面叠加层是固定在地图上的图像。地面叠加层具有以下属性:

位置
您可以通过以下两种方式指定地面叠加层的位置:
  • 使用位置:您必须提供地面叠加层的图像、锚点固定位置 LatLng 以及叠加层的宽度(以米为单位)。默认情况下,锚点距离图片顶部 50%,距离图片左侧 50%。可以更改。您可以选择提供叠加层的高度(以米为单位)。如果您没有提供叠加层的高度,系统会自动计算其高度,以保持图像的比例。
  • 使用边界:您必须提供一个将包含图片的 LatLngBounds
您必须先指定地面叠加层的位置,然后才能将其添加到地图,否则在向地图添加地面叠加层时,系统会抛出 IllegalArgumentException。此外,您必须使用 GroundOverlayOptions 对象中的其中一个方法指定位置;否则,当您使用第二个方法指定位置时,系统会抛出 IllegalStateException
图片
要用于此叠加层的图片(作为 BitmapDescriptor)。系统会缩放图片以适合所提供的位置。在将地面叠加层添加到地图之前,您必须先指定图像;否则,在向地图添加地面叠加层时,系统会抛出 IllegalArgumentException
方向角
图片应沿顺时针方向旋转的量。旋转中心将是图片的锚点。该方向角为可选值,默认方向角为 0,即对齐图像,使上北方。
zIndex
此地面叠加层相对于其他叠加层(包括 PolylineTileOverlay,但不包括 Marker)的绘制顺序。zIndex 较大的叠加层绘制在 zIndex 较小的叠加层之上。zIndex 值相同的叠加层可按任意顺序绘制。该值为可选值,默认 zIndex 为 0。
透明度
地面叠加层的透明度范围为 [0..1],其中 0 表示叠加层不透明,1 表示叠加层完全透明。如果指定的位图已部分透明,则每个像素的透明度都会相应地缩放(例如,如果位图中某个像素的 alpha 值为 200,并且您将地面叠加层的透明度指定为 0.25,那么此像素将在屏幕上渲染并使用 150 的 alpha 值)。此属性的规范是可选的,默认透明度为 0(不透明)。
可见性
用于指示地面叠加层是否可见,即是否绘制在地图上。不可见的地面叠加层不会绘制,但会保留其所有其他属性。此属性是可选的,默认可见性为 true,即可见。
可点击性
如需处理用户点击地面叠加层时触发的事件,请将此属性设置为 true。您可以随时更改此值。默认值为 false。如果此属性设为 true,您的应用将收到通过 setOnGroundOverlayClickListener(GoogleMap.OnGroundOverlayClickListener) 注册的 GoogleMap.OnGroundOverlayClickListener 的通知。
标记
与地面叠加层关联的 Object。例如,Object 可以包含地面叠加层所代表内容的相关数据。这比存储单独的 Map<GroundOverlay, Object> 更简单。再举一个例子,您可以关联与数据集中 ID 对应的 String ID。Google Maps SDK for Android 既不会读取也不会写入此属性。

此类中的方法必须在 Android 界面线程上调用。否则,系统会在运行时抛出 IllegalStateException

示例

GoogleMap map = ...; // get a map.
 BitmapDescriptor imageDescriptor = ...; // get an image.
 LatLngBounds bounds = ...; // get a bounds
 // Adds a ground overlay with 50% transparency.
 GroundOverlay groundOverlay = map.addGroundOverlay(new GroundOverlayOptions()
     .image(imageDescriptor)
     .positionFromBounds(bounds)
     .transparency(0.5));
 

公共方法摘要

布尔值
equals(其他对象)
用于测试此 GroundOverlay 是否等于另一个。
浮点数
getBearing()
获取地面叠加层的方位(以与北方所呈顺时针角度表示)。
LatLngBounds
getBounds()
获取地面叠加层的边界。
浮点数
getHeight()
获取地面叠加层的高度。
字符串
getId()
获取此地面叠加层的 ID。
LatLng
getPosition()
获取锚点的位置。
对象
getTag()
获取圆形的标记。
浮点数
getTransparency()
获取此地面叠加层的透明度。
浮点数
getWidth()
获取地面叠加层的宽度。
浮点数
getZIndex()
获取此地面叠加层的 ZIndex。
整型
布尔值
isClickable()
获取地面叠加层的可点击性。
布尔值
isVisible()
获取此地面叠加层的可见性。
void
remove()
从地图中移除此地面叠加层。
void
setBearing(浮动方向角)
设置地面叠加层的方位(地面叠加层的纵轴所指向的方向),以与北方所呈顺时针角度来表示。
void
setClickable(布尔值可点击)
设置地面叠加层的可点击性。
void
setDimensions(浮点数宽度、浮点高度)
设置地面叠加层的尺寸。
void
setDimensions(浮点宽度)
设置地面叠加层的宽度。
void
setImage(BitmapDescriptor imageDescriptor)
设置地面叠加层的图像。
void
setPosition(LatLng latLng)
通过更改锚点的位置来设置地面叠加层的位置。
void
setPositionFromBounds(LatLngBounds 边界)
通过将地面叠加层适合指定的 LatLngBounds 来设置其位置。
void
setTag(对象标记)
设置地面叠加层的标记。
void
setTransparency(浮点数透明度)
设置此地面叠加层的透明度。
void
setVisible(布尔值 visible)
设置此地面叠加层的可见性。
void
setZIndex(float zIndex)
设置此地面叠加层的 ZIndex。

继承的方法摘要

公共方法

public boolean 等于 (其他对象)

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

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

public float getBearing ()

获取地面叠加层的方位(以与北方所呈顺时针角度表示)。

返回
  • 地面叠加层的方向角。

public LatLngBounds getBounds ()

获取地面叠加层的边界。此方法会忽略地面叠加层的旋转。

返回

public float getHeight ()

获取地面叠加层的高度。

返回
  • 地面叠加层的高度(以米为单位)。

public String getId ()

获取此地面叠加层的 ID。此 ID 在地图上的所有 GroundOverlay 中都是唯一的。

返回
  • 该地面叠加层的 ID。

public LatLng getPosition ()

获取锚点的位置。

返回
  • 在地图上的位置 (LatLng)。

public Object getTag ()

获取圆形的标记。

返回
  • 如果使用 setTag 设置标记,则为标记;如果未设置标记,则为 null

公共浮点 getTransparency ()

获取此地面叠加层的透明度。

返回
  • 该地面叠加层的透明度。

public float getWidth ()

获取地面叠加层的宽度。

返回
  • 地面叠加层的宽度(以米为单位)。

公共 浮点数 getZIndex ()

获取此地面叠加层的 ZIndex。

返回
  • 地面叠加层的 zIndex。

public int hashCode ()

public boolean isClickable ()

获取地面叠加层的可点击性。如果地面叠加层可点击,应用会在用户点击地面叠加层时向 GoogleMap.OnGroundOverlayClickListener 发送通知。事件监听器通过 setOnGroundOverlayClickListener(GoogleMap.OnGroundOverlayClickListener) 注册。

返回
  • 如果地面叠加层可点击,则返回 true;否则,返回 false

public boolean isVisible ()

获取此地面叠加层的可见性。请注意,这不会返回地面叠加层是否实际位于屏幕上,而是返回它包含在镜头视口中时是否绘制。

返回
  • 该地面叠加层的可见性。

public void remove ()

从地图中移除此地面叠加层。移除地面叠加层后,其所有方法的行为将处于未定义状态。

public void setBearing (浮动方向角)

设置地面叠加层的方位(地面叠加层的纵轴所指向的方向),以与北方所呈顺时针角度来表示。旋转是围绕锚点进行的。

参数
方向角 从北方顺时针旋转(以度为单位)

public void setClickable (布尔值可点击)

设置地面叠加层的可点击性。如果地面叠加层可点击,应用会在用户点击地面叠加层时向 GoogleMap.OnGroundOverlayClickListener 发送通知。事件监听器通过 setOnGroundOverlayClickListener(GoogleMap.OnGroundOverlayClickListener) 注册。

参数
可点击 为地面叠加层新增了可点击性设置。

public void setDimensions (float width, float height)

设置地面叠加层的尺寸。系统将拉伸图片以适应尺寸。

参数
width 宽度(米)
高度 高度(米)

public void setDimensions (浮点宽度)

设置地面叠加层的宽度。地面叠加层的高度将进行相应调整,以保持宽高比。

参数
width 宽度(米)

public void setImage (BitmapDescriptor imageDescriptor)

设置地面叠加层的图像。新图像将占据与旧图像相同的边界。

参数
imageDescriptor 要用于此地面叠加层的 BitmapDescriptor

public void setPosition (LatLng latLng)

通过更改锚点的位置来设置地面叠加层的位置。保留映像的所有其他属性。

参数
latLng LatLng,即放置锚点的新位置。

public void setPositionFromBounds (LatLngBounds bounds)

通过将地面叠加层适合指定的 LatLngBounds 来设置其位置。此方法会在定位地面叠加层时忽略其旋转(方向角),但在绘制时仍会使用方向角。

参数
bounds 需要放置地面叠加层的 LatLngBounds

public void setTag (对象标记)

设置地面叠加层的标记。

您可以使用此属性将任意 Object 与此地面叠加层相关联。例如,Object 可以包含地面叠加层所代表内容的相关数据。这比存储单独的 Map<GroundOverlay, Object> 更简单。再举一例,您可以关联与数据集中的 ID 对应的 String ID。Google Maps SDK for Android 既不会读取也不会写入此属性。您有责任在不再需要该标记时调用 setTag(null) 将其清除,以防止应用中出现内存泄漏。

参数
标记 如果为 null,则会清除标记。

public void setTransparency (浮点型透明度)

设置此地面叠加层的透明度。如需了解详情,请参阅本课程顶部的文档。

参数
透明度 [0..1] 范围内的浮点数,其中 0 表示地面叠加层不透明,1 表示地面叠加层是透明的。

public void setVisible (boolean visible)

设置此地面叠加层的可见性。地面叠加层在不可见时不会绘制,但会保留其所有其他属性。

参数
visible 如果为 true,则地面叠加层可见;如果为 false,则不会显示地面叠加层

public void setZIndex (float zIndex)

设置此地面叠加层的 ZIndex。如需了解详情,请参阅本课程顶部的文档。

参数
zIndex 该地面叠加层的 zIndex