2 回答
TA贡献1817条经验 获得超14个赞
您可以设置某种类型的计时器,以使用javascript函数自动更新数据。在这里,我使用的是名为“STI”的源和图层,它只是地理JSON线数据。
该函数将首先添加数据源以及图层:
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]
}
});
然后,当您要刷新数据时 - 删除它们:
map.removeLayer('sti');
map.removeSource('sti');
然后,您可以通过从头开始重新添加它们。还有其他方法(而且更好)可以做到这一点,但这只是一种有效的方法。我认为有一个 setData() 函数可以更好地做到这一点。但希望这可以让你开始。
TA贡献1833条经验 获得超4个赞
最后,我的解决方案只是将 Mapbox 图层的源指向本地存储的 dataset.geojson 文件,而不是在线存储在 mapbox.com 的相应数据集。
我能够使用“json”python包编辑本地存储的数据集.geojson。由于 Mapbox 图层源直接指向本地数据集,因此对此本地文件的所有更新都将反映在 Mapbox 图层中。这样,就无需将任何数据上传到 Mapbox。
@David还发布了一个有用的解决方案,如果你想走这条路。
添加回答
举报