Аналогично проблеме, обнаруженной в этом вопросе
Как преобразовать координаты многоугольника OpenLayers в широту и долготу?
Я настроил базовую карту для захвата пользователяопределил полигон и преобразовал его в GeoJSON, хотя я могу сделать это с его собственной проекцией (ESPG: 3857). Я хотел бы взять захваченный GeoJSON и преобразовать его в EPSG: 4326 - который я затем сохраню.Использование описанного выше метода захвата объекта в событии drawend и выполнения преобразования, однако, удаляет многоугольник, поскольку новые координаты больше не представлены в проекции карты.Я не могу понять, как сохранить GeoJSON в нужном мне формате, не удаляя существующий многоугольник
. Я попытался выполнить это с помощью getFeatures для векторного источника многоугольника, а затем выполнить преобразование изпроекция, которую я использую для проекции, которую я хочу, но она по-прежнему возвращает те же координаты, я также (как и в связанной статье) пытался использовать writeFeatureObject, но он по-прежнему сохраняет неправильно
https://jsfiddle.net/20gxo3nt/
dragBox.on('drawend', function(evt){
/* geom = evt.feature.getGeometry().transform('EPSG:3857', 'EPSG:4326');
console.log(geom.getCoordinates()); */
});
$( "#save" ).click(function() {
var geom=vectorSource.getFeatures();
console.log(geom);
var writer=new ol.format.GeoJSON();
var geoJsonStr = writer.writeFeatures(geom);
console.log (geom.proj.transform('EPSG:3857', 'EPSG:4326'));
/* console.log(geoJsonStr) */
});
Раскомментирование кода в событии drawend правильно укажет.log координаты, а также продемонстрирует исчезновение многоугольника