放置在地圖表面特定位置的圖示。標記圖示的方向是根據裝置螢幕方向 (而非地圖表面) 繪製,也就是說,標記的方向不一定會因地圖旋轉、傾斜或縮放等改變而改變。
標記包含下列屬性:
- Alpha 版
- 可設定標記的不透明度。預設值為 1.0。
- 錨定廣告
- 圖片上用於放置標記
LatLng
位置的點,預設為圖片左側和底部的 50%。 - 位置
- 地圖上標記位置的
LatLng
值。您隨時可以變更這個值,藉此移動標記。 - 標題
- 使用者輕觸標記時,資訊視窗中顯示的文字字串。您隨時可以變更這個值。
- 程式碼片段
- 顯示在標題下的附加文字。您隨時可以變更這個值。
- 圖示
- 針對標記顯示的點陣圖。如果不設定圖示,系統會顯示預設圖示。您可以使用
defaultMarker(float)
指定預設圖示的額外顏色。 - 拖曳狀態
- 如要允許使用者拖曳標記,請將這個屬性設為
true
。您隨時可以變更這個值。預設值為false
。 - 瀏覽權限
- 根據預設,標記會顯示。如要將標記設為隱藏,請將這個屬性設為
false
。您隨時可以變更這個值。 - 平面或看板廣告
- 如果標記是平放在地圖上,當攝影機旋轉和傾斜時,標記仍會卡住在地圖上,但其尺寸仍與相機縮放相同,但與
GroundOverlay
不同。如果標記是看板,則繪製時一律會朝向攝影機,並且隨著攝影機旋轉或傾斜。預設值為看板 (false
) - 輪替
- 標記在標記錨點上的順時針旋轉角度。旋轉軸與標記垂直。旋轉 0 對應標記的預設位置。如果標記平放在地圖上,預設方向為朝北對齊,且旋轉時標記始終在地圖上保持平坦。標記為看板時,預設方向為朝上,且旋轉時標記始終面對攝影機。預設值為 0。
- zIndex
- 標記的繪製順序。標記是依照 zIndex 順序繪製,並在頂端繪製最高 zIndex 標記。設定每個標記的 zIndex 屬性,即可控制使用者最有可能達成的輕觸目標。預設值為 0。
- 標記
- 與標記相關聯的
Object
。舉例來說,Object
可包含標記代表內容的資料。這比儲存個別的Map<Marker, Object>
容易許多。在另一個範例中,您可以將與資料集 ID 對應的String
ID 建立關聯。Google Maps SDK for Android 不會讀取或寫入這個屬性。
此類別中的方法必須在 Android UI 執行緒上呼叫。否則,系統會在執行階段擲回 IllegalStateException
。
範例
GoogleMap map = ... // get a map.
// Add a marker at San Francisco.
Marker marker = map.addMarker(new MarkerOptions()
.position(new LatLng(37.7750, 122.4183))
.title("San Francisco")
.snippet("Population: 776733"));
開發人員指南
詳情請參閱「標記」開發人員指南。
巢狀類別摘要
@interface | Marker.CollisionBehavior | 指出處理與其他標記或基本地圖標籤衝突時,標記的處理方式。 |
公用方法摘要
布林值 | |
浮點值 |
getAlpha()
取得標記的 Alpha 值。
|
字串 |
getId()
取得此標記的 ID。
|
LatLng |
getPosition()
傳回標記的位置。
|
浮點值 |
getRotation()
取得標記的旋轉角度。
|
字串 |
getSnippet()
取得標記的程式碼片段。
|
物件 |
getTag()
取得標記的標記。
|
字串 |
getTitle()
取得標記的標題。
|
浮點值 |
getZIndex()
傳回標記的 ZIndex。
|
int |
hashCode()
|
void |
hideInfoWindow()
如果資訊視窗顯示在此標記中,會隱藏資訊視窗。
|
布林值 |
isDraggable()
取得標記的可拖曳性。
|
布林值 |
isFlat()
取得標記的平坦設定。
|
布林值 |
isInfoWindowShown()
傳回目前是否已在此標記上方顯示資訊視窗。
|
布林值 |
isVisible()
取得這個標記的顯示設定。
|
void |
remove()
從地圖中移除這個標記。
|
void |
setAlpha(float alpha)
設定標記的 alpha (不透明度)。
|
void |
setAnchor(float anchorU、float anchorV)
設定標記的錨點。
|
void |
setDraggable(布林值可拖曳)
設定標記的可拖曳性。
|
void |
setFlat(布林值平坦)
設定這個標記應平放於地圖
true ,還是面向攝影機 false 的看板。 |
void | |
void |
setInfoWindowAnchor(float anchorU、float anchorV)
在標記圖片中指定顯示資訊視窗時,要固定在哪個點。
|
void | |
void |
setRotation(浮點旋轉)
設定標記的錨點,以順時針角度設定標記的旋轉角度。
|
void |
setSnippet(字串程式碼片段)
設定標記的程式碼片段。
|
void |
setTag(物件標記)
設定標記的標記。
|
void |
setTitle(字串標題)
設定標記的標題。
|
void |
setVisible(可見布林值)
設定此標記的顯示設定。
|
void |
setZIndex(float zIndex)
設定標記的 zIndex。
|
void |
showInfoWindow()
在地圖上顯示這個標記的資訊視窗 (如果這個標記為
isVisible() )。 |
繼承方法摘要
公用方法
public float getAlpha ()
取得標記的 Alpha 值。
傳回
- 範圍 [0, 1] 範圍內的標記 Alpha 值。
public String getId ()
取得此標記的 ID。此 ID 是地圖上所有標記的專屬 ID。
傳回
- 標記的 ID。
public float getRotation ()
取得標記的旋轉角度。
傳回
- 標記從預設位置順時針旋轉角度。
公開 字串 getSnippet ()
取得標記的程式碼片段。
傳回
- 包含標記程式碼片段的字串。
公開物件 getTag ()
取得標記的標記。
傳回
- 如果標記是設為
setTag
時的標記;如果未設定任何標記,則為null
。
公開字串 getTitle ()
取得標記的標題。
傳回
- 包含標記標題的字串。
public float getZIndex ()
傳回標記的 ZIndex。
傳回
- 標記的 zIndex。
public int hashCode ()
public void hideInfoWindow ()
如果資訊視窗顯示在此標記中,則會隱藏資訊視窗。
如果看不到這個標記,此方法就不會生效。
public 布林值 isDraggable ()
取得標記的可拖曳性。如果是可拖曳的標記,使用者只要長按標記即可移動標記。
傳回
- 如果標記可拖曳,則為
true
;否則會傳回false
。
公開布林值 isFlat ()
取得標記的平坦設定。
傳回
- 如果標記平放於地圖,則為
true
;如果標記應面向攝影機,則為false
。
public 布林值 isInfoWindowShown ()
傳回目前是否已在此標記上方顯示資訊視窗。但這不會考量資訊視窗是否實際顯示在畫面上。
public boolean isVisible ()
取得這個標記的顯示設定。請注意,這不代表標記是否位於螢幕的可視區域內。用於表示如果標記包含在螢幕可視區域內,是否可以繪製。
傳回
- 此標記的瀏覽權限。
public void remove ()
從地圖中移除這個標記。移除標記後,標記所有方法的行為將不會定義。
public void setAlpha (float alpha)
設定標記的 alpha (不透明度)。這個值的範圍介於 0 到 1 之間,其中 0 代表標記完全透明,1 則代表標記完全不透明。
參數
Alpha 版 |
---|
public void setAnchor (float anchorU, float anchorV)
設定標記的錨點。
錨點會指定圖示圖片中的點,該點會固定在地球表面上的標記位置。
錨點會在連續空間 [0.0, 1.0] x [0.0, 1.0] 中指定,其中 (0, 0) 是圖片的左上角,(1, 1) 則是右下角。W x H 圖片中的錨點是 (W + 1) x (H + 1) 格線中最接近的獨立格線點,可透過縮放再四捨五入取得。舉例來說,在一張 4 x 2 的圖片中,錨點 (0.7, 0.6) 會解析為格線的位置 (3, 1)。
*-----+-----+-----+-----* | | | | | | | | | | +-----+-----+-----+-----+ | | | X | | (U, V) = (0.7, 0.6) | | | | | *-----+-----+-----+-----* *-----+-----+-----+-----* | | | | | | | | | | +-----+-----+-----X-----+ (X, Y) = (3, 1) | | | | | | | | | | *-----+-----+-----+-----*
參數
anchorU | 錨點的 u 座標,以圖片寬度的比例 (範圍 [0, 1] 範圍內) 表示。 |
---|---|
anchorV | 錨定標記的 v 座標,以圖片高度的比例 (範圍 [0, 1] 範圍內) 表示。 |
public void setDraggable (boolean draggable)
設定標記的可拖曳性。如果是可拖曳的標記,使用者只要長按標記即可移動標記。
參數
可拖曳 |
---|
public void setFlat (布林值平面)
設定這個標記應平放於地圖 true
,還是面向攝影機 false
的看板。
參數
平盤 |
---|
public void setInfoWindowAnchor (float anchorU, float anchorV)
在標記圖片中指定顯示資訊視窗時,要固定在哪個點。必須在與錨點相同的座標系統中指定。詳情請參閱 setAnchor(float, float)
。預設值為圖片的上方中間。
參數
anchorU | 資訊視窗錨點的 u 座標,以圖片寬度的比例 (在 [0, 1] 範圍內) 為準。 |
---|---|
anchorV | 資訊視窗錨點的 v 座標,以圖片高度的比例 (在 [0, 1] 範圍內) 為準。 |
public void setRotation (浮點旋轉)
設定標記的錨點,以順時針角度設定標記的旋轉角度。旋轉軸與標記垂直。旋轉 0 對應標記的預設位置。
參數
旋轉 |
---|
public void setSnippet (字串程式碼片段)
設定標記的程式碼片段。
參數
摘要 | 如果為空值,系統會清除程式碼片段。 |
---|
public void setTag (物件標記)
設定標記的標記。
您可以使用這個屬性,將任意的 Object
與此標記建立關聯。舉例來說,Object
可包含標記代表內容的資料。這比儲存個別的 Map<Marker, Object>
容易。另一個例子是,您可以將與資料集 ID 對應的 String
ID 建立關聯。Google Maps SDK for Android 不會讀取或寫入這個屬性。您必須負責呼叫 setTag(null)
以清除不再需要的標記,以免應用程式的記憶體流失。
參數
標記 | 如果為空值,系統會清除標記。 |
---|
public void setTitle (字串標題)
設定標記的標題。
參數
title | 如果為空值,則會清除標題。 |
---|
public void setVisible (boolean visible)
設定此標記的顯示設定。如果設為 false
,且目前為這個標記顯示資訊視窗,系統會隱藏資訊視窗。
參數
顯示 |
---|
public void setZIndex (float zIndex)
設定標記的 zIndex。
參數
zIndex |
---|
public void showInfoWindow ()
在地圖上顯示這個標記的資訊視窗 (如果這個標記為 isVisible()
)。
擲回
IllegalArgumentException | 如果 marker 不在這個地圖上
|
---|