我有一个我试图在矢量图层中使用的哈希表,所以这就是我所做的:
var make = [], remove = [];
for (var key in data) {
var val = data[key];
if (featureCache[key]) {
if (val._ts > featureCache[key]._ts) {
var geom = featureCache[key].getGeometry();
问题从这里开始。从我目前发现的情况来看,我有两个选择:
geom.setCoordinates(latlng([val.Latitude, val.Longitude]));
geom.flatCoordinates = latlng([val.Latitude, val.Longitude]);
然而,第一个冒泡并渲染地图,这是一个问题,因为我有超过 1500 个功能并且我计划使用更多。第二行给我断言失败,我不知道如何调试它。
featureCache[key]._ts = val._ts;
}
} else {
make.push(featureCache[key] =
new ol.Feature({
geometry: new ol.geom.Point(latlng([val.Latitude,val.Longitude]))
})
);
featureCache[key]._ts = val._ts;
}
}
source.addFeatures(make);
这需要每隔一秒左右运行一次,因为我希望数据尽可能实时。
如果这是一种非常愚蠢的方法,我也想知道。