Openlayers KML格式writeFeatures默认样式
使用ol.format.KML writeFeatures()时,我无法理解Openlayers KML格式writeFeatures默认样式,openlayers,Openlayers,使用ol.format.KML writeFeatures()时,我无法理解defaultStyle。我正在编写的要素没有单独的样式,因此我希望将图层样式应用于KML要素。我试过这个: var features = vectorLayer.getSource().getFeatures(); // these do not have styles var layerStyle = vectorLayer.getStyleFunction()(features[0], map.getView().
defaultStyle
。我正在编写的要素没有单独的样式,因此我希望将图层样式应用于KML要素。我试过这个:
var features = vectorLayer.getSource().getFeatures(); // these do not have styles
var layerStyle = vectorLayer.getStyleFunction()(features[0], map.getView().getResolution());
var kmlFormat = new ol.format.KML({
defaultStyle: layerStyle
})
var kml = kmlFormat.writeFeatures(features, {
featureProjection: map.getView().getProjection() // source coord sys
});
console.log(kml);
但是kml没有样式。如果将图层的样式复制到每个要素:
features.forEach(function(feature) {
feature.setStyle(layerStyle);
});
然后,kml具有样式,即使我删除了{defaultStyle:layerStyle}
。但我不希望将样式从图层复制到每个单独的特征中。理想情况下,我希望kml为没有自己风格的特征提供图层风格,并为有自己风格的特征提供特征风格
那么,defaultStyle
做什么?什么时候使用它
可能
defaultStyle
仅适用于读取KML,而不适用于写入?KML与其他功能格式不同。它被设计成带有风格的特征。因此,在编写KML时,只有与特征关联的样式才会出现在KML中。这独立于defaultStyle
设置,该设置仅在未为功能配置样式时配置用于readFeatures
的样式。KML与其他功能格式不同。它被设计成带有风格的特征。因此,在编写KML时,只有与特征关联的样式才会出现在KML中。这独立于defaultStyle
设置,该设置仅在未为功能配置样式时配置用于readFeatures
的样式