gpt4 book ai didi

openlayers-3 - Openlayers - 不同几何类型的多种样式

转载 作者:行者123 更新时间:2023-12-05 08:56:25 31 4
gpt4 key购买 nike

所以我使用了一个单个矢量图层,我把我所有的:

  • 积分
  • 折线
  • 多边形

这是我的代码:

var source = new ol.source.Vector({ wrapX: false });
var vector = new ol.layer.Vector({
source: source,
style: // styleFunction or style or [style] don't know...
});

而且我想根据他们的类型来设置特征的样式。我在 documentation 中找到了这个但不知道如何使用它:

... A separate editing style has the following defaults:

 styles[ol.geom.GeometryType.POLYGON] = [
new ol.style.Style({
fill: new ol.style.Fill({
color: [255, 255, 255, 0.5]
})
})
];
styles[ol.geom.GeometryType.LINE_STRING] = [
...
];
styles[ol.geom.GeometryType.POINT] = [
...
];

有什么想法吗?

最佳答案

查看官方拖放示例 --> ol3 example

它处理所有可能的几何形状。

所以,声明你的样式对象

    var defaultStyle = {
'Point': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,255,0,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
color: '#ff0',
width: 1
})
})
}),
'LineString': new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#f00',
width: 3
})
}),
'Polygon': new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,255,255,0.5)'
}),
stroke: new ol.style.Stroke({
color: '#0ff',
width: 1
})
}),
'MultiPoint': new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({
color: 'rgba(255,0,255,0.5)'
}),
radius: 5,
stroke: new ol.style.Stroke({
color: '#f0f',
width: 1
})
})
}),
'MultiLineString': new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#0f0',
width: 3
})
}),
'MultiPolygon': new ol.style.Style({
fill: new ol.style.Fill({
color: 'rgba(0,0,255,0.5)'
}),
stroke: new ol.style.Stroke({
color: '#00f',
width: 1
})
})
};

然后创建您的样式函数

var styleFunction = function(feature, resolution) {
var featureStyleFunction = feature.getStyleFunction();
if (featureStyleFunction) {
return featureStyleFunction.call(feature, resolution);
} else {
return defaultStyle[feature.getGeometry().getType()];
}
};

最后,将样式函数分配给您的矢量图层

    map.addLayer(new ol.layer.Vector({
source: new ol.source.Vector({}),
style: styleFunction
}));

关于openlayers-3 - Openlayers - 不同几何类型的多种样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40796548/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com