我試圖通過websockets實時繪製一個映射可視化文件,並在其中獲取新的點。最初在地圖上繪製這些標記似乎很簡單,但我不確定在Mapbox上更新圖層的正確方式是什麼。更新Leaflet/Mapbox中的圖層
截至目前,每當我得到一個新的點,我刪除舊的層,創建一個新的,然後將其添加到地圖上。這種方法存在的問題是速度慢,而且對於大量的點(> 5000)它開始滯後。
// remove layer
if (this.pointsLayer != null) {
map.removeLayer(this.pointsLayer);
}
// build geoJSON
var geoJSON = { "type": "FeatureCollection", "features": [] };
geoJSON["features"] = tweets.map(function(tweet) {
return this.getGeoPoint(tweet);
}.bind(this));
// add geoJSON to layer
this.pointsLayer = L.mapbox.featureLayer(geoJSON, {
pointToLayer: function(feature, latlon) {
return L.circleMarker(latlon, {
fillColor: '#AA5042',
fillOpacity: 0.7,
radius: 3,
stroke: false
});
}
}).addTo(map);
有沒有更好的方法?
您的目標是隨着時間的推移不斷地添加地圖,還是要刪除舊點? –