多邊形
多邊形表示由閉合路徑(或環(huán)路)封閉的區(qū)域,由一系列坐標(biāo)定義。Polygon
對象與 Polyline
對象類
似,因?yàn)樗鼈兌及幌盗杏行虻淖鴺?biāo)。多邊形使用描邊和填充區(qū)繪制。您可以為多邊形邊緣(描邊)定義自定
義顏色、粗細(xì)和不透明度,以及為封閉區(qū)域(填充區(qū))定義自定義顏色和不透明度。顏色應(yīng)以十六進(jìn)制 HTML 格
式表示。不支持顏色名稱。
Polygon
對象可描述復(fù)雜形狀,其中包括:
由單個(gè)多邊形定義的多個(gè)不連續(xù)區(qū)域
帶孔的區(qū)域
一個(gè)或多個(gè)區(qū)域的交集
如需定義復(fù)雜形狀,您需要使用包含多個(gè)路徑的多邊形。
添加多邊形
由于多邊形區(qū)域可能包括幾個(gè)不同路徑,因此 Polygon
對象的 paths
屬性指定的是數(shù)組的數(shù)組,每個(gè)數(shù)組
的類型均為 MVCArray
。每個(gè)數(shù)組定義的都是不同的有序 LatLng
坐標(biāo)序列。
對于只包括一個(gè)路徑的簡單多邊形,您可以利用單個(gè) LatLng
坐標(biāo)數(shù)組構(gòu)建 Polygon
。構(gòu)建時(shí),Google Maps
JavaScript API 將在于 paths
屬性內(nèi)存儲該簡單數(shù)組時(shí)將其轉(zhuǎn)換成數(shù)組的數(shù)組。API 為包括一個(gè)路徑的多
邊形提供了一個(gè)簡單的 getPath()
方法。
多邊形的 editable
屬性指定用戶是否可以編輯形狀。請參閱下文的用戶可編輯形狀。同理,您也可以通過設(shè)
置draggable
屬性來允許用戶拖動形狀。
以下代碼將顯示一個(gè)多邊形:
var pathLatLng=[{lat:33,lng:104},{lat:34,lng:114},{lat:28,lng:98}]
var testPath = new google.maps.Polygon({
path: pathLatLng,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
testPath.setMap(map);
多邊形自動完成
上例中的 Polygon
包含三組 LatLng
坐標(biāo),但請注意第一組坐標(biāo)和最后一組坐標(biāo)定義的位置不同。但在實(shí)
踐中,由于多邊形定義的是封閉區(qū)域,因此您無需定指定最后一組坐標(biāo)。Google Maps JavaScript API 將通過
繪制一筆,將任何給定路徑的最后一個(gè)位置連回第一個(gè)位置,自動完成多邊形。
移除多邊形
如需移除地圖中的多邊形,請調(diào)用 setMap()
方法,并傳遞 null
作為其自變量。在下例
中,bermudaTriangle
是一個(gè)多邊形對象:
testPath.setMap(null);
請注意,以上方法不會刪除多邊形,而只是從地圖中移除多邊形。如果您實(shí)際上是想刪除多邊形,則應(yīng)先將其從
地圖中移除,然后將多邊形本身設(shè)置為 null
。