Openlayers 如何将不同的图标应用到克隆的功能中

Openlayers 如何将不同的图标应用到克隆的功能中,openlayers,openlayers-6,Openlayers,Openlayers 6,我实现了一个功能,它绘制了一个图标,而不是一个常规形状,如下图所示: 我的目的是在该功能(以及许多其他功能)旁边添加一个图标警报。因此,为了实现这一点,我正在克隆该功能,并尝试在创建的样式中应用不同的图像,如下面的代码: export const setIconEffect = (feature: Feature, event: any) => { const vectorContext = getVectorContext(event); // clone the f

我实现了一个功能,它绘制了一个图标,而不是一个常规形状,如下图所示:

我的目的是在该功能(以及许多其他功能)旁边添加一个图标警报。因此,为了实现这一点,我正在克隆该功能,并尝试在创建的样式中应用不同的图像,如下面的代码:

export const setIconEffect = (feature: Feature, event: any) => {
    const vectorContext = getVectorContext(event);

    // clone the feature geometry
    const flashGeom = feature.getGeometry().clone();

    // creates a new style to be applied into this cloned feature
    const style = new Style({
        image: new Icon({
            src: 'assets/images/mapElements/warning-icon.png',
            scale: 0.1,
            imgSize: toSize(500),
            anchorOrigin: IconOrigin.BOTTOM_RIGHT,
            anchor: [1.8, 0.05],
        }),
    });
    // set it into the cloned geometry
    vectorContext.setStyle(style);
    vectorContext.drawGeometry(flashGeom);
};
问题是,当我尝试应用不同的
src
时,它不起作用,但是,如果我使用相同的
src
,它确实起作用

应用不同的
src
只会像往常一样显示标记。 应用相同的
src
可以正确地绘制图标,但作为复制(这不是目的)。示例如下:


定义样式后,我们需要通过以下操作强制加载图像:

style.getImage().load();

定义样式后,我们需要通过以下操作强制加载图像:

style.getImage().load();

仅将样式数组应用于原始要素(包含主图标和派生图标)可能更容易。仅将样式数组应用于原始要素(包含主图标和派生图标)可能更容易