我必须在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')
它不返回格式化的坐标。 请指导我在错误的地方保持多边形的可见性并获取转换后的坐标。
答案 0 :(得分:1)
您需要克隆几何图形
let coords = e..feature.getGeometry().clone().transform('EPSG:3857', 'EPSG:4326').getCoordinates();
否则,您将要素移动到视图坐标中的[0,0]点附近