使用 canvaspattern 设置几何图形的笔画样式
Styling the stroke of a geometry with a canvaspattern
我想用这样的方式设置多边形笔划的样式:
png 格式的重复图像如下所示:
我试过:
1) 创建图像的CanvasPattern(这是png格式的符号)。
2) 将图案分配给ol.style.Stroke的颜色。
第 1 步进展顺利。
但是第 2 步不起作用,因为 ol.style.Stroke 的颜色属性应该是 ol.Color 类型,尽管 Openlayers 的文档中 ol.style.Stroke 的颜色也可以是 ol.Color喜欢,这意味着也应该允许使用 CanvasPattern。
也许有人知道另一种方法来完成同样的事情?
顺便说一下,我可以通过将创建的符号的 CanvasPattern 分配给 ol.style.Fill 的颜色来填充多边形。但是,通过这种方式,我用符号填充了多边形;我只希望笔画有一个图案。 "strange" 这里的意思是,根据文档,ol.style.Fill 的属性颜色与 ol.style.Stoke 的类型相同。无论如何,我们将不胜感激。
图案也可以用作描边颜色。
// Create pattern on image load
var image = new Image();
image.onload = function() {
var ctx = document.createElement('canvas').getContext("2d");
var pattern = ctx.createPattern(image,"repeat");
// create style with the pattern
var style = new ol.style.Style({
stroke: new ol.style.Stroke({
width: 8,
color: pattern
})
});
// use it on vector layer
vector.setStyle(style);
};
// Load image
image.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGFBMVEUAAACPjwCmpgCbmwCCggD+/gCXlwD//wDWAMTYAAAAB3RSTlOAsr64rP62hR4cWgAAADpJREFUCNetzTEOACAIA8ACYv//YwVJxF0mLm0AJAUxtjeCPq6IkvKwNYM9c/ko1AdLTLxNtEyZbFcWKysC1htDphIAAAAASUVORK5CYII='
我想用这样的方式设置多边形笔划的样式:
png 格式的重复图像如下所示:
我试过:
1) 创建图像的CanvasPattern(这是png格式的符号)。
2) 将图案分配给ol.style.Stroke的颜色。
第 1 步进展顺利。
但是第 2 步不起作用,因为 ol.style.Stroke 的颜色属性应该是 ol.Color 类型,尽管 Openlayers 的文档中 ol.style.Stroke 的颜色也可以是 ol.Color喜欢,这意味着也应该允许使用 CanvasPattern。
也许有人知道另一种方法来完成同样的事情?
顺便说一下,我可以通过将创建的符号的 CanvasPattern 分配给 ol.style.Fill 的颜色来填充多边形。但是,通过这种方式,我用符号填充了多边形;我只希望笔画有一个图案。 "strange" 这里的意思是,根据文档,ol.style.Fill 的属性颜色与 ol.style.Stoke 的类型相同。无论如何,我们将不胜感激。
图案也可以用作描边颜色。
// Create pattern on image load
var image = new Image();
image.onload = function() {
var ctx = document.createElement('canvas').getContext("2d");
var pattern = ctx.createPattern(image,"repeat");
// create style with the pattern
var style = new ol.style.Style({
stroke: new ol.style.Stroke({
width: 8,
color: pattern
})
});
// use it on vector layer
vector.setStyle(style);
};
// Load image
image.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGFBMVEUAAACPjwCmpgCbmwCCggD+/gCXlwD//wDWAMTYAAAAB3RSTlOAsr64rP62hR4cWgAAADpJREFUCNetzTEOACAIA8ACYv//YwVJxF0mLm0AJAUxtjeCPq6IkvKwNYM9c/ko1AdLTLxNtEyZbFcWKysC1htDphIAAAAASUVORK5CYII='