openlayer 绘制的特征添加到数据源内部验证失败

业务场景
draw绘制完成后将结果输出到数据源

报错
chunk-NPABQ273.js?v=aa7ce40f:656 Uncaught AssertionError: Assertion failed. See https://openlayers.org/en/v6.14.1/doc/errors/#30 for details. at new AssertionError2 (chunk-NPABQ273.js?v=aa7ce40f:656:20) at assert (chunk-NPABQ273.js?v=aa7ce40f:669:11) at VectorSource2.addToIndex_ (chunk-F7FAAFK6.js?v=aa7ce40f:1041:7) at VectorSource2.addFeatureInternal (chunk-F7FAAFK6.js?v=aa7ce40f:1006:15) at VectorSource2.addFeature (chunk-F7FAAFK6.js?v=aa7ce40f:1001:10) at Draw2.finishDrawing (chunk-T2CNLOSY.js?v=aa7ce40f:6107:20) at Draw2.handleUpEvent (chunk-T2CNLOSY.js?v=aa7ce40f:5847:20) at PointerInteraction2.handleEvent (chunk-T2CNLOSY.js?v=aa7ce40f:4248:30) at Draw2.handleEvent (chunk-T2CNLOSY.js?v=aa7ce40f:5807:41) at PluggableMap2.handleMapBrowserEvent (chunk-ZGFYY2V7.js?v=aa7ce40f:1104:32)

原因
OpenLayers 进行了一些内部验证,并且这些验证失败了

解决

将结果取出为单纯的数据结构并new一个新的Feature对象


 this.draw.on("drawend", (evt) => {

  let newFeatures = new Feature({

          geometry: evt.feature.getGeometry(),

        });

   this.sourceObject["interactionLayer"].clear();

        this.sourceObject["interactionLayer"].addFeature(newFeatures);

  });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值