使用 folium 设置地图 id?

问题描述 投票:0回答:3

我正在使用 folium (Django/Python)。我创建了一张地图:

def create_map():
    m = folium.Map(location=[9.934739, -84.087502], zoom_start=7 )
    .....

folium 在 JS 中这样创建地图:

   var map_e87b2e996ca04be59a5cfedabc0bf1ad = L.map(
        "map_e87b2e996ca04be59a5cfedabc0bf1ad",
        {
            center: [9.934739, -84.087502],
               .....
        }
    );

我需要的是一种从 folium (Django) 设置我自己的 id 的方法,而不是默认创建的即时 id:map_e87b2e996ca04be59a5cfedabc0bf1ad

我需要这样做,因为我想在地图上创建自定义事件,影响嵌入此地图的 html 文件的其他部分。

leaflet folium
3个回答
3
投票

完整的ID是

map._name
map._id
的组合,如果你想覆盖它,你可以使用类似的东西:

map = folium.Map()
map._name = "map_name"
map._id = "1"

然后如果你用

map.get_name()
来调用它,它将是
map_name_1


0
投票

您可以扭转这个问题,而不是自己管理名称,而是使用

folium
在您的自定义 HTML/CSS/JS 中分配的特定名称,您可以通过
some_map.get_name()
访问该名称。


0
投票

解决方案

这里有一个完整的解决方案,其中包含 Folium 中的 single mapdualMap 的 Python 代码示例,带有 custom id ,可以帮助从 python 中使用 css 影响地图/地图(例如:在 Streamlit 应用程序中或使用branca注入css...等)

单一地图自定义id

import folium

def create_custom_map(map_name, map_id):
    m = folium.Map(location=[36.45, 2.85], tiles='OpenStreetMap', zoom_start=9)
    m._name = map_name
    m._id = map_id
    # Add any other map customization or layers here
    return m

# Create the first custom map
map1_name = 'custom_map_name'
map1_id = '69696969'
map1 = create_custom_map(map1_name, map1_id)

# Save the maps to HTML files
map1.save('map.html')

单图自定义id预览


DualMap自定义id

import folium
import folium.plugins

def create_custom_dualmap(map_name, map_id):
    m = folium.plugins.DualMap(location=[36.45, 2.85], tiles='OpenStreetMap', zoom_start=9)
    
    # Customize the ID of the left and right maps
    m.m1._name = f"{map_name}_left"
    m.m1._id = f"{map_id}_left"
    
    m.m2._name = f"{map_name}_right"
    m.m2._id = f"{map_id}_right"
    
    # Add any other map customization or layers here
    return m

# Create the custom DualMap
dualmap_name = 'custom_dualmap_name'
dualmap_id = '123'
custom_dualmap = create_custom_dualmap(dualmap_name, dualmap_id)

# Save the DualMap to an HTML file
custom_dualmap.save('map.html')

dualMap自定义id预览

© www.soinside.com 2019 - 2024. All rights reserved.