问题:在做疫情分析时,疫情点采用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和位置保