在使用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!");
}
}