openlayers多边形改变颜色

时间:2015-07-16 17:57:28

标签: colors polygon openlayers-3

我使用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);    

2 个答案:

答案 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对象中以获得性能。