Ich habe Probleme, defaultStyle
zu verstehen, wenn Sie ol.format.KML writeFeatures() verwenden. Die Features, die ich schreibe, haben keine individuellen Stile, daher möchte ich den Layerstil auf die KML-Features anwenden. Ich habe es versucht:KML-Format writeFeatures defaultStyle
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);
Aber die kml hat kein Styling. Wenn ich den Ebenenstil jedes Merkmal kopieren:
features.forEach(function(feature) {
feature.setStyle(layerStyle);
});
Dann hat die kml Styling, auch wenn ich {defaultStyle: layerStyle}
entfernen. Aber ich würde es vorziehen, den Stil nicht von der Ebene in jedes einzelne Feature zu kopieren. Idealerweise hätte ich gerne, dass der kml den Stil der Ebene für Features hat, die nicht ihren eigenen Stil haben, und den Stil der Features für Stile verwenden, die ihren eigenen Stil haben.
Was macht defaultStyle
und wann würde es verwendet werden?
Vielleicht gilt defaultStyle
nur KML auf Lesen, Schreiben nicht?