2 回答
TA贡献1878条经验 获得超4个赞
是的,有办法。您可以向每个标记添加单击事件,然后添加弹出窗口。
var fg = L.featureGroup().addTo(map);
var m1 = L.marker([51.505, -0.09]).addTo(fg);
var v1 = '<div id="v1">v1</div>';
m1.popcontent = v1; //custom property to safe the html to the marker
var m2 = L.marker([51.505, -0.094]).addTo(fg);
var v2 = '<div id="v2">v2</div>';
m2.popcontent = v2;
var m3 = L.marker([51.505, -0.096]).addTo(fg);
var v3 = '<div id="v3">v3</div>';
m3.popcontent = v3;
fg.on('click',function(e){
var layer = e.layer;
layer.bindPopup(layer.popcontent).openPopup();
});
如果您的 html 在 vegaEmbed 中更新,您必须将 html ID 保存到标记中,然后将其读出。
var m1 = L.marker([51.505, -0.09]).addTo(fg);
var v1 = 'v1';
m1.popcontent = v1; //custom property to safe the id to the marker
fg.on('click',function(e){
var layer = e.layer;
layer.bindPopup($("#"+layer.popcontent).html()).openPopup(); // or document.getElementById(layer.popcontent).innerHTML;
});
示例:https://jsfiddle.net/falkedesign/56dLkq9h/
TA贡献1831条经验 获得超4个赞
如果我理解正确(我可能不理解),您希望生成“光”以某种方式动态地从 folium 代码中获取 html 代码。如果这是问题的话,答案是否定的。你不能。
来自Folium 文档:
folium 建立在 Python 生态系统的数据处理优势和 leaflet.js 库的映射优势之上。在 Python 中操作数据,然后通过 folium 在 Leaflet 地图上将其可视化。
事实上,您的观点在某种程度上是众所周知的观点。
- 2 回答
- 0 关注
- 164 浏览
添加回答
举报