1

我想知道是否有可能DivIcon具有动态大小。

背景:在我的地图上,将鼠标悬停在一个国家/地区上会触发带有该国家/地区名称的工具提示。我也有几个DivIcons,代码如下:

folium.Marker(
    location=[lat, lon],
    icon=folium.DivIcon(
        html='''
            <div style="background-color: red; display: inline-block;">
                <span>
                    {region_name}:
                    <br />{region_info}
                </span>
            </div>
        ''',
        icon_size=(100, 100),
        icon_anchor=(0, 0),  
    )
).add_to(map)

由于region_names 和region_infos 的变化,内容的宽度在 50 到 90 像素之间变化。我希望我的文本显示在两行上并div适合其内容:display: inline-blockhtml 中的属性允许我这样做,即使我icon_size的内容是不变的。

但问题是DivIcon影响工具提示的大小:我可以有一个包含内容的 70px 宽的块,但它旁边有一个 30px 的区域,它不会显示为块,但仍算作该块。因此,如果我将鼠标悬停在可见块之外,而不是出现带有某个国家/地区名称的工具提示,则不会发生任何事情。当该区域涵盖一堆小国家时,这尤其成问题。

我想要发生的是DivIcon适合其中的html,或者具有某种动态行为。我试过做icon_size=(10, 10)或删除icon_size,但块只是缩小以适应内容中最长的单词。我试图遍历folium.DivIcon继承树(branca.MacroElement,branca.Figure等)的代码,但无法控制这种行为。

欢迎任何建议。

4

0 回答 0