openlayers3:vectorContext.setStyle中的ol.style.Icon无法正常工作?

时间:2017-01-17 03:55:07

标签: openlayers-3

此示例显示如何使用postcompose和vectorContext为要素设置动画:

http://openlayers.org/en/latest/examples/feature-animation.html

我尝试替换这些行中的样式:

var style = new ol.style.Style({
    image: new ol.style.Circle({
        radius: radius,
        snapToPixel: false,
        stroke: new ol.style.Stroke({
            color: 'rgba(255, 0, 0, ' + opacity + ')',
            width: 0.25 + opacity
        })
    })
});

vectorContext.setStyle(style);

当我将样式替换为img样式时,如下所示:

var style = new ol.style.Style({
    image: new ol.style.Icon(({
        src: 'https://openlayers.org/en/v3.20.1/examples/data/icon.png'
    }))
});

它不起作用并抛出错误:无法读取null

的属性“0”

这是一个错误吗?或者我如何使用img样式呢?

1 个答案:

答案 0 :(得分:0)

如果要添加图像而不是普通Point,则无需将样式更改为动画功能。

您可以通过以下方式将所需的样式添加到矢量图层中:

var vector = new ol.layer.Vector({
    source: source,
    style: new ol.style.Style({
        image: new ol.style.Icon(({
            src: 'https://openlayers.org/en/v3.20.1/examples/data/icon.png'
        }))
    })
});

我为vectorContext编辑了https://resharper-support.jetbrains.com/hc/en-us/articles/207241675-Offline-plug-in-installation-process,没有任何样式。如果你想获得一些动画,比如在Openlayers Site的例子中,你只需要通过在jsfiddle代码中取消注释它来添加旧的样式。