OpenLayers3-为每个功能分别设置样式

NoRyb

我通过阅读地图的WKT字符串将其添加到地图中:

var feature = wkt.readFeature(entity.WellKnownText);
feature.bxObject = entity;
src.addFeature(feature);

每个功能都有一个bxObject-Property,并且此属性包含“ radius” -Property。

我为图层添加样式,如下所示:

var layer = new ol.layer.Vector({
    source: src,
    style: new ol.style.Style({
        image: new ol.style.Circle({
            radius: 6,
            stroke: new ol.style.Stroke({
                color: 'blue',
                width: 1
            }),
            fill: new ol.style.Fill({ color: [0, 0, 255, 0.1] })
        })
    })
});

我希望样式的radius-Property是动态的。我作为变通办法所做的工作如下:

var layer = new ol.layer.Vector({
    source: src,
    style: function (feature, resolution) {
        return [
            new ol.style.Style({
                image: new ol.style.Circle({
                    radius: feature.bxObject.radius || 6,
                    stroke: new ol.style.Stroke({
                        color: 'blue',
                        width: 1
                    }),
                    fill: new ol.style.Fill({ color: [0, 0, 255, 0.1] })
                })
            })
        ];
    }
});

但这为每个功能创建了一种新样式...我可能会绘制数百个功能,并且我什至拥有主观意见,即它会使所有功能变慢。这是真的吗?

我发现了这个stackoverflow帖子但是我没有运气试图用“ $ {......”“进行插值。我猜这是一个openLayers 2功能:

var layer = new ol.layer.Vector({
    source: src,
    style: new ol.style.Style({
        image: new ol.style.Circle({
            radius: "${bxObject.radius}",
            stroke: new ol.style.Stroke({
                color: 'blue',
                width: 1
            }),
            fill: new ol.style.Fill({ color: [0, 0, 255, 0.1] })
        })
    })
});
Bartvde

是的,这确实是这样,但是您应该保留样式缓存并在可能的情况下重新使用。例如,请参见:http : //openlayers.org/en/v3.10.1/examples/kml-earthquakes.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OpenLayers3中功能的动画

来自分类Dev

OpenLayers3 / GeoServer的轮廓功能

来自分类Dev

如何区分Openlayers3中的功能

来自分类Dev

如何为openlayers3中的每个功能设置最大分辨率

来自分类Dev

如何在openlayers3中使用Geojson的功能?

来自分类Dev

知道何时加载KML文件和添加功能(OpenLayers3)?

来自分类Dev

如何缩放到Openlayers3(v3.17.1)地图的任何功能

来自分类Dev

如何缩放到Openlayers3(v3.17.1)地图的任何功能

来自分类Dev

OpenLayers3更改图层源URL(或替换从另一个URL加载的功能)

来自分类Dev

openlayers3试图与GeoJSON交互地添加功能,但是不管我放什么,我总能在非洲SE的某个地方获得一分

来自分类Dev

Openlayers3从元素获取地图

来自分类Dev

OpenLayers3在圆上添加文本

来自分类Dev

Openlayers3的内部点是什么

来自分类Dev

如何用OpenLayers3画单线?

来自分类Dev

OpenLayers3 GeoJSON解析错误的参数?

来自分类Dev

OpenLayers3不显示图像

来自分类Dev

在OpenLayers3中写文字

来自分类Dev

OpenLayers3覆盖导致TypeErrors

来自分类Dev

绘制形状时为 OpenLayers 3 光标设置样式

来自分类Dev

设置样式缩放级别openlayers 3

来自分类Dev

OpenLayers 3:缩放/平移后未为未选择的功能调用样式功能

来自分类Dev

openlayers3如何始终启用徒手绘制

来自分类Dev

如何从geojson openlayers3获取图像源

来自分类Dev

openlayers3检查兴趣点是否在边界框中

来自分类Dev

从OpenLayers3中的图层组到达图层名称属性

来自分类Dev

如何在Openlayers3中编辑所选文本?

来自分类Dev

选择事件以在openlayers3中获取坐标

来自分类Dev

在Openlayers3中突出显示lineString或点

来自分类Dev

无法在OpenLayers3中使用相对URL

Related 相关文章

热门标签

归档