【openlayers】关于使用openlayers撒点出现AssertionError: The passed `feature` was already added to the source报错

本文讲述了开发者在项目中遇到的问题,地图模块在不同视角下撒点时出现报错,经排查发现是由于点位重复导致。通过追踪Vector.js和范围筛选函数,最终定位到数据冲突并成功解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、报错图片

在这里插入图片描述

二、问题原因

在开发项目时,有一个地图模块需要进行撒点,同时撒点的范围要求根据用户的操作筛选,因为点位做过抽稀,所以在比较高的地图视角时,只展示抽稀过后的部分点位,可正常显示,然而当地图视角拉低到最大后,本来应该展示的全部点位却消失并报错了,粗略查看数据结构后发现并未变化。于是根据报错信息一步一步追溯报错文件,最终在Vector.js中发现uidIndex字样,结合最终显示在控制台的“already added to the source”推断应该是有点位添加重复了,抽稀时重复的点位被判定为距离过近而被删除,所以当要展示全部点位时,未处理的数据直接报错了,查看范围筛选函数并对比数据,果然发现有一条数据与后端反馈的筛选条件冲突,单独进行处理后正常显示。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值