openlayers 聚类分析中预警marker 的位置在缩放过程中出现偏移

在使用OpenLayers进行疫情分析时,动态聚集的疫情点可能导致预警marker位置偏移。当疫情点聚集变化时,原本显示肺炎患者的预警点未随之更新。为解决此问题,可以在新出现肺炎患者点时将其加入聚集图层,并添加overlay预警点,同时保存实际id和位置。在样式函数中处理聚类,并在聚类函数中根据预警点的资源id找到最近的聚集点,更新预警overlay的位置和半径。
摘要由CSDN通过智能技术生成

问题:在做疫情分析时,疫情点采用cluster动态聚集,对于有肺炎患者的地方,通过overlay的方式显示动态闪烁点,但是由于疫情点是动态聚集的,在不同的级别,聚集点不同,下一次聚集时,有肺炎患者的点被聚集到另一个聚集点中,但是预警闪烁点的位置还在原地,这样就造成预警点不在有肺炎患者的聚集点中。

解决办法:当新出现肺炎患者点,将其加入到聚集图层中,同时添加overlay 预警点,并将肺炎患者点的实际id和位置保存到overlay的属性中。

1、新出现肺炎患者点,将其加入到聚集图层中(这是是加入到数据中,情况图层数据,再统一加载新的数据)

for (var i = 0; i < rows.length; i++) {
			var row = rows[i];
			var id = row.resourceid;
			var val = row.temperature;
			var region = row.retrievalRegion;
			var pnt = [ row.channelLongitude, row.channelLatitude];
			var fea = new ol.Feature(new ol.geom.Point(pnt))
			fea.setId(id);
			fea.setProperties(row);
			feas.push(fea);
		}
		var sr = this.clusterLyr.getSource().getSource();
		sr.clear();
		sr.addFeatures(feas);//聚类要素展示数据
		sr.refresh();

2、同时添加overlay 预警点,并将肺炎患者点的实际id和位置保

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值