標記

公開最終類別 Marker 擴充物件

放置在地圖表面特定位置的圖示。標記圖示的方向是根據裝置螢幕方向 (而非地圖表面) 繪製,也就是說,標記的方向不一定會因地圖旋轉、傾斜或縮放等改變而改變。

標記包含下列屬性:

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 指出處理與其他標記或基本地圖標籤衝突時,標記的處理方式。

公用方法摘要

布林值
等於(其他物件)
測試此 Marker 是否等於另一個值。
浮點值
getAlpha()
取得標記的 Alpha 值。
字串
getId()
取得此標記的 ID。
LatLng
getPosition()
傳回標記的位置。
浮點值
getRotation()
取得標記的旋轉角度。
字串
getSnippet()
取得標記的程式碼片段。
物件
getTag()
取得標記的標記。
字串
getTitle()
取得標記的標題。
浮點值
getZIndex()
傳回標記的 ZIndex。
int
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
setIcon(BitmapDescriptor iconDescriptor)
設定標記的圖示。
void
setInfoWindowAnchor(float anchorU、float anchorV)
在標記圖片中指定顯示資訊視窗時,要固定在哪個點。
void
setPosition(LatLng latlng)
設定標記的位置。
void
setRotation(浮點旋轉)
設定標記的錨點,以順時針角度設定標記的旋轉角度。
void
setSnippet(字串程式碼片段)
設定標記的程式碼片段。
void
setTag(物件標記)
設定標記的標記。
void
setTitle(字串標題)
設定標記的標題。
void
setVisible(可見布林值)
設定此標記的顯示設定。
void
setZIndex(float zIndex)
設定標記的 zIndex。
void
showInfoWindow()
在地圖上顯示這個標記的資訊視窗 (如果這個標記為 isVisible())。

繼承方法摘要

公用方法

公開布林值 等於 (物件其他)

測試此 Marker 是否等於另一個值。

參數
其他 Object
傳回
  • 如果兩個物件相同,則傳回 true,即 == 其他物件。

public float getAlpha ()

取得標記的 Alpha 值。

傳回
  • 範圍 [0, 1] 範圍內的標記 Alpha 值。

public String getId ()

取得此標記的 ID。此 ID 是地圖上所有標記的專屬 ID。

傳回
  • 標記的 ID。

public LatLng getPosition ()

傳回標記的位置。

傳回
  • 指定標記目前位置的 LatLng 物件。

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 setIcon (BitmapDescriptor iconDescriptor)

設定標記的圖示。

參數
iconDescriptor 如果為空值,則會使用預設標記。

public void setInfoWindowAnchor (float anchorU, float anchorV)

在標記圖片中指定顯示資訊視窗時,要固定在哪個點。必須在與錨點相同的座標系統中指定。詳情請參閱 setAnchor(float, float)。預設值為圖片的上方中間。

參數
anchorU 資訊視窗錨點的 u 座標,以圖片寬度的比例 (在 [0, 1] 範圍內) 為準。
anchorV 資訊視窗錨點的 v 座標,以圖片高度的比例 (在 [0, 1] 範圍內) 為準。

public void setPosition (LatLng latlng)

設定標記的位置。

參數
經緯度

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 不在這個地圖上