openlayers添加多面,携带带信息和修改样式
时间: 2024-04-06 14:33:42 浏览: 65
openlayers 扩展功能
4星 · 用户满意度95%
要在OpenLayers中添加多边形并携带信息,可以使用以下步骤:
1. 创建多边形的坐标数组,例如:
```javascript
var polygonCoords = [
[
[10, 10],
[20, 10],
[20, 20],
[10, 20],
[10, 10]
],
[
[15, 15],
[18, 15],
[18, 18],
[15, 18],
[15, 15]
]
];
```
这个数组包含两个多边形,每个多边形由一组坐标表示。
2. 创建一个要素(Feature)对象,将多边形坐标数组作为几何体(Geometry)传递给它,例如:
```javascript
var polygonFeature = new ol.Feature({
geometry: new ol.geom.Polygon(polygonCoords),
info: '这是一个多边形'
});
```
在这个例子中,我们将一个名为“info”的属性添加到要素中,该属性包含一些信息。
3. 创建一个矢量图层(Vector Layer),将要素添加到该图层中,例如:
```javascript
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
features: [polygonFeature]
}),
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'red',
width: 2
}),
fill: new ol.style.Fill({
color: 'rgba(255, 0, 0, 0.1)'
})
})
});
```
在这个例子中,我们为图层设置了一个样式,用红色线条和半透明红色填充色绘制多边形。
4. 将矢量图层添加到地图中,例如:
```javascript
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
vectorLayer
],
view: new ol.View({
center: [0, 0],
zoom: 2
})
});
```
这个例子中,我们创建了一个地图,并将矢量图层添加到了地图中。
现在,您可以通过单击多边形来访问要素的信息,并且您可以通过修改图层的样式来更改多边形的外观。例如,您可以使用以下代码将多边形的填充色更改为蓝色:
```javascript
vectorLayer.setStyle(new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'red',
width: 2
}),
fill: new ol.style.Fill({
color: 'rgba(0, 0, 255, 0.1)'
})
}));
```
阅读全文