0

我有这个代码在升级到 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" | "change:active" | "drawstart" | "drawend" | "drawabort")[]'.ts (2769)

...以及 e.feature 上的一个错误,上面写着

“绘图”类型上不存在属性“功能”

对于drawend,我看到它仍然可用,我不知道发生了什么,为什么以及如何修复它。对于 e.feature olDrawEvent 似乎使用了错误的对象,但 olDraw 也是如此?我不明白 OpenLayers 想让我在这里做什么,并且没有示例可以显示我可以找到的类似功能?

任何帮助是极大的赞赏!!

4

1 回答 1

0

如果您像我一样导入 Draw 和 DrawEvent...

import olDraw from 'ol/interaction/Draw.js';
import olDrawEvent from 'ol/interaction/Draw';

将您的导入更改为...

import  Draw, { DrawEvent }  from 'ol/interaction/Draw'; 

并将所有对象更改为新实例。

于 2021-08-17T13:02:32.797 回答