Skip to content

foliummap module

Map (Map)

Source code in mapdemo/foliummap.py
class Map(folium.Map):

    def __init__(self, center=[20, 0], zoom= 2, **kwargs):
        super().__init__(location=center, zoom_start=zoom , **kwargs)


    def add_raster(self, data, name="raster", **kwargs):
        """Add raster layer to the map using tileserver 

        Args:
            data (_type_): Raster data
            name (str, optional): Name of the raster layer. Defaults to "raster".
            zoom_to_layer (bool, optional): zoom to the layer which one added. Defaults to True.

        Raises:
            ImportError: package not found
        """
        try:
            from localtileserver import TileClient, get_folium_tile_layer
        except ImportError:
            raise ImportError("please install the localtileserver package")

        client =TileClient(data)
        layer=get_folium_tile_layer(client, name=name, **kwargs)
        layer.add_to(self)

    def add_tile_layer(self, url, name, attribution="custom tile",**kwargs):
        """Add a tile layer to the map

        Args:
            url (_type_): url of the layer
            name (_type_): _descrName of the layer added to the layeription_
            attribution (str, optional): _description_. Defaults to "custom tile".
        """        
        layer = folium.TileLayer(tiles=url, name=name, attr=attribution, **kwargs)
        layer.add_to(self)

    def add_basemap(self, name, overlay=True,**kwargs):
        """Adds a basemap to the current map

        Args:
            name (_type_): The name of the basemap as a string, or an object
        """
        if isinstance(name, str):
            try:
                provider = basemaps
                for part in name.split("."):
                    provider = getattr(provider, part)

                url = provider.build_url()
                attribution = provider.attribution

                # Add the provider as a TileLayer
                layer = folium.TileLayer(tiles=url, name=name,attr=attribution, **kwargs)
                layer.add_to(self)
            except Exception as e:
                raise ValueError(f"Basemap '{name}' not found: {e}")        
        else:
            name.add_to(self)


    def to_streamlit(self, width=700, height=500):
        """_summary_

        Returns:
            _type_: _description_
        """
        from streamlit_folium import folium_static
        return folium_static(self, width=width, height=height)


    def add_layer_control(self):
        """Add a layer control to the map

        """
        folium.LayerControl().add_to(self)

add_basemap(self, name, overlay=True, **kwargs)

Adds a basemap to the current map

Parameters:

Name Type Description Default
name _type_

The name of the basemap as a string, or an object

required
Source code in mapdemo/foliummap.py
def add_basemap(self, name, overlay=True,**kwargs):
    """Adds a basemap to the current map

    Args:
        name (_type_): The name of the basemap as a string, or an object
    """
    if isinstance(name, str):
        try:
            provider = basemaps
            for part in name.split("."):
                provider = getattr(provider, part)

            url = provider.build_url()
            attribution = provider.attribution

            # Add the provider as a TileLayer
            layer = folium.TileLayer(tiles=url, name=name,attr=attribution, **kwargs)
            layer.add_to(self)
        except Exception as e:
            raise ValueError(f"Basemap '{name}' not found: {e}")        
    else:
        name.add_to(self)

add_layer_control(self)

Add a layer control to the map

Source code in mapdemo/foliummap.py
def add_layer_control(self):
    """Add a layer control to the map

    """
    folium.LayerControl().add_to(self)

add_raster(self, data, name='raster', **kwargs)

Add raster layer to the map using tileserver

Parameters:

Name Type Description Default
data _type_

Raster data

required
name str

Name of the raster layer. Defaults to "raster".

'raster'
zoom_to_layer bool

zoom to the layer which one added. Defaults to True.

required

Exceptions:

Type Description
ImportError

package not found

Source code in mapdemo/foliummap.py
def add_raster(self, data, name="raster", **kwargs):
    """Add raster layer to the map using tileserver 

    Args:
        data (_type_): Raster data
        name (str, optional): Name of the raster layer. Defaults to "raster".
        zoom_to_layer (bool, optional): zoom to the layer which one added. Defaults to True.

    Raises:
        ImportError: package not found
    """
    try:
        from localtileserver import TileClient, get_folium_tile_layer
    except ImportError:
        raise ImportError("please install the localtileserver package")

    client =TileClient(data)
    layer=get_folium_tile_layer(client, name=name, **kwargs)
    layer.add_to(self)

add_tile_layer(self, url, name, attribution='custom tile', **kwargs)

Add a tile layer to the map

Parameters:

Name Type Description Default
url _type_

url of the layer

required
name _type_

descrName of the layer added to the layeription

required
attribution str

description. Defaults to "custom tile".

'custom tile'
Source code in mapdemo/foliummap.py
def add_tile_layer(self, url, name, attribution="custom tile",**kwargs):
    """Add a tile layer to the map

    Args:
        url (_type_): url of the layer
        name (_type_): _descrName of the layer added to the layeription_
        attribution (str, optional): _description_. Defaults to "custom tile".
    """        
    layer = folium.TileLayer(tiles=url, name=name, attr=attribution, **kwargs)
    layer.add_to(self)

to_streamlit(self, width=700, height=500)

summary

Returns:

Type Description
_type_

description

Source code in mapdemo/foliummap.py
def to_streamlit(self, width=700, height=500):
    """_summary_

    Returns:
        _type_: _description_
    """
    from streamlit_folium import folium_static
    return folium_static(self, width=width, height=height)