首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KML格式writeFeatures defaultStyle

KML格式writeFeatures defaultStyle
EN

Stack Overflow用户
提问于 2017-03-25 17:51:56
回答 1查看 410关注 0票数 0

在使用defaultStyle ()时,我很难理解defaultStyle。我正在编写的特性没有单独的样式,所以我想将图层样式应用到KML功能中。我试过这个:

代码语言:javascript
复制
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没有造型。如果我将图层的样式复制到每个功能中:

代码语言:javascript
复制
features.forEach(function(feature) {
  feature.setStyle(layerStyle);
});

然后kml具有样式,即使我删除了{defaultStyle: layerStyle}。但我不希望将样式从图层复制到每个单独的功能中。理想情况下,我希望kml对于没有自己风格的特性有层的样式,对于有自己风格的特性使用该特性的样式。

那么,defaultStyle是做什么的,什么时候使用它呢?

OpenLayers文档

也许defaultStyle只适用于阅读KML,而不是写作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-26 11:18:51

KML与其他特性格式不同。它被设计为带有风格的功能。因此,在编写KML时,只有与特性相关的样式才会出现在KML中。这与defaultStyle设置无关,后者只在没有为特性配置样式时配置用于readFeatures的样式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43019869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档