2 回答
TA貢獻1817條經(jīng)驗 獲得超14個贊
您可以設(shè)置某種類型的計時器,以使用javascript函數(shù)自動更新數(shù)據(jù)。在這里,我使用的是名為“STI”的源和圖層,它只是地理JSON線數(shù)據(jù)。
該函數(shù)將首先添加數(shù)據(jù)源以及圖層:
var STI_SOURCE = 'json/sti/STI.json'; // declare URL for data
map.addSource('sti', { type: 'geojson', data: STI1 }); // Add source using URL
// Add the actual layer using the source
map.addLayer({
"id": "sti",
"type": "line",
"source": "sti",
"layout": {
"line-join": "miter",
"line-cap": "round"
},
"paint": {
"line-color": "#fff",
"line-width": 1,
"line-dasharray": [6, 2]
}
});
然后,當(dāng)您要刷新數(shù)據(jù)時 - 刪除它們:
map.removeLayer('sti');
map.removeSource('sti');
然后,您可以通過從頭開始重新添加它們。還有其他方法(而且更好)可以做到這一點,但這只是一種有效的方法。我認(rèn)為有一個 setData() 函數(shù)可以更好地做到這一點。但希望這可以讓你開始。
TA貢獻1833條經(jīng)驗 獲得超4個贊
最后,我的解決方案只是將 Mapbox 圖層的源指向本地存儲的 dataset.geojson 文件,而不是在線存儲在 mapbox.com 的相應(yīng)數(shù)據(jù)集。
我能夠使用“json”python包編輯本地存儲的數(shù)據(jù)集.geojson。由于 Mapbox 圖層源直接指向本地數(shù)據(jù)集,因此對此本地文件的所有更新都將反映在 Mapbox 圖層中。這樣,就無需將任何數(shù)據(jù)上傳到 Mapbox。
@David還發(fā)布了一個有用的解決方案,如果你想走這條路。
添加回答
舉報
