首页 > 解决方案 > 拖放和 ol.interactionSelect 上的 kml 样式

问题描述

使用 ol 4.4.2 kml 样式进行拖放非常困难,我无法通过图层样式进行设置。我可以通过该功能对其进行样式设置,但是当我这样做时,选择交互的样式不再起作用。extractStyle: false 不再起作用。有错误吗?我该怎么做 ?

dragAndDropInteraction.on('addfeatures', function(e) {
    var vectorSource = new ol.source.Vector({
        opacity: 1,
        features: new ol.Collection(),
        format: new ol.format.KML({
          extractStyles: false, defaultStyle: AnnotImportStyle 
        }),
        visible: true
    });
    var features = e.features;

    //features.forEach (function(s){s.setStyle(AnnotImportStyle)}); it works but put the style of select out
    vectorSource.addFeatures(features);
    var file_name = e.file.name;
    var name = file_name.substr(0, file_name.lastIndexOf('.'));
    var vector = new ol.layer.Vector({
        title: name,
        source: vectorSource,
        style: AnnotImportStyle,
        visible: true,
    });
    map.addLayer(vector);
    map.getView().fit(vectorSource.getExtent());
});

标签: javascriptopenlayers

解决方案


推荐阅读