1 votos

Añadir HTML a la ventana emergente del folio en un bucle for

Quiero poner el formato HTML en una ventana emergente de un mapa de folio. ¿Cómo puedo dar formato a la ventana emergente html dentro de mi for ¿bucle?

Mi código:

import folium
import pandas
from folium import IFrame

data=pandas.read_csv("addresses.txt")
lat=list(data["LAT"])
lon=list(data["LON"])
name=list(data["NAME"])
desc=list(data["DESCRIPTION"])

map=folium.Map(location=[40.748817,73.985429],zoom_start=14,tiles="stamenterrain")
#folium.TileLayer('cartodbpositron').add_to(map)

for lt,ln,nm,ds in zip(lat,lon,name,desc):
    test = folium.Html('<b>nm<br>desc</b>', script=True)
    fg.add_child(folium.CircleMarker(location=[lt,ln],radius=6,color='grey',fill_color='yellow',
popup=test))

map.add_child(fg)
map.save("Map1.html")

2voto

folium debería manejar esto correctamente por defecto.

Según los documentos de ejemplo:

import folium
import branca 

m = folium.Map([43, -100], zoom_start=4)

html = """
    <h1> This popup is an Iframe</h1><br>
    With a few lines of code...
    <p>
    <code>
        from numpy import *<br>
        exp(-2*pi)
    </code>
    </p>
    """

iframe = branca.element.IFrame(html=html, width=500, height=300)
popup = folium.Popup(iframe, max_width=500)

folium.Marker([30, -100], popup=popup).add_to(m)

Así que en su ejemplo

for lt,ln,nm,ds in zip(lat,lon,name,desc):
    test = folium.Html('<b>nm<br>desc</b>', script=True) # i'm assuming this bit runs fine
    iframe = branca.element.IFrame(html=test, width=350, height=150)
    popup = folium.Popup(iframe, parse_html=True)
    folium.Marker(location=[lt,ln],radius=6,color='grey',fill_color='yellow', popup=popup)).add_to(map)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X