圖塊疊加層是一組圖像,顯示在基本地圖圖塊上方。這些圖塊可能是透明圖塊,以便您在現有地圖上新增地圖項目。圖塊疊加層具有下列屬性:
- 圖塊供應商
TileProvider
提供圖塊疊加層中使用的圖片。您必須先指定圖塊提供者,才能將其加入地圖。圖塊提供者新增後即無法變更。不過,您可以修改圖塊供應器的行為,針對特定座標傳回不同的圖片。如果資訊方塊供應商提供的圖塊有所變更,您必須在之後呼叫clearTileCache()
,以確保先前的圖塊不會再轉譯。- Z-Index
- 此圖塊疊加層相對於其他疊加層 (包括
GroundOverlay
、Circle
、Polyline
和Polygon
,但不含Marker
) 的繪製順序。系統會將 Z-index 值較大的疊加層繪製在較小的 Z 索引上。如果疊加層的 Z-index 值相同,則疊加順序是隨機決定的。預設的 zIndex 值為 0。 - 資訊公開
- 位於
[0..1]
範圍內的圖塊疊加層透明度,其中0
表示疊加層不透明,1
表示疊加層完全透明。如果指定的點陣圖已部分透明,系統將據此調整每個像素的透明度 (舉例來說,如果點陣圖中的像素的 Alpha 值為 200,而您將圖塊疊加層的透明度指定為 0.25),則像素會在螢幕上算繪,且 Alpha 值為 150。這項屬性的規格為選填,且預設的透明度為 0 (不透明)。 - 瀏覽權限
- 指出圖塊疊加層是可見還是隱藏,也就是是否在地圖上繪製。隱形的圖塊疊加層不會繪製,但會保留其所有其他屬性。預設值為
true
(亦即可見)。
您只能在主執行緒上呼叫這個類別的方法。否則會導致 IllegalStateException
。
圖塊座標
請注意,地圖是以麥卡托投影 (請參閱維基百科) 投影世界,地圖的左側 (西) 角度對應到地圖的經度 -180 度,右側 (東) 座標,對應經度 180 度。如要將地圖呈現正方形,地圖的上方 (北) 邊會對應到 85.0511 度的緯度,南側 (南) 的緯度為 -85.0511 度。系統不會顯示這個經緯度範圍以外的區域。
在每個縮放等級下,地圖都會分割成多個圖塊,而且只會下載並顯示與螢幕重疊的圖塊。每個圖塊都是正方形,地圖則劃分成圖塊,如下所示:
- 縮放等級為 0 時,一個圖塊代表全世界。該圖塊的座標為 (x, y) = (0, 0)。
- 縮放等級為 1 時,世界由 4 個圖塊組成,以 2 x 2 的方格排列。
- ...
- 縮放等級為 N 時,全世界會分成 4 個圖塊,並排出 2N x 2N 個圖塊。
GoogleMap.getMinZoomLevel
,最高縮放等級為 GoogleMap.getMaxZoomLevel
。圖塊座標是由地圖左上角 (西北) 測量。在縮放等級 N 時,圖塊座標的 x
值範圍介於 0 到 2N 到 1,以及從西到東遞增,y
值的範圍介於 0 到 2N 到 1 之間,由北到南增加。
範例
GoogleMap map; // ... get a map.
TileProvider tileProvider; // ... create a tile provider.
TileOverlay tileOverlay = map.addTileOverlay(
new TileOverlayOptions().tileProvider(tileProvider));
公用方法摘要
void |
clearTileCache()
清除圖塊快取,讓系統從
TileProvider 再次要求所有圖塊。 |
布林值 |
等於(其他物件)
測試此
TileOverlay 是否等於另一個值。 |
布林值 |
getFadeIn()
取得疊加層圖塊是否應淡入。
|
字串 |
getId()
取得此圖塊疊加層的 ID。
|
浮點值 |
getTransparency()
取得這個圖塊疊加層的透明度。
|
浮點值 |
getZIndex()
取得此圖塊疊加層的 zIndex。
|
int |
hashCode()
|
布林值 |
isVisible()
取得此圖塊疊加層的瀏覽權限。
|
void |
remove()
從地圖移除這個圖塊疊加層。
|
void |
setFadeIn(布林值 fadeIn)
設定是否應淡入疊加層圖塊。
|
void |
setTransparency(浮動透明度)
設定這個圖塊疊加層的透明度。
|
void |
setVisible(可見布林值)
設定這個圖塊疊加層的顯示設定。
|
void |
setZIndex(float zIndex)
設定這個圖塊疊加層的 zIndex。
|
繼承方法摘要
公用方法
public void clearTileCache ()
清除圖塊快取,讓系統從 TileProvider
再次要求所有圖塊。
呼叫此方法後,系統也會從地圖上清除這個圖塊疊加層目前的圖塊。API 會維護一個小型的記憶體內快取。如果想延長快取圖塊的時間,建議您導入磁碟快取。
公開布林值 getFadeIn ()
取得疊加層圖塊是否應淡入。
傳回
true
表示資訊方塊淡入;false
表示不淡入。
public String getId ()
取得此圖塊疊加層的 ID。
public float getTransparency ()
取得這個圖塊疊加層的透明度。
傳回
- 此圖塊疊加層的透明度。
public float 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)
設定這個圖塊疊加層的顯示設定。未顯示時,系統不會繪製圖塊疊加層,但會保留所有其他屬性。圖塊疊加層預設為顯示。
參數
顯示 | true 即可顯示此疊加層;false 表示隱藏。 |
---|
public void setZIndex (float zIndex)
設定這個圖塊疊加層的 zIndex。詳情請參閱這個類別頂端的說明文件。
參數
zIndex | 此圖塊疊加層的 zIndex。 |
---|