def add_accident(self, data, **kwargs):
        if not (re.search(r'NUM', data.lugar)):
            try:
                folium.Marker(
                    location=(data.lat, data.lon),
                    tooltip=folium.Tooltip(
                        f'Tipo de colisión: {data.tipo_accidente}<br>'
                        f'Número de parte: {data.numero_parte}<br>'
                        f'Fecha: {data.fecha}<br>'
                        f'Hora: {data.hora}<br>'
                        f'Lugar: {data.lugar}<br>'
                        f'Distrito: {data.distrito}<br>'
                        f'Latitud: {round(data.lat, 5)}<br>'
                        f'Longitud: {round(data.lon, 5)}<br><br>'
                        f'Conductor 1 ---<br>'
                        f'Tipo vehiculo: {data.conductor_1_tipo_vehiculo}<br>'
                        f'Sexo: {data.conductor_1_sexo}<br>'
                        f'Edad: {data.conductor_1_edad}<br><br>'
                        f'Conductor 2 ---<br>'
                        f'Tipo vehiculo: {data.conductor_2_tipo_vehiculo}<br>'
                        f'Sexo: {data.conductor_2_sexo}<br>'
                        f'Edad: {data.conductor_2_edad}<br>'),
                    icon=folium.CustomIcon(
                        icon_image=
                        './mc_map_generator/resources/images/icons/peligro.png',
                        icon_size=(12, 12))).add_to(self._map)

            except Exception as e:
                print(e)
Beispiel #2
0
 def CreateMarker(png_file_name, size):
     custom_icon = folium.CustomIcon(png_file_name, icon_size=(size, size))
     corrected_popup = folium.Popup(
         nam + ": " + str(mun) + ", " + str(cod), parse_html=True
     )  #required to have folium read strings that have special characters like , and space by parsing html
     return folium.Marker(location=[lat, lon],
                          popup=corrected_popup,
                          icon=custom_icon)
Beispiel #3
0
def add_icon(my_map,
             file_path,
             location_on_map,
             size=(20, 30),
             location_padding=(0, 0)):
    folium.map.Marker([location_on_map[0], location_on_map[1]],
                      icon=folium.CustomIcon(
                          icon_image=file_path,
                          icon_size=size,
                          icon_anchor=location_padding)).add_to(my_map)
Beispiel #4
0
    def add_air_station_marker_with_graph(self, data, *args, **kwargs):
        """Esta función se encarga de agregar graficos al los marcadores existentes"""
        locations = data.iloc[:, [1, 2]]
        station_names = data.iloc[:, [3]]

        station_ids = list(pd.unique(data.id))
        station_groups = data.groupby('id')

        for station_id in station_ids:
            filtered_data = station_groups.get_group(station_id)
            print('***** data get group')
            print(type(filtered_data))
            print(filtered_data.head())
            plot_data = filtered_data.groupby(
                ['magnitude', 'year', 'month', 'day']).agg({
                    'value': 'mean'
                }).reset_index()
            print('***** data plot data')
            print(type(plot_data))
            print(plot_data.head())

            x = [int(hour) for hour in list(plot_data['day'])]
            y = [int(value) for value in list(plot_data['value'])]
            print(x)
            print(y)

            xy_values = {
                'x': x,
                'y': y,
            }
            scatter_chart = vincent.Scatter(xy_values,
                                            iter_idx='x',
                                            width=600,
                                            height=300)

            scatter_chart.axis_titles(x='Día',
                                      y='Promedio Dióxido de Nitrogeno día')

            popup_scatter_plot = folium.Popup(max_width=900).add_child(
                folium.Vega(scatter_chart, height=350, width=700))

            air_quality_station = [
                filtered_data.iloc[0, 1], filtered_data.iloc[0, 2]
            ]
            print(air_quality_station)
            station_name = [filtered_data.iloc[0, 3]]
            print(station_name)
            folium.Marker(
                location=air_quality_station,
                tooltip=folium.Tooltip(
                    f'Estación: {station_name[0]}<br>Latitud: {round(air_quality_station[0], 4)}<br>Longitud: {round(air_quality_station[1], 4)}'
                ),
                popup=popup_scatter_plot,
                icon=folium.CustomIcon(icon_image='icons/forecast.png',
                                       icon_size=(40, 40))).add_to(self._map)
Beispiel #5
0
    def add_station_marker(self,
                           locations,
                           station_names=None,
                           legend=None,
                           **kwargs):
        """Add air stations to the map. Add as many as the the lenght of the locatios parameter"""
        if station_names is None:
            station_names = [[i] for i in range(len(locations))]

        for location, stat_name in zip(locations, station_names):
            try:
                folium.Marker(
                    location=location,
                    tooltip=folium.Tooltip(
                        f'Estación: {stat_name[0]}<br>Latitud: {round(location[0], 4)}<br>Longitud: {round(location[1], 4)}'
                    ),
                    popup=legend,
                    icon=folium.CustomIcon(
                        icon_image=
                        './mc_map_generator/resources/images/icons/forecast.png',
                        icon_size=(40, 40))).add_to(self._map)
            except TypeError as e:
                print(
                    "El parametro location debe ser un de la forma [lat, lon] ó (lat,lon)"
                )
                print('Probando con la siguiente estación...')
                continue

            except FileNotFoundError as e:
                print(
                    'El archivo para representar las estaciones no se encuentra en la carpeta "icons"'
                )
                break

            except Exception as e:
                print(e)
                'https://www.cwb.gov.tw/V7/images/wind_icon/S.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/SSW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/SW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/WSW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/W.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/WNW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/NW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/NNW.gif']
station1=folium.FeatureGroup(name="環保署",show = False)
for i in(range(16)):
    station1.add_child(
                        folium.Marker(
                                        location=[final_df['Latitude'][i],final_df['Longitude'][i]],
                                        popup=("<b>NAME:</b> {NAME}<br>""<b>PM2.5:</b> {PM25}<br>""<b>TIME:</b> {TIME}<br>")
                                                .format(NAME=str(final_df['SiteName'][i]),PM25=str(final_df['PM2.5'][i]),TIME=str(times[21:36])),
                                        icon=folium.CustomIcon(epa_icon_url,icon_size=(23,23))
                                      )
                        )

station2=folium.FeatureGroup(name="空氣盒子",show = False)
for j in range(16,70):
    station2.add_child(
                        folium.Marker(
                                        location=[final_df['Latitude'][j],final_df['Longitude'][j]],
                                        popup=("<b>NAME:</b> {NAME}<br>""<b>PM2.5:</b> {PM25}<br>""<b>TIME:</b> {TIME}<br>")
                                                .format(NAME=str(final_df['SiteName'][j]),PM25=str(final_df['PM2.5'][j]),TIME=str(times[21:36])),
                                        icon=folium.CustomIcon(airbox_icon_url,icon_size=(23,23))
                                        )
                        )

station3=folium.FeatureGroup(name="風力",show = False)
Beispiel #7
0
def make_avalanche_map(gdf, out='ava_map.html'):
    """
    https://stackoverflow.com/questions/52428916/python-folium-markercluster-color-customization
    https://github.com/python-visualization/folium/blob/master/examples/MarkerCluster.ipynb
    https://www.kaggle.com/rachan/how-to-folium-for-maps-heatmaps-time-analysis
    

    :param gdf:
    :param out:
    :return:
    """

    _fr_style_1 = {
        'fillColor': '#9BB9C2',
        'color': '#033648',
        'weight': 1,
        'fillOpacity': 0.2
    }

    _fr_style_2 = {
        'fillColor': '#9BB9C2',
        'color': '#033648',
        'weight': 1,
        'fillOpacity': 0.0
    }

    # url = 'http://leafletjs.com/examples/custom-icons/{}'.format
    icon_image = 'avalanche.png'
    # shadow_image = url('leaf-shadow.png')

    ava_icon = folium.CustomIcon(icon_image=icon_image,
                                 icon_size=(64, 64),
                                 icon_anchor=(22, 94),
                                 popup_anchor=(-3, -76))

    # gdf.to_crs({'init': 'EPSG:3857'}, inplace=True)
    gdf.to_crs({'init': 'EPSG:4326'}, inplace=True)

    # b = gdf.bounds
    # mx = min(b['minx']) + (max(b['maxx']) - min(b['minx'])) / 2
    # my = min(b['miny']) + (max(b['maxy']) - min(b['miny'])) / 2

    ava_map = folium.Map(
        prefer_canvas=True,
        # tiles='Stamen Terrain',
        location=[65, 16],
        zoom_start=5,
        control_scale=True)

    forecast_reg = folium.GeoJson(
        r'C:\Users\kmu\PycharmProjects\APS\aps\data\forecasting_regions\Skred_Varsling.geojson',
        name='Forecasting regions',
        style_function=lambda feature: _fr_style_1
        if feature['properties']['regionType'] == 'A' else _fr_style_2).add_to(
            ava_map)

    _fields = {
        'skredTidspunkt': 'Tidspunkt (utløsning)',
        'noySkredTidspunkt': 'Nøyaktighet (Tid)',
        'registrertAv': 'Registrert av',
        'registrertDato': 'Dato (registrert)',
        'regStatus': 'Status',
        'skredAreal_m2': 'Areal (m2)',
        'eksposisjonUtlopsomr': 'Eksposisjon',
        'snittHelningUtlopssomr_gr': 'Helning (snitt)',
        'maksHelningUtlopsomr_gr': 'Helning (maks)',
        'minHelningUtlopsomr_gr': 'Helning (min)',
        'hoydeStoppSkred_moh': 'Høyde (stopp)',
        'skredID': 'ID'
    }
    _t = _fields.keys()
    # TODO: set min zoom level
    a = folium.GeoJson(
        gdf,
        name='Detected avalanches (polygon)',
        style_function=lambda feature: {
            'weight': 1,
            'color': feature['properties']['preci_color'],
            'fillcolor': feature['properties']['preci_color'],
            'fillOpacity': 0.2
        },
        tooltip=folium.features.GeoJsonTooltip(fields=list(_fields.keys()),
                                               aliases=list(_fields.values()),
                                               labels=True,
                                               sticky=False)
        # popup=folium.features.GeoJsonPopup(fields=list(_fields.keys()),
        #                                        aliases=list(_fields.values()),
        #                                        labels=True,
        #                                        sticky=False
        #                                        )
    )

    a.add_to(ava_map)

    # Create a folium marker cluster
    marker_cluster = folium.plugins.MarkerCluster(
        name='Detected avalanches (point)')

    # # Get x and y coordinates for each point
    m = np.vstack([gdf.centroid.y, gdf.centroid.x]).T

    # Create icons for the marker cluster
    # i = [folium.Icon(color='lightgray', icon='mountain', prefix='fa')] * m.shape[0]

    # TODO: loop once over GDF and create markers, polygons, popups and tooltips

    for row_label, row in gdf.iterrows():
        a = 1
        _m = [row.geometry.centroid.y, row.geometry.centroid.x]
        folium.Marker(
            _m,
            icon=folium.Icon(color=get_aval_color(row))).add_to(marker_cluster)

    # Add marker cluster to map
    marker_cluster.add_to(ava_map)

    folium.LayerControl().add_to(ava_map)
    ava_map.save(out)
    print('Open map: {0}'.format(out))
def plot_map(datos):
    """[summary]

    Parameters
    ----------
    datos : [type]
        [description]
    """


    with open('Andalucia_GeoJSON.geojson',encoding="utf-8") as f:
        geo = json.load(f, encoding="utf-8")

    ## Se corrige un pequeño fallo con la tilde de Almería

    geo['features'][0]['properties']['texto']='Almería'


    m = folium.Map(location=[37, -4.8], zoom_start=6.5)
    
    folium.Choropleth(
        geo_data=geo,
        name='choropleth',
        data=datos,
        columns=['Territorio','Nuevos casos'],
        key_on='feature.properties.texto',
        fill_color='YlOrRd',
        fill_opacity=0.7,
        line_opacity=0.2,
        ## Nota: Fernando sabe de sobra que Hernández lleva tilde, pero el decode de Folium da problemas
        legend_name ='Created by: Francisco Alonso').add_to(m)
    
    folium.LayerControl().add_to(m)
    
    ## Cádiz
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([36.5, -6.1], popup='<h3> C&aacutediz: </h3>'+'<p>'+str(datos[datos.Territorio == 'Cádiz']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Cádiz']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Cádiz']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Cádiz']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Cádiz']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
        
    ## Sevilla
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([37.3, -5.9], popup='<h3> Sevilla: </h3>'+'<p>'+str(datos[datos.Territorio == 'Sevilla']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Sevilla']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Sevilla']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Sevilla']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Sevilla']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
        
    ## Huelva
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([37.6, -6.8], popup='<h3> Huelva: </h3>'+'<p>'+str(datos[datos.Territorio == 'Huelva']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Huelva']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Huelva']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Huelva']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Huelva']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
        
    ## Córdoba
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([37.8, -4.7], popup='<h3> C&oacute;rdoba: </h3>'+'<p>'+str(datos[datos.Territorio == 'Córdoba']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Córdoba']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Córdoba']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Córdoba']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Córdoba']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
    
    ## Jaén
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([37.7, -3.7], popup='<h3> Ja&eacute;n: </h3>'+'<p>'+str(datos[datos.Territorio == 'Jaén']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Jaén']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Jaén']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Jaén']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Jaén']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
    
    ## Málaga
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([36.8, -4.5], popup='<h3> M&aacute;laga: </h3>'+'<p>'+str(datos[datos.Territorio == 'Málaga']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Málaga']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Málaga']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Málaga']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Málaga']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
    
    ## Granada
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([37.1, -3.5], popup='<h3> Granada: </h3>'+'<p>'+str(datos[datos.Territorio == 'Granada']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Granada']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Granada']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Granada']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Granada']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
    
    ## Almería
    icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
    icon = folium.CustomIcon(
    icon_image,
    icon_size=(30, 30),
    icon_anchor=(15, 15),
    popup_anchor=(0.1, -0.1))
    folium.Marker([37, -2.3], popup='<h3> Almer&iacute;a: </h3>'+'<p>'+str(datos[datos.Territorio == 'Almería']['Fecha'].tolist()[0])[:-9]+'</p>'\
                +'<p> Nuevos casos: '+str(datos[datos.Territorio == 'Almería']['Nuevos casos'].tolist()[0])+'</p>'\
                +'<p> Hospitalizados: '+str(datos[datos.Territorio == 'Almería']['Hospitalizados'].tolist()[0])+'</p>'\
                +'<p> UCI: '+str(datos[datos.Territorio == 'Almería']['UCI'].tolist()[0])+'</p>'\
                +'<p> Fallecidos: '+str(datos[datos.Territorio == 'Almería']['Fallecidos'].tolist()[0])+'</p>',
                icon=icon).add_to(m)
    
    folium_static(m)
Beispiel #9
0
import folium
from flask import render_template




temp = render_template('choser.html')

p = folium.Popup(html=temp, parse_html=True)

a = folium.Marker(icon=folium.CustomIcon('Qww.png', ), location=[49, 24], popup=p)

m = folium.Map()

m.add_child(a)

m.save('123.html')
                'https://www.cwb.gov.tw/V7/images/wind_icon/SSW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/SW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/WSW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/W.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/WNW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/NW.gif',
                'https://www.cwb.gov.tw/V7/images/wind_icon/NNW.gif']

station=folium.FeatureGroup(name="環保署",show = False)
for i in(range(16)):
    station.add_child(
folium.Marker(
                                        location=[df1['Latitude'][i],df1['Longitude'][i]],
                                        popup=("<b>NAME:</b> {NAME}<br>""<b>PM2.5:</b> {PM25}<br>""<b>TIME:</b> {TIME}<br>")
                                                .format(NAME=str(df1['SiteName'][i]),PM25=str(df1['PM2.5'][i]),TIME=str(times[21:36])),
                                        icon=folium.CustomIcon(epa_icon_url,icon_size=(23,23))  # Creating a custom Icon
                                      )
                      )

station2=folium.FeatureGroup(name="風力",show = False)
for j in(range(30)):
            if wind['Wind direction'][j]=='北':
                 x=0;
            elif wind['Wind direction'][j]=='北北東':
                 x=1;
            elif wind['Wind direction'][j]=='東北':
                 x=2;
            elif wind['Wind direction'][j]=='東北東':
                 x=3;
            elif wind['Wind direction'][j]=='東':
                 x=4;
Beispiel #11
0
        'spiderfyOnMaxZoom': False,
        'disableClusteringAtZoom': 13
    })

# Create marker for each pub in pub dictionary
for pub, details in pubs_visited.items():
    # Define marker variables
    name = pub
    coordinates = details[0]
    insta_post = details[1]
    website = details[2]
    directions = details[3]

    # Create custom icon with beer glass
    custom_icon = folium.CustomIcon(beerGlass_img,
                                    icon_size=(35, 35),
                                    popup_anchor=(0, -22))
    # Define html inside marker pop-up
    pub_html = folium.Html(
        f"""<p style="text-align: center;"><b><span style="font-family: Didot, serif; font-size: 18px;">{name}</b></span></p>
    <p style="text-align: center;"><iframe src={insta_post}embed width="220" height="270" frameborder="0" scrolling="auto" allowtransparency="true"></iframe>
    <p style="text-align: center;"><a href={website} target="_blank" title="{name} Website"><span style="font-family: Didot, serif; font-size: 14px;">{name} Website</span></a></p>
    <p style="text-align: center;"><a href={directions} target="_blank" title="Directions to {name}"><span style="font-family: Didot, serif; font-size: 14px;">Directions to {name}</span></a></p>
    """,
        script=True)

    # Create pop-up with html content
    popup = folium.Popup(pub_html, max_width=220)
    # Create marker using instance of custom_icon and popup.
    custom_marker = folium.Marker(location=coordinates,
                                  icon=custom_icon,
Beispiel #12
0
    name='choropleth',
    data=Andalucia_LastDate,
    columns=['Territorio', 'Nuevos casos'],
    key_on='feature.properties.texto',
    fill_color='YlOrRd',
    fill_opacity=0.7,
    line_opacity=0.2,
    ## Nota: Fernando sabe de sobra que Hernández lleva tilde, pero el decode de Folium da problemas
    legend_name='Created by: Francisco Alonso y Fernando Hernandez.').add_to(m)

folium.LayerControl().add_to(m)

## Cádiz
icon_image = "https://www.flaticon.es/premium-icon/icons/svg/3334/3334018.svg"
icon = folium.CustomIcon(icon_image,
                         icon_size=(30, 30),
                         icon_anchor=(15, 15),
                         popup_anchor=(0.1, -0.1))
folium.Marker([36.5, -6.1],
              popup='<h3> C&aacutediz: </h3>' + '<p>' +
              str(Andalucia_LastDate[Andalucia_LastDate.Territorio == 'Cádiz']
                  ['Fecha'].tolist()[0])[:-9] + '</p>' + '<p> Nuevos casos: ' +
              str(Andalucia_LastDate[Andalucia_LastDate.Territorio == 'Cádiz']
                  ['Nuevos casos'].tolist()[0]) + '</p>' +
              '<p> Hospitalizados: ' +
              str(Andalucia_LastDate[Andalucia_LastDate.Territorio == 'Cádiz']
                  ['Hospitalizados'].tolist()[0]) + '</p>' + '<p> UCI: ' +
              str(Andalucia_LastDate[Andalucia_LastDate.Territorio == 'Cádiz']
                  ['UCI'].tolist()[0]) + '</p>' + '<p> Fallecidos: ' +
              str(Andalucia_LastDate[Andalucia_LastDate.Territorio == 'Cádiz']
                  ['Fallecidos'].tolist()[0]) + '</p>',
              icon=icon).add_to(m)