Javascript 使用不同投影将OpenLayers多边形转换为GeoJSON

Javascript 使用不同投影将OpenLayers多边形转换为GeoJSON,javascript,geojson,openlayers-3,Javascript,Geojson,Openlayers 3,与此问题中发现的问题类似 我已经设置了一个基本的地图来捕获一个用户定义的多边形并将其转换为GeoJSON,而我可以用它的原生投影ESPG:3857来实现这一点,我想获取捕获的GeoJSON并将其转换为EPSG:4326,然后将其保存。但是,使用上述在抽屉事件上捕获特征并执行变换的方法会删除多边形,因为新坐标不再显示在地图的投影中。我不知道如何在不删除现有多边形的情况下以所需格式保存GeoJSON 我尝试过在多边形的矢量源上使用getFeatures,然后执行从我正在使用的投影到我想要的投影的转换

与此问题中发现的问题类似

我已经设置了一个基本的地图来捕获一个用户定义的多边形并将其转换为GeoJSON,而我可以用它的原生投影ESPG:3857来实现这一点,我想获取捕获的GeoJSON并将其转换为EPSG:4326,然后将其保存。但是,使用上述在抽屉事件上捕获特征并执行变换的方法会删除多边形,因为新坐标不再显示在地图的投影中。我不知道如何在不删除现有多边形的情况下以所需格式保存GeoJSON

我尝试过在多边形的矢量源上使用getFeatures,然后执行从我正在使用的投影到我想要的投影的转换,但这仍然返回相同的坐标,我也像链接文章一样尝试过使用writeFeatureObject,但仍然保存不正确

取消对抽屉事件上的代码的注释将正确地控制台。记录坐标,并演示多边形消失以获得新的geojson

  var geom = [];
  vectorSource.forEachFeature( function(feature) { geom.push(new ol.Feature(feature.getGeometry().clone().transform('EPSG:3857', 'EPSG:4326'))); } );
  var writer = new ol.format.GeoJSON();
  var geoJsonStr = writer.writeFeatures(geom);
   console.log(geoJsonStr);
要获取新的geojson

  var geom = [];
  vectorSource.forEachFeature( function(feature) { geom.push(new ol.Feature(feature.getGeometry().clone().transform('EPSG:3857', 'EPSG:4326'))); } );
  var writer = new ol.format.GeoJSON();
  var geoJsonStr = writer.writeFeatures(geom);
   console.log(geoJsonStr);
Openlayers 6,无需在功能上循环

var format = new ol.format["GeoJSON"](); 
var geoJsonStr = format.writeFeatures(vectorSource.getFeatures(), { dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});
Openlayers 6,无需在功能上循环

var format = new ol.format["GeoJSON"](); 
var geoJsonStr = format.writeFeatures(vectorSource.getFeatures(), { dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});

在使用transform geom=evt.feature.getGeometry.clone.transform'EPSG:3857'、'EPSG:4326'之前,需要通过克隆几何体来创建几何体的副本;谢谢你的回复,Mike,但是添加这个仍然不允许我保存GeoJSON,但是它保留了多边形显示,进一步了解如何将GeoJSON保存为将geom传递给编写器时以空数组结尾。在使用transform geom=evt.feature.getGeometry.clone.transform'EPSG:3857'、'EPSG:4326'之前,您需要通过克隆来复制几何体;谢谢你的回复,Mike,但是添加这个仍然不允许我保存GeoJSON,但是它保留了多边形显示,任何关于我如何保存这个GeoJSON的进一步了解,当我将geom传递给编写器时,以空数组结束。这绝对是我所需要的,非常感谢-答案已被接受。这绝对是我所需要的,非常感谢-接受回答。