地面叠加层是固定在地图上的图像。地面叠加层具有以下属性:
- 位置
- 您可以通过以下两种方式指定地面叠加层的位置:
- 使用位置:您必须提供地面叠加层的图像、锚点固定位置
LatLng
以及叠加层的宽度(以米为单位)。默认情况下,锚点距离图片顶部 50%,距离图片左侧 50%。可以更改。您可以选择提供叠加层的高度(以米为单位)。如果您没有提供叠加层的高度,系统会自动计算其高度,以保持图像的比例。 - 使用边界:您必须提供一个将包含图片的
LatLngBounds
。
IllegalArgumentException
。此外,您必须使用GroundOverlayOptions
对象中的其中一个方法指定位置;否则,当您使用第二个方法指定位置时,系统会抛出IllegalStateException
。 - 使用位置:您必须提供地面叠加层的图像、锚点固定位置
- 图片
- 要用于此叠加层的图片(作为
BitmapDescriptor
)。系统会缩放图片以适合所提供的位置。在将地面叠加层添加到地图之前,您必须先指定图像;否则,在向地图添加地面叠加层时,系统会抛出IllegalArgumentException
。 - 方向角
- 图片应沿顺时针方向旋转的量。旋转中心将是图片的锚点。该方向角为可选值,默认方向角为 0,即对齐图像,使上北方。
- zIndex
- 此地面叠加层相对于其他叠加层(包括
Polyline
和TileOverlay
,但不包括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。
|
整型 |
hashCode()
|
布尔值 |
isClickable()
获取地面叠加层的可点击性。
|
布尔值 |
isVisible()
获取此地面叠加层的可见性。
|
void |
remove()
从地图中移除此地面叠加层。
|
void |
setBearing(浮动方向角)
设置地面叠加层的方位(地面叠加层的纵轴所指向的方向),以与北方所呈顺时针角度来表示。
|
void |
setClickable(布尔值可点击)
设置地面叠加层的可点击性。
|
void |
setDimensions(浮点数宽度、浮点高度)
设置地面叠加层的尺寸。
|
void |
setDimensions(浮点宽度)
设置地面叠加层的宽度。
|
void | |
void | |
void | |
void |
setTag(对象标记)
设置地面叠加层的标记。
|
void |
setTransparency(浮点数透明度)
设置此地面叠加层的透明度。
|
void |
setVisible(布尔值 visible)
设置此地面叠加层的可见性。
|
void |
setZIndex(float zIndex)
设置此地面叠加层的 ZIndex。
|
继承的方法摘要
公共方法
public boolean 等于 (其他对象)
public float getBearing ()
获取地面叠加层的方位(以与北方所呈顺时针角度表示)。
返回
- 地面叠加层的方向角。
public float getHeight ()
获取地面叠加层的高度。
返回
- 地面叠加层的高度(以米为单位)。
public String getId ()
获取此地面叠加层的 ID。此 ID 在地图上的所有 GroundOverlay 中都是唯一的。
返回
- 该地面叠加层的 ID。
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 |
---|