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