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