區域疊加層是指固定於地圖上的圖片。區域疊加層包含下列屬性:
- 位置
- 有兩種方法可指定區域疊加層的位置:
- 使用位置:您必須提供區域疊加層的圖片、固定位置的
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),則像素會在螢幕上算繪,且 Alpha 值為 150。這項屬性的規格為選填,且預設的透明度為 0 (不透明)。 - 瀏覽權限
- 指出區域疊加層是可見還是隱藏,也就是是否在地圖上繪製。隱形的區域疊加層不會繪製,但會保留所有其他屬性。這是選用項目,預設的顯示設定為
true
,也就是可見。 - 可點擊性
- 如要處理使用者點選區域疊加層時觸發的事件,請將這項屬性設為
true
。您隨時可以變更這個值。預設值為false
。如果此屬性設為true
,應用程式就會收到透過setOnGroundOverlayClickListener(GoogleMap.OnGroundOverlayClickListener)
註冊的GoogleMap.OnGroundOverlayClickListener
通知。 - 標記
- 與區域疊加層相關聯的
Object
。舉例來說,Object
可包含區域疊加層代表的相關資料。這比儲存個別的Map<GroundOverlay, Object>
容易。另一個例子是,您可以將與資料集 ID 對應的String
ID 建立關聯。Google Maps SDK for Android 不會讀取或寫入這個屬性。
此類別中的方法必須在 Android UI 執行緒上呼叫。否則,系統會在執行階段擲回 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));
公用方法摘要
布林值 |
等於(其他物件)
測試此
GroundOverlay 是否等於另一個值。 |
浮點值 |
getBearing()
從北方順時針取得區域疊加層的方位。
|
LatLngBounds |
getBounds()
取得區域疊加層的邊界。
|
浮點值 |
getHeight()
取得區域疊加層的高度。
|
字串 |
getId()
取得此區域疊加層 ID。
|
LatLng |
getPosition()
取得錨點的位置。
|
物件 |
getTag()
取得圓形的標記。
|
浮點值 |
getTransparency()
取得這個區域疊加層的透明度。
|
浮點值 |
getWidth()
取得區域疊加層的寬度。
|
浮點值 |
getZIndex()
取得此區域疊加層的 zIndex。
|
int |
hashCode()
|
布林值 |
isClickable()
取得區域疊加層的可點擊性。
|
布林值 |
isVisible()
取得區域疊加層的能見度。
|
void |
remove()
從地圖中移除此區域疊加層。
|
void |
setBearing(浮動方位)
設定區域疊加層的方位 (區域疊加層點垂直軸的方向) 以比北順時針角度。
|
void |
setClickable(布林值可點擊)
設定區域疊加層的可點擊屬性。
|
void |
setDimensions(浮點寬度、浮點高度)
設定區域疊加層的維度。
|
void |
setDimensions(浮點寬度)
設定區域疊加層的寬度。
|
void | |
void | |
void | |
void |
setTag(物件標記)
設定區域疊加層的標記。
|
void |
setTransparency(浮動透明度)
設定此區域疊加層的透明度。
|
void |
setVisible(可見布林值)
設定此區域疊加層的顯示設定。
|
void |
setZIndex(float zIndex)
設定這個區域疊加層的 zIndex。
|
繼承方法摘要
公用方法
public float getBearing ()
從北方順時針取得區域疊加層的方位。
傳回
- 區域疊加層的方位。
public float getHeight ()
取得區域疊加層的高度。
傳回
- 區域疊加層的高度 (以公尺為單位)。
public String getId ()
取得此區域疊加層 ID。此 ID 是地圖上所有 GroundOverlays 的唯一識別碼。
傳回
- 該區域疊加層的 ID。
公開物件 getTag ()
取得圓形的標記。
傳回
- 如果標記是設為
setTag
時的標記;如果未設定任何標記,則為null
。
public float getTransparency ()
取得這個區域疊加層的透明度。
傳回
- 此區域疊加層的透明度。
public float getWidth ()
取得區域疊加層的寬度。
傳回
- 區域疊加層的寬度 (以公尺為單位)。
public float 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 (浮點寬度、浮點高度)
設定區域疊加層的維度。圖片會延展,以符合尺寸。
參數
width | 寬度 (公尺) |
---|---|
height | 高度 (單位為公尺) |
public void setDimensions (浮點寬度)
設定區域疊加層的寬度。區域疊加層的高度會隨之調整,以維持長寬比。
參數
width | 寬度 (單位為公尺) |
---|
public void setImage (BitmapDescriptor imageDescriptor)
設定區域疊加層的圖片。新圖片的邊界會與舊映像檔相同。
參數
imageDescriptor | 此區域疊加層要使用的 BitmapDescriptor 。 |
---|
public void setPositionFromBounds (LatLngBounds 範圍)
將區域疊加層調整至指定的 LatLngBounds
,藉此設定區域疊加層的位置。此方法會在放置區域疊加層時忽略其旋轉 (偏移),但在繪製區域時仍會使用航向。
參數
邊界 | 用於放置區域疊加層的 LatLngBounds |
---|
public void setTag (物件標記)
設定區域疊加層的標記。
您可以使用這個屬性,將任意的 Object
與這個區域疊加層建立關聯。舉例來說,Object
可包含區域疊加層代表的內容。這比儲存個別的 Map<GroundOverlay, Object>
容易。另一個例子是,您可以將與資料集 ID 對應的 String
ID 建立關聯。Google Maps SDK for Android 既不會讀取或寫入這個屬性,您必須負責呼叫 setTag(null)
以清除不再需要的標記,以免應用程式的記憶體流失。
參數
標記 | 如果為空值,系統會清除標記。 |
---|
public void setTransparency (浮點透明度)
設定此區域疊加層的透明度。詳情請參閱這個類別頂端的說明文件。
參數
資料使用方式 | 範圍為 [0..1] 的浮點數,其中 0 表示區域疊加層不透明,1 表示區域疊加層為透明。 |
---|
public void setVisible (boolean visible)
設定此區域疊加層的顯示設定。未顯示的區域疊加層時,系統不會繪製區域疊加層,但會保留所有其他屬性。
參數
顯示 | 如果為 true ,會顯示區域疊加層;如果為 false ,則不會顯示 |
---|
public void setZIndex (float zIndex)
設定這個區域疊加層的 zIndex。詳情請參閱這個類別頂端的說明文件。
參數
zIndex | 此區域疊加層的 zIndex |
---|