尽管在传单地图中有条件查询,函数仍会触发

时间:2019-02-13 15:30:58

标签: javascript html leaflet

在使用Leaflet构建的地图中,我创建了一个按钮,用于导出和下载数据,并由用户使用Leaflet.draw绘制为geoJSON。

为防止下载为空,我正在查询数据的存在。

在传单绘制工具中,创建的数据存储在名为“ layerGroup”的layergroup中。

首次加载地图后,通过单击按钮,我收到警报“没有可供下载的内容!”,控制台返回“ Layerers in featureGroup:0”,并且没有数据下载。 到目前为止,一切都很好。

在绘图工具中,我稍后可以再次添加和删除数据。添加并删除所有数据后,layerGroup中应该没有图层,因此我应该像以前一样经历相同的行为,而无需下载。在控制台中,我收到消息“ featureGroup中的层:0”,警报“没有要下载的内容!”正在显示,但是,我不知道为什么,下载仍会开始。

您对我的代码为什么会那样表现有任何想法吗?

//Export Button 
document.getElementById('export').onclick = function(e) {
    //get layer number in var layer_number
    var layer_number = featureGroup.getLayers().filter(function(l) {return l instanceof L.Marker} ).length;
    console.log("Layers in featureGroup: ", layer_number);
    if (layer_number > 0){

        // Extract GeoJson from featureGroup
        var data = featureGroup.toGeoJSON();

        // Stringify the GeoJson
        var convertedData = 'text/json;charset=utf-8,'+encodeURIComponent(JSON.stringify(data));

        // Create export                 
      document.getElementById('export').setAttribute('href', 'data:' + convertedData);
      document.getElementById('export').setAttribute('download',''+timestamp +'.geojson');

    //show confirmation popup       
    $('.confirmation').show();
    //hide popup on button click
    $('#agree_button').click(function(){
        $('.confirmation').hide();
    });
}
//message if no feature in featureGroup
else {
    alert("There is nothing to download!");
}           
}

0 个答案:

没有答案