Polygon
继承Layer。
用来在地图上绘制多边形。
示例
//使用坐标数组创建一个红色的多边形
//初始化坐标数组
var latlngs = [
[39.9,116.356484],
[39.8,116.400957],
[39.8,116.461915],
[39.9,116.484237],
[39.9,116.356484]
]
;
//创建面添加到地图上
var polygon = W.polygon(latlngs, {color: 'red'}).addTo(map);
// 缩放到合适的级别
map.fitBounds(polygon.getBounds());
//可以用多维数组。第一个数组表示多边形的外边框,剩下的数组表示边框内部的洞。
var latlngs = [
[[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring
[[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole
];
//还可以使用多维数组表示MultiPolygon 形状。
var latlngs = [
[ // 第1个 polygon
[[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring
[[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole
],
[ // 第2个 polygon
[[41, -111.03],[45, -111.04],[45, -104.05],[41, -104.05]]
]
];
构造函数
工厂 | 描述 |
---|---|
W.polygon(<LatLng[]> latlngs, <Polygon options> options?) | 使用坐标数组创建多边形 |
构造选项
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
stroke | Boolean | true | 是否绘制边框 |
color | String | '#3388ff' | 边框颜色 |
weight | Number | 3 | 边框粗细,单位是像素 |
opacity | Number | 1.0 | 边框透明度 |
lineCap | String | 'round' | 两端形状 请参照 |
lineJoin | String | 'round' | 拐角处形状 请参照 |
fill | Boolean | 是否有填充效果 | |
fillColor | String | * | 填充颜色,默认和color相同 |
fillOpacity | Number | 0.2 | 填充透明度 |
fillRule | String | 'evenodd' | 填充规则请参照 |
className | String | null | 自定义样式 |
smoothFactor | Number | 1.0 | 控制不同显示级别稠稀程度。越大表示更好的性能和更加平滑。越小则越精确 |
方法
方法 | 返回值 | 描述 |
---|---|---|
getLatLngs() | LatLng[] | 获取坐标数组 |
setLatLngs(<LatLng[]> latlngs) | this | 设置坐标数组 |
isEmpty() | Boolean | 如果没有坐标,则返回true |
getCenter() | LatLng | 获取中心点 |
getBounds() | LatLngBounds | 获取边界 |
addLatLng(<LatLng> latlng) | this | 添加坐标点 |
enableEdit() | this | 启用编辑 |
disableEdit() | this | 禁止编辑 |
toGeoJSON() | Object | 返回GeoJSON格式, ( 可能是Polygon Feature或 MultiPolygon Feature) |