我使用OL3和javascript在地图上绘制多个多边形。每个多边形来自WKT格式的数据库,如" POLIGON((39 -9,......))"。我可以在地图上绘制它们但我想改变每种颜色的填充颜色,但不知道该怎么做。 这是我的代码:
//WKTpoly -> this is my array of POLYLINES
var format = new ol.format.WKT();
var vectorArea = new ol.source.Vector({});
for (var i=0;i<WKTpoly.length;i++) {
var featureGeom = format.readFeature(WKTpoly[i]);
featureGeom.getGeometry().transform('EPSG:4326', 'EPSG:3857');
vectorArea.addFeature(featureGeom);
}
VectorMap = new ol.layer.Vector({
name: map,
source: vectorArea,
});
map.addLayer(VectorMap);
答案 0 :(得分:3)
好吧,在LessThanJake响应和一些谷歌搜索后,我找到了解决方案,我必须创建一个样式并在addFeature()之前调用setStyle():
(...)
var style = new ol.style.Style({
fill: new ol.style.Fill({
color: FillColor,
weight: 1
}),
stroke: new ol.style.Stroke({
color: LineColor,
width: 1
})
});
featureGeom.setStyle(style);
(...)
感谢LessThanJake指出正确的方向。
答案 1 :(得分:0)
或者您可以设置图层以将函数用作样式
函数签名是
var makeStyle = function(feature,resolution) {
return [styles];
};
您可以使用它来按功能和分辨率(缩放级别)管理样式。 在每个要素渲染时调用该函数时,您需要将样式缓存在js对象中以获得性能。