ベクターレイヤーで使用しようとしているハッシュテーブルがあるので、これが私が作ったものです:
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();
問題はここから始まります。これまでにわかったことから、次の 2 つのオプションがあります。
geom.setCoordinates(latlng([val.Latitude, val.Longitude]));
geom.flatCoordinates = latlng([val.Latitude, val.Longitude]);
ただし、最初のものはバブルアップしてマップをレンダリングします。1500 を超える機能があり、さらに使用する予定があるため、これは問題です。2行目でアサーションが失敗したことがわかり、デバッグ方法がわかりません。
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);
データをできるだけリアルタイムにしたいので、これは1秒おきに実行する必要があります。
そして、これが本当にばかげた方法である場合は、それも知りたいです。