Openlayers 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().

使用ol.format.KML writeFeatures()时,我无法理解
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
的样式