圖塊疊加層是顯示在基本地圖圖塊上方的一組圖片。這些圖塊可能是透明的,可讓您將功能新增至現有地圖。圖塊疊加層有下列屬性:
- 資訊方塊供應商
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 時,全世界則會分割為以 2N x 2N 格線排列的 4N 個圖塊。
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 要求所有圖塊。 |
布林 |
等於 (物件其他)
測試這個
TileOverlay 是否等於另一個。 |
布林 |
getFadeIn()
取得疊加層圖塊是否應淡入。
|
字串 |
getId()
取得這個圖塊疊加層 ID。
|
浮點值 |
getTransparency()
取得這個圖塊疊加層的透明度。
|
浮點值 |
getZIndex()
取得這個圖塊疊加層的 zIndex。
|
整數 |
hashCode()
|
布林 |
isVisible()
取得這個圖塊疊加層的顯示設定。
|
void |
remove()
從地圖中移除此圖塊疊加層。
|
void |
setFadeIn(布林值 FadeIn)
設定疊加層圖塊是否應淡入。
|
void |
setTransparency(浮動透明度)
設定此圖塊疊加層的透明度。
|
void |
setVisible (布林值顯示)
設定此圖塊疊加層的顯示設定。
|
void |
setZIndex (浮動值 zIndex)
設定這個圖塊疊加層的 zIndex。
|
繼承方法摘要
公用方法
public clearTileCache ()
清除圖塊快取,以便系統再次從 TileProvider
要求所有圖塊。呼叫此方法後,此圖塊疊加層中的目前圖塊也會從地圖中清除。API 會在圖塊中保存一個小型的記憶體內快取。如果您想長時間快取圖塊,請實作磁碟上快取。
public 布林值 getFadeIn ()
取得疊加層圖塊是否應淡入。
傳回
- 如果圖塊圖塊淡入,則為
true
;否則為false
。
public String getId ()
取得這個圖塊疊加層 ID。
public float getTransparency ()
取得這個圖塊疊加層的透明度。
傳回
- 此圖塊疊加層的透明度。
public float getZIndex ()
取得這個圖塊疊加層的 zIndex。
傳回
- 圖塊疊加層的 zIndex。
public int hashCode ()
公開布林值 isVisible ()
取得這個圖塊疊加層的顯示設定。請注意,這不會傳回圖塊疊加層是否確實位於螢幕的可視區域中,但如果並納入疊加層的可視區域,則不會傳回。
傳回
- 這個圖塊疊加層的顯示設定。#39;
public 移除 ()
從地圖中移除此圖塊疊加層。
public setFadeIn (布林值 fadeIn)
設定疊加層圖塊是否應淡入。
參數
淡出 | true 讓圖塊呈現淡出狀態;false 會立即轉譯。
|
---|
public setTransparency (浮點透明度)
設定此圖塊疊加層的透明度。詳情請參閱本類別頂端的說明文件。
參數
資訊公開 | 範圍為 [0..1] 的浮點,其中 0 表示圖塊疊加層為不透明,1 表示圖塊疊加層為透明。 |
---|
public setVisible (布林值顯示)
設定此圖塊疊加層的顯示設定。如果看不到,圖塊疊加層就不會繪製,但會保留所有其他屬性。圖塊疊加層預設顯示。
參數
顯示 | true 可讓疊加層重疊顯示;false 則可隱藏這個疊加層。 |
---|
public setZIndex(float zIndex)
設定這個圖塊疊加層的 zIndex。詳情請參閱這個類別頂端的說明文件。
參數
ZIndex | 此圖塊疊加層的 zIndex。 |
---|