地球表面上的多邊形。多邊形可以是凸面或混凝土,橫跨 180 子午線,但有缺漏的孔洞。它具有以下屬性:
- 大綱
- 外框由順時針或逆時針順序的頂點清單指定。起點和終點不需要相互衝突;如果沒有,多邊形會自動關閉。線段會在雙向的兩個方向 (東或西部) 較短的點之間繪製線段。
- 孔
- 孔是多邊形內未填滿的區域。指定孔洞的方式與外框的方式完全相同。一個孔必須完全包含在外框內。您可以指定多個孔,但不能指定重疊的孔。
- 筆劃寬度
- 線段寬度,以螢幕像素為單位。寬度是常數,而且與相機的縮放等級無關。預設值為 10。
- 筆劃顏色
- 線段顏色採用 ARGB 格式,格式與
Color
相同。預設值為黑色 (0xff000000
)。 - 筆劃接合類型
- 連接類型用於定義在多邊形輪廓所有頂點連接相鄰線段時使用的形狀。如要瞭解支援的彙整類型,請參閱
JointType
。預設值為DEFAULT
。 - 筆劃圖案
- 實線 (預設值,以
null
表示),或一系列PatternItem
物件,沿著多邊形的外框重複顯示。可用的PatternItem
類型:Gap
(由像素間距長度定義)、Dash
(由筆劃寬度和破折號長度 (以像素為單位)) 和Dot
(圓形,位於多邊形外框中央,直徑定義為筆劃寬度 (以像素為單位)。 - 填滿顏色
- 以 ARGB 格式填滿顏色 (與
Color
使用的格式相同)。預設值為透明 (0x00000000
)。如果未正確指定多邊形幾何圖形 (請參閱上文「外框」和「洞」部分),則不會繪製任何填滿。 - Z-Index
- 這個多邊形與其他疊加層之間的繪製順序,包括
Polyline
、Circle
、GroundOverlay
和TileOverlay
,但不含Marker
。系統會將 Z-index 值較大的疊加層繪製在較小的 Z 索引上。如果疊加層的 Z-index 值相同,則疊加順序是隨機決定的。預設值為 0。 - 瀏覽權限
- 指出多邊形是可見還是隱藏,也就是是否在地圖上繪製。隱形的多邊形不會繪製,但是會保留所有其他屬性。預設為
true
(也就是可見)。 - 測地線狀態
- 指出多邊形線段是否應繪製為測地線,而不是麥卡托投影中的直線。測地線是地球表面上兩點之間的最短路徑。我們假設地球是球體 ,並據此建構測地線曲線
- 可點擊性
- 如要處理使用者點選多邊形時觸發的事件,請將這項屬性設為
true
。您隨時可以變更這個值。預設值為false
。如果此屬性設為true
,應用程式就會傳送通知給透過setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
註冊的GoogleMap.OnPolygonClickListener
。 - 標記
- 與多邊形相關聯的
Object
。舉例來說,Object
可能包含多邊形代表的相關資料。這比儲存個別的Map<Polygon, Object>
容易許多。在另一個範例中,您可以將與資料集 ID 對應的String
ID 建立關聯。Google Maps SDK for Android 不會讀取或寫入這個屬性。
此類別中的方法必須在 Android UI 執行緒上呼叫。否則,系統會在執行階段擲回 IllegalStateException
。
範例
GoogleMap map;
// ... get a map.
// Add a triangle in the Gulf of Guinea
Polygon polygon = map.addPolygon(new PolygonOptions()
.add(new LatLng(0, 0), new LatLng(0, 5), new LatLng(3, 5), new LatLng(0, 0))
.strokeColor(Color.RED)
.fillColor(Color.BLUE));
開發人員指南
詳情請參閱「形狀」開發人員指南。
公用方法摘要
布林值 | |
int |
getFillColor()
取得這個多邊形的填滿顏色。
|
List<List<LatLng>> |
getHoles()
傳回這個多邊形的孔快照。
|
字串 |
getId()
取得這個多邊形的 ID。
|
List<LatLng> |
getPoints()
傳回這個多邊形的頂點快照。
|
int |
getStrokeColor()
取得這個多邊形的筆觸顏色。
|
int |
getStrokeJointType()
取得多邊形輪廓的所有頂點使用的筆觸連接類型。
|
List<PatternItem> |
getStrokePattern()
取得這個多邊形輪廓的筆觸圖案。
|
浮點值 |
getStrokeWidth()
取得這個多邊形的筆劃寬度。
|
物件 |
getTag()
取得多邊形的標記。
|
浮點值 |
getZIndex()
取得這個多邊形的 zIndex。
|
int |
hashCode()
|
布林值 |
isClickable()
取得多邊形的可點擊性。
|
布林值 |
isGeodesic()
取得線條的每個路段是否繪製為測地線。
|
布林值 |
isVisible()
取得這個多邊形的能見度。
|
void |
remove()
從地圖中移除多邊形。
|
void |
setClickable(布林值可點擊)
設定多邊形的可點擊性。
|
void |
setFillColor(整數)
設定這個多邊形的填滿顏色。
|
void |
setGeodesic(布林值測地線)
設定是否要繪製線條的每個區段,作為測地線。
|
void | |
void | |
void |
setStrokeColor(色調顏色)
設定這個多邊形的筆觸顏色。
|
void |
setStrokeJointType(int JointType)
設定多邊形輪廓的所有端點的連接類型。
|
void | |
void |
setStrokeWidth(浮點寬度)
設定這個多邊形的筆劃寬度。
|
void |
setTag(物件標記)
設定多邊形的標記。
|
void |
setVisible(可見布林值)
設定這個多邊形的顯示設定。
|
void |
setZIndex(float zIndex)
設定這個多邊形的 zIndex。
|
繼承方法摘要
公用方法
public int getFillColor ()
取得這個多邊形的填滿顏色。
傳回
- ARGB 格式的顏色。
public String getId ()
取得這個多邊形的 ID。此 ID 是地圖上所有多邊形的唯一識別碼。
public List<LatLng> getPoints ()
傳回這個多邊形的頂點快照。傳回的清單為端點清單的副本,因此對多邊形的端點所做的變更不會反映在此清單上,多邊形也不會反映此清單的變更。如要變更多邊形的頂點,請呼叫 setPoints(List)
。
public int getStrokeColor ()
取得這個多邊形的筆觸顏色。
傳回
- ARGB 格式的顏色。
public float getStrokeWidth ()
取得這個多邊形的筆劃寬度。
傳回
- 螢幕像素的寬度。
公開物件 getTag ()
取得多邊形的標記。
傳回
- 如果標記是設為
setTag
時的標記;如果未設定任何標記,則為null
。
public float getZIndex ()
取得這個多邊形的 zIndex。
傳回
- 多邊形的 zIndex。
public int hashCode ()
public boolean isClickable ()
取得多邊形的可點擊性。如果多邊形可以點擊,當使用者點選多邊形時,您的應用程式會收到 GoogleMap.OnPolygonClickListener
通知。事件監聽器透過 setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
註冊。
傳回
- 如果多邊形可供點擊,則傳回
true
;否則會傳回false
。
公開布林值 isGeodesic ()
取得線條的每個路段是否繪製為測地線。
傳回
- 如果每個線段都繪製為測地線,則為
true
;如果每個線段在麥卡托投影上繪製為直線,則為false
。
public boolean isVisible ()
取得這個多邊形的能見度。
傳回
- 這類多邊形顯示設定。
public void remove ()
從地圖中移除多邊形。移除多邊形後,其中所有方法的行為不會定義。
public void setClickable (布林值可點擊)
設定多邊形的可點擊性。如果多邊形可以點擊,當使用者點選多邊形時,您的應用程式會收到 GoogleMap.OnPolygonClickListener
通知。事件監聽器透過 setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
註冊。
參數
可點擊 | 新增多邊形的可點擊屬性設定。 |
---|
public void setFillColor (int color)
設定這個多邊形的填滿顏色。
參數
顏色 | ARGB 格式的顏色 |
---|
public void setGeodesic (boolean geodesic)
設定是否要繪製線條的每個區段,作為測地線。
參數
geodesic | 如果為 true ,則每個線段都會繪製成測地線;如果為 false ,每個線段會在麥卡托投影上繪製成直線。 |
---|
public void setHoles (List<? extends List<LatLng>> 孔)
設定這個多邊形的孔。這個方法會擷取孔,因此對 holes
進行的後續異動不會影響這個多邊形。
參數
洞 | 孔洞清單,其中孔是 LatLng 的清單。 |
---|
public void setPoints (List<LatLng> 點)
設定這個多邊形的點。這個方法會擷取點的副本,因此後續對 points
進行的異動不會影響這個多邊形。
參數
points | LatLng 清單,為多邊形的頂點。 |
---|
public void setStrokeColor (int color)
設定這個多邊形的筆觸顏色。
參數
顏色 | ARGB 格式的顏色 |
---|
public void setStrokeJointType (int JointType)
public void setStrokeWidth (浮點寬度)
設定這個多邊形的筆劃寬度。
參數
width | 以顯示像素為單位的寬度。 |
---|
public void setTag (物件標記)
設定多邊形的標記。
您可以使用這個屬性,將任意的 Object
與這個多邊形建立關聯。舉例來說,Object
可能包含多邊形代表的相關資料。這比儲存個別的 Map<Polygon, Object>
容易。另一個例子是,您可以將與資料集 ID 對應的 String
ID 建立關聯。Google Maps SDK for Android 不會讀取或寫入這個屬性。您必須負責呼叫 setTag(null)
以清除不再需要的標記,以免應用程式的記憶體流失。
參數
標記 | 如果為空值,系統會清除標記。 |
---|
public void setVisible (boolean visible)
設定這個多邊形的顯示設定。未顯示的多邊形時,系統不會繪製多邊形,但會保留所有其他屬性。
參數
顯示 | 設為 true 時,多邊形會顯示;如果為 false ,則不會顯示。 |
---|
public void setZIndex (float zIndex)
設定這個多邊形的 zIndex。ZIndices 較高的多邊形會繪製在索引較低的多邊形上方。
參數
zIndex | 這個多邊形的 zIndex。 |
---|