以下 html 代码为它们创建了几个标记和弹出窗口。 ... 只是我省略的长内容的替代,因为它们对解决我的问题没有意义。由于这些标记有数百个,一次性创建所有弹出窗口会导致网络加载时间非常长。
有没有办法仅在单击标记时将弹出窗口添加到标记?下面的代码已经生成,所以我无法使用新逻辑从头开始重建它。
var m1 = L.marker(...).addTo(map);
var p1 = L.popup(...);
var v1 = $('<div id="v1"></div>')[0];
p1.setContent(v1);
m1.bindPopup(p1);
vegaEmbed(v1, ...)
var m2 = L.marker(...).addTo(map);
var p2 = L.popup(...);
var v2 = $('<div id="v2"></div>')[0];
p2.setContent(v2);
m2.bindPopup(p2);
vegaEmbed(v2, ...)
var m3 = L.marker(...).addTo(map);
var p3 = L.popup(...);
var v3 = $('<div id="v3"></div>')[0];
p3.setContent(v3);
m3.bindPopup(p3);
vegaEmbed(v3, ...)
.
.
.
and so on
尝试 Falke Design 提出的解决方案:
到目前为止,我有以下 Python 代码:
m = folium.Map(...)
fg = folium.FeatureGroup()
for i in range(0,400):
p = folium.Popup().add_child(folium.VegaLite(...))
folium.Marker(...popup = p).add_to(fg)
fg.add_to(m)
m.save('templates/index.html')
生成以下 html:
var fg = L.featureGroup({}).addTo(m);
var m1 = L.marker(...).addTo(fg);
var p1 = L.popup(...);
var v1 = $('<div id="v1"></div>')[0];
p1.setContent(v1);
m1.bindPopup(p1);
vegaEmbed(v1, ...)
.
.
.
and so on up to 400
UYOU
慕容708150
相关分类