绘制的多边形未显示在 openlayers 中

Drawn polygon does not show in openlayers

我必须在 openlayers 地图上绘制一个多边形。这是我的代码:

   draw = new Draw({
        source: this.vectorSource,
        type: 'Polygon'
    })
    draw.on('drawend', e => {

             // sol 1, result is not as required
             let coords = e.feature.getGeometry().getCoordinates()

             //sol 2, give correct results, but drawn polygon gone
             let coords = e..feature.getGeometry().transform('EPSG:3857', 'EPSG:4326').getCoordinates()
    }
    this.olmap.addInteraction(draw)

我必须将转换后的坐标存储在数据库中,但解决方案 #2 无法保持绘制的多边形的可见性。 在解决方案 #1 的情况下,如果我稍后尝试使用

转换它们,它不会提供所需的格式化坐标
    transform(coords, 'EPSG:3857', 'EPSG:4326')

它没有 return 格式化坐标。 请指导我保持多边形可见性并获取转换坐标的错误之处。

您需要克隆几何图形

let coords = e..feature.getGeometry().clone().transform('EPSG:3857', 'EPSG:4326').getCoordinates();

否则您会将要素移动到视图坐标中靠近点 [0, 0] 的位置