javascript - 在 OpenLayers 3 中的单个点上设置两种样式

标签 javascript openlayers-3

我是 Openlayer 的新手。如何在一个点上设置两种样式? 例如一个图标和一个正方形在一起

x.setStyle(new ol.style.Style({
    image: new ol.style.RegularShape({
        fill: new ol.style.Fill({color: 'red'}),
        stroke: new ol.style.Stroke({color: 'black', width: 2}),
        points: 4,
        radius: 10,
        angle: Math.PI / 4
    })
}));
x.setStyle(new ol.style.Style({
    image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
        // color: '#8959A8',
        src: '{!! url('/img/sensor_blue.png') !!}',
        scale: 0.3,
        opacity: 0.2
    }))
}));

在此代码中仅设置了最后一个样式,但我想要两个样式在一起。 感谢您的帮助。

最佳答案

您可以将样式对象数组发送到 ol.Feature#setStyle方法。请参阅文档:http://openlayers.org/en/v3.13.1/apidoc/ol.Feature.html#setStyle

x.setStyle([
    new ol.style.Style({
        image: new ol.style.RegularShape({
            fill: new ol.style.Fill({color: 'red'}),
            stroke: new ol.style.Stroke({color: 'black', width: 2}),
            points: 4,
            radius: 10,
            angle: Math.PI / 4
        })
    }),
    new ol.style.Style({
        image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
            // color: '#8959A8',
            src: '{!! url('/img/sensor_blue.png') !!}',
            scale: 0.3,
            opacity: 0.2
        }))
    })
]);

关于javascript - 在 OpenLayers 3 中的单个点上设置两种样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35320360/

相关文章:

javascript - 使 slider 值出现在NoUISlider中

openlayers-3 - 获取ol3中拖放kml文件的样式

openlayers-3 - OpenLayers 3,静态图 block 和 XYZ 坐标

javascript - OL3 ImageCanvas renderFunction 性能不佳

javascript - 需要在asp .net文本框中使用焦点

javascript - AngularJS 输入接受整数和特殊字符

javascript - 修改 OpenLayers 3 中现有图层的值

openlayers - 如何将 OpenLayers 3 与 Proj4js 一起使用

javascript - 如何在 JS/SCSS 中生成 Material 3 调色板?

javascript - typescript for 循环不执行