自定义矢量图层ol3的样式

时间:2015-06-11 15:24:22

标签: openlayers-3

我使用geojson文件来构建添加到地图的图层。我想要的是自定义图层多边形的样式,以便设置阴影多边形,例如我们可以使用mapserver符号。用ol3可以做到这一点吗?我试图创建一个图像并使用它,但它只适用于点几何。谢谢您的帮助。 问候。

2 个答案:

答案 0 :(得分:2)

OpenLayers 3中尚未支持多边形的填充模式,另请参阅http://www.sqlite.org/faq.html#q1

答案 1 :(得分:0)

现在有可能。 ol.style.Style对象接受CanvasRenderingContext2D实例,您可以在其中将图像模式应用于多边形。

示例代码段

var geojsonObject = 'someGeoJSON' 
var source = new ol.source.Vector({
 features: (new ol.format.GeoJSON()).readFeatures(geojsonObject)
});

var layer = new ol.layer.Vector({
source: source
});

var cnv = document.createElement('canvas');
var ctx = cnv.getContext('2d');
var img = new Image();
img.src = 'https://mdn.mozillademos.org/files/222/Canvas_createpattern.png';
img.onload = function() {
  var pattern = ctx.createPattern(img, 'repeat');
  layer.setStyle(new ol.style.Style({
    fill: new ol.style.Fill({
      color: pattern
   })
 }));
};

这里可以看到一个完整的例子:jsfiddle