Я нахожусь в процессе разработки веб-приложения в Django, где пользователь может выбрать многоугольник и затем экспортировать его в geojson и kml.
Мне удалось создать многоугольник, но я могуне могу понять, как экспортировать его в геойсон.
Когда я выполняю описанную ниже процедуру, карта исчезает со страницы?
Есть идеи или вы что-то заметили в моем коде?
<div class='calculation-box'>
<p>Selectionnez votre parcelle à l'aide de l'outil ligne ou polygone.</p>
<div id='calculated-area'></div>
</div>
<script>
mapboxgl.accessToken = 'pk.eyJ1IjoiaGFtemFiIiwiYSI6ImNrMHdwYmQ2bzA2OGYzbHB1Z292eGxneDgifQ.rGPQjaoWuOdnq_UdxAfQ_w';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/satellite-streets-v10',
center: [-7.60,33.57],
zoom: 5,
bearing: 0
});
var geoJsonFeatures;
var draw = new MapboxDraw({
displayControlsDefault: true,
});
map.addControl(draw);
map.addControl(new mapboxgl.NavigationControl());
document.getElementById('export').onclick = function(e) {
// Extract GeoJson from featureGroup
var data = Draw.getAll();
if (data.features.length > 0) {
// 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','data.geojson');
} else {
alert("Wouldn't you like to draw some data?");
}
map.on('draw.create', updateArea);
map.on('draw.delete', updateArea);
map.on('draw.update', updateArea);
function updateArea(e) {
var data = draw.getAll();
var answer = document.getElementById('calculated-area');
if (data.features.length > 0) {
var area = turf.area(data);
// restrict to area to 2 decimal points
var rounded_area = Math.round(area*100)/1000000;
answer.innerHTML = '<p><strong>' + rounded_area + '</strong></p><p>hectares</p>';
} else {
answer.innerHTML = '';
if (e.type !== 'draw.delete') alert("Selectionnez votre parcelle à l'aide de l'outil ligne ou polygone!");
}
}
</script>