Leaflet.Draw - geoJSON в Kml - PullRequest
       27

Leaflet.Draw - geoJSON в Kml

0 голосов
/ 03 мая 2018

Я сделал карту, используя плагин Leaflet Draw, который позволяет пользователю загружать свои нарисованные предметы. Эти нарисованные элементы экспортируются как GeoJSON, используя следующий код из здесь :

document.getElementById('export').onclick = function(e) {
        // 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','data.geojson');
}

Это прекрасно работает, но было бы еще лучше, если бы GeoJSON был конвертирован в .kml перед экспортом. Я знаю о плагине toKml , но я изо всех сил пытаюсь заставить его работать (я все еще новичок во всем этом). Куда бы я добавил:

var kml = tokml(geojsonObject);

1 Ответ

0 голосов
/ 04 мая 2018

Вы должны преобразовать свой data объект в KML с помощью tokml(data) и использовать полученную строку в URL-адресе данных с соответствующим типом MIME и именем файла:

var data = featureGroup.toGeoJSON();
var kml = tokml(data);

var convertedData = 'application/xml;charset=utf-8,' + encodeURIComponent(kml);

// if you want to use the official MIME type for KML
// var convertedData = 'application/vnd.google-earth.kml+xml;charset=utf-8,' + 
// encodeURIComponent(kml);

document.getElementById('export').setAttribute('href', 'data:' + convertedData); 
document.getElementById('export').setAttribute('download', 'data.kml');
...