我有这个代码在升级到OL6.6.1后抱怨
draw.on('drawend', (e: olDrawEvent) => {
const format: olGeoJson = new olGeoJson();
this.shapeString = format.writeGeometry(e.feature.getGeometry(),
{ dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857', rightHanded: false });
this.featureGeometry = e.feature.getGeometry().getCoordinates();
if (!this.cancelClick) {
this.savePolygon(this.featureGeometry[0]);
}
});
我在'drawend'上得到一个错误,上面说…
没有重载匹配这个调用。最后一次重载给出了以下错误。类型为'string'的参数不能赋值给类型为'("error"|"change"|"propertychange"|"变化:active"|"drawstart"|"drawend"|"drawabort" [] .ts (2769)
…在e.feature上有一个错误,上面写着
属性'feature'不存在类型'Draw'
对于drawend,我看到它仍然可用,我不知道是什么坏了,为什么,以及如何修复它。对于e.f feature, olDrawEvent似乎是错误的对象,但olDraw也是如此??我不明白OpenLayers想让我在这里做什么,也没有例子来展示我能找到的类似功能?
任何帮助都是非常感激的!
如果你像我一样导入Draw和DrawEvent…
import olDraw from 'ol/interaction/Draw.js';
import olDrawEvent from 'ol/interaction/Draw';
将您的import更改为…
import Draw, { DrawEvent } from 'ol/interaction/Draw';
并将所有对象更改为新实例。