图块叠加层是显示在基本地图图块之上的一组图像。这些图块可能是透明的,以便您向现有地图添加地图项。图块叠加层具有以下属性:
- 图块提供程序
TileProvider
提供图块叠加层中使用的图像。您必须先指定图块提供程序,然后才能将其添加到地图中。图块提供程序一经添加便无法更改;不过,您可以修改图块提供程序的行为,以便针对特定坐标返回不同的图片。如果图块提供程序提供的图块发生更改,您必须在之后调用clearTileCache()
,以确保不再渲染以前的图块。- Z-index
- 此图块叠加层相对于其他叠加层的绘制顺序(包括
GroundOverlay
、Circle
、Polyline
和Polygon
,但不包括Marker
)。Z-index 较大的叠加层在 Z-index 较小的叠加层上绘制。Z-index 相同的叠加层可按任意顺序绘制。默认 ZIndex 为 0。 - 透明度
- 图块叠加层在
[0..1]
范围内的透明度,其中0
表示叠加层不透明,1
表示叠加层完全透明。如果指定的位图已部分透明,则每个像素的透明度将相应地缩放(例如,如果位图中某个像素的 alpha 值为 200,而您将图块叠加层的透明度指定为 0.25,那么此像素将在屏幕上渲染并使用 150 的 alpha 值)。此属性的规范是可选的,默认透明度为 0(不透明)。 - 可见性
- 指示图块叠加层是否可见,即是否绘制在地图上。不可见的图块叠加层不会绘制,但会保留其所有其他属性。默认值为
true
,即可见。
您只能在主线程上调用此类中的方法。否则,将会导致 IllegalStateException
。
图块坐标
请注意,世界是使用墨卡托投影法(请参阅维基百科)投影的,地图的左侧(西)侧对应于经度 -180 度,而右侧(东)侧则对应于经度 180 度。为使地图呈方形,地图的顶部(北)侧对应于 85.0511 度,而底部(南)侧的纬度则对应于 -85.0511 度。系统不会渲染此纬度范围以外的区域。
在每个缩放级别,地图都会分成图块,系统仅会下载并渲染与屏幕重叠的图块。每个图块都是方形的,且地图会按以下方式分为多个图块:
- 缩放级别为 0 时,一个图块表示整个世界。该图块的坐标为 (x, y) = (0, 0)。
- 缩放级别为 1 时,世界被分成 4 个图块,分布在 2 x 2 的网格中。
- ...
- 缩放级别为 N 时,世界分为 4N 个图块,这些图块排列在一个 2N x 2N 网格中。
GoogleMap.getMinZoomLevel
,最大缩放级别为 GoogleMap.getMaxZoomLevel
。
图块的坐标是从地图左上角(西北角)开始测量的。在缩放级别为 N 时,图块坐标的 x
值介于 0 到 2N - 1 之间,从西向东增加,y
值从 0 到 2 N - 1,从北向南增加。
示例
GoogleMap map; // ... get a map.
TileProvider tileProvider; // ... create a tile provider.
TileOverlay tileOverlay = map.addTileOverlay(
new TileOverlayOptions().tileProvider(tileProvider));
公共方法摘要
void |
clearTileCache()
清除图块缓存,以便从
TileProvider 再次请求所有图块。 |
布尔值 |
equals(其他对象)
用于测试此
TileOverlay 是否等于另一个。 |
布尔值 |
getFadeIn()
获取叠加层图块是否应淡入。
|
字符串 |
getId()
获取此图块叠加层的 ID。
|
浮点数 |
getTransparency()
获取此图块叠加层的透明度。
|
浮点数 |
getZIndex()
获取此图块叠加层的 zIndex。
|
整型 |
hashCode()
|
布尔值 |
isVisible()
获取此图块叠加层的可见性。
|
void |
remove()
从地图中移除此图块叠加层。
|
void |
setFadeIn(布尔值 fadeIn)
设置叠加层图块是否应淡入。
|
void |
setTransparency(浮点数透明度)
设置此图块叠加层的透明度。
|
void |
setVisible(布尔值 visible)
用于设置此图块叠加层的可见性。
|
void |
setZIndex(float zIndex)
设置此图块叠加层的 zIndex。
|
继承的方法摘要
公共方法
public void clearTileCache ()
清除图块缓存,以便从 TileProvider
再次请求所有图块。
调用此方法后,系统也会从地图上清除此图块叠加层中的当前图块。API 在内存中保留一个较小的图块缓存。如果您希望将图块缓存更长时间,应实现磁盘缓存。
public boolean 等于 (其他对象)
public boolean getFadeIn ()
获取叠加层图块是否应淡入。
返回
- 如果图块将淡入,则为
true
;如果淡入,则为false
。
public String getId ()
获取此图块叠加层的 ID。
公共浮点 getTransparency ()
获取此图块叠加层的透明度。
返回
- 此图块叠加层的透明度。
公共 浮点数 getZIndex ()
获取此图块叠加层的 zIndex。
返回
- 图块叠加层的 zIndex。
public int hashCode ()
public boolean isVisible ()
获取此图块叠加层的可见性。请注意,这不会返回图块叠加层是否实际位于屏幕的视口内,而是会返回该叠加层包含在屏幕视口中时是否绘制。
返回
- 此图块叠加层的可见性。
public void remove ()
从地图中移除此图块叠加层。
public void setFadeIn (boolean fadeIn)
设置叠加层图块是否应淡入。
参数
fadeIn | true - 使图块淡入;false - 立即渲染图块。
|
---|
public void setTransparency (浮点型透明度)
设置此图块叠加层的透明度。如需了解详情,请参阅本课程顶部的文档。
参数
透明度 | [0..1] 范围内的浮点数,其中 0 表示图块叠加层不透明,1 表示图块叠加层是透明的。 |
---|
public void setVisible (boolean visible)
用于设置此图块叠加层的可见性。在不可见时,图块叠加层不会绘制,但会保留其所有其他属性。默认情况下,图块叠加层处于可见状态。
参数
visible | true - 使此叠加层可见;false - 使其不可见。
|
---|
public void setZIndex (float zIndex)
设置此图块叠加层的 zIndex。如需了解详情,请参阅本课程顶部的文档。
参数
zIndex | 此图块叠加层的 zIndex。 |
---|