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

时间:2019-05-20 13:32:08

标签: javascript vue.js openlayers openlayers-5

我必须在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)

我必须将转换后的坐标存储在DB中,但是解决方案2不能保持绘制的多边形的可见性。 在解决方案#1的情况下,如果以后尝试使用

对其进行转换,则不会提供所需的格式化坐标
    transform(coords, 'EPSG:3857', 'EPSG:4326')

它不返回格式化的坐标。 请指导我在错误的地方保持多边形的可见性并获取转换后的坐标。

1 个答案:

答案 0 :(得分:1)

您需要克隆几何图形

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

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