多边形
多边形表示由闭合路径(或环路)封闭的区域,由一系列坐标定义。Polygon
对象与 Polyline
对象类
似,因为它们都包含一系列有序的坐标。多边形使用描边和填充区绘制。您可以为多边形边缘(描边)定义自定
义颜色、粗细和不透明度,以及为封闭区域(填充区)定义自定义颜色和不透明度。颜色应以十六进制 HTML 格
式表示。不支持颜色名称。
Polygon
对象可描述复杂形状,其中包括:
由单个多边形定义的多个不连续区域
带孔的区域
一个或多个区域的交集
如需定义复杂形状,您需要使用包含多个路径的多边形。
添加多边形
由于多边形区域可能包括几个不同路径,因此 Polygon
对象的 paths
属性指定的是数组的数组,每个数组
的类型均为 MVCArray
。每个数组定义的都是不同的有序 LatLng
坐标序列。
对于只包括一个路径的简单多边形,您可以利用单个 LatLng
坐标数组构建 Polygon
。构建时,Google Maps
JavaScript API 将在于 paths
属性内存储该简单数组时将其转换成数组的数组。API 为包括一个路径的多
边形提供了一个简单的 getPath()
方法。
多边形的 editable
属性指定用户是否可以编辑形状。请参阅下文的用户可编辑形状。同理,您也可以通过设
置draggable
属性来允许用户拖动形状。
以下代码将显示一个多边形:
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
坐标,但请注意第一组坐标和最后一组坐标定义的位置不同。但在实
践中,由于多边形定义的是封闭区域,因此您无需定指定最后一组坐标。Google Maps JavaScript API 将通过
绘制一笔,将任何给定路径的最后一个位置连回第一个位置,自动完成多边形。
移除多边形
如需移除地图中的多边形,请调用 setMap()
方法,并传递 null
作为其自变量。在下例
中,bermudaTriangle
是一个多边形对象:
testPath.setMap(null);
请注意,以上方法不会删除多边形,而只是从地图中移除多边形。如果您实际上是想删除多边形,则应先将其从
地图中移除,然后将多边形本身设置为 null
。