Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
    Many thanks!
    Relatedly (forgot to mention as third q above) - is there a parameter to adjust legend positions for choropleth maps? I see they run horizontally across the top of the map, but what if I want it vertically down one side of the window? Or even a minimizable option, similar to layer controls feature?
    M Powers
    I know that a CRS representation changed between geopandas 0.6.1 and 0.7, and that folium 0.11.0 made changes (#1251) to support this. Question: is folium 0.11.0 backwards-compatible for geopandas 0.6.1, or must I upgrade to 0.7? (it seems that I can only do so with conda via the conda-forge channel, which will also change many of the dependent packages to conda-forge. I'm reluctant to do that if not necessary.)
    Here are some specific messages from the issue I am trying to work through:
    gdf.crs  # gdf created via gpd.read_file()
    {'init': 'epsg:4326'}
    folium.GeoJson(gdf, name='gdf test').add_to(test_map)
    RuntimeError                              Traceback (most recent call last)
    <ipython-input-24-268ce60b1d50> in <module>
    ---> 36 folium.GeoJson(gdf, name='gdf test').add_to(test_map)
    . . . 
    S:\MDP\Programs\Anaconda3\lib\site-packages\pyproj\__init__.py in __new__(self, projparams, preserve_units, **kwargs)
        360         # on case-insensitive filesystems).
        361         projstring = projstring.replace('EPSG','epsg')
    --> 362         return _proj.Proj.__new__(self, projstring)
        364     def __call__(self, *args, **kw):
    _proj.pyx in _proj.Proj.__cinit__()
    RuntimeError: b'no arguments in initialization list'
    M Powers
    (... or maybe my problem is something else altogether...)
    M Powers
    Update: upgrading pyproj to 2.6.1 did the trick (although FutureWarnings are still produced. Presumably these would go away with geopandas 0.7.)
    Yves Moisan
    Hello all. I'm trrying to get a popup on a GeoJson layer. I can get a tooltip allright that fetches the fields in the GeoJSON attribute elements, but I can't get a popup with that information. Using 0.11. I thought popups behaved kind of like tooltips, e.g. folium.GeoJson(img_centroids, name="Centroïdes d'images", tooltip = tooltip, popup = popup) but whatever way I create my popup object does nothing. Pointers appreciated. TIA
    @ymoisan you asked for some guideline. NOT sure if it works as it is between triple quotes lol But If I kept it is for some good reason ya ll tell
        fg = folium.FeatureGroup(name="tiles")
        with open(geojson_file) as geojson:
            tileDic = json.load(geojson)
        for feature in tileDic['features']:
            coords = [[y,x] for i in feature['geometry']['coordinates'] for x,y in i ]
            tileId = feature['properties']['tile_id']
    Yves Moisan
    @rupestre-campos : thank you for your answer. I ended up monkey patching the code with a code bit I found in a PR. I have two remaining issues, if anyone has pointers :
    1) when I click on a Search result (plugins.Search) I defined a search_zoom and all works fine; however I can't get rid of the red circle that appears on the map; luckily, only the last search item red circle remains but still that is bothersome, especially since the circle doesn't scale so it's always apparent on the map, whatever zoom level
    2) I built a MarkerCluster Layer to manually loop through my folium.GeoJson object to build specific icons as a function of one attribute; I didn't find the way to do it in the GeoJson layer; so I tried pointing the Search box to that MarkerCluster Layer; the search box shows up, but searching never ends; so I pointed the Search control to the original GeoJson object and that works. Problem is, I have to add the GeoJson layer to my map. Even having the layer defined won't let me use the search on it. I have to add_to map. That destroys the nice clusters (in fact it goes on top of clusters) so I thought how can I set visibility to "off". control=False in the layer gets rid of it in the LayerControl object, but I can't tell the layer not to draw itself.
    Pointers appreciated. TIA
    Yves Moisan
    Erratum : show=False works on GeoJson layers
    I'd be happy if there was a "previous zoom" and/or "home" button. Thanx for this awesome library !|
    Hi everyone,
    I'm Trying to use features.GeoJson Tooltip to add a tooltip which will show about 30 different information from geoJson file.
    Is there anyway to make the tooltip into 2 or more columns?
    Currently it only shows all of them in single column
    Hi guys, I am trying to add some latex symbols to the choropleth legend. I tried the way of matplotlib (r'$ $') but it does not work. I am wondering is there any way to do this?
    Thank you.
    Tom Mueller

    I would like to publish information from an ArcGIS MapServer to Folium. I had some It looks like that can be done if a given api is configured to create tiles, but many are not. My first question is, does anyone know if this is possible?
    Some ArcGIS MapServer services are published in the WMS format but these are relative few. I tried to configure the api listed below as a Folium “wms_layer” but I am getting a driver error (also listed below). Anyone know if this is even possible?

    m.add_wms_layer(wms_name="Census Current (2020) WMS",wms_url="https://tigerweb.geo.census.gov/arcgis/services/TIGERweb/tigerWMS_Current/MapServer/WMSServer",
    wms_layers='2010 Census Public Use Microdata Areas Labels')

    DriverError: D:\Dev\APS\aps\data\satskred\AvalDet_20190101_051134_ref_20181226_trno_095_VV\AvalDet_20190101_051134_ref_20181226_trno_095_VV.shp\AvalDet_20190101_051134_ref_20181226_trno_095_VV.shp: No such file or directory

    2 replies
    Michele Gentili
    Hi everyone! Does someone know how to change Icon color in the geoJson dictionary when defining the points? Also how tom add a popup for those points. I saw how to do it with Marker, but then I cannot add a Search Bar! Thanks in advance. Here some code to play with:
    import folium
    from folium import features
    m = folium.Map([ 45.75345246,12.34117475], zoom_start=7)
    points_ = {'type': 'FeatureCollection',
     'features': [{'type': 'Feature',
       'properties': {'Codice': 500732, 'Categoria': 'D1', 'Cluster': 3},
       'geometry': {'type': 'Point', 'coordinates': [12.34117475, 45.75345246]},
       'id': '0'},
      {'type': 'Feature',
       'properties': {'Codice': 500732, 'Categoria': 'A2', 'Cluster': 3,'iconColor':'red'},
       'geometry': {'type': 'Point', 'coordinates': [14.34117475, 46.75345246]},
       'id': '1'}]}
    pp = folium.Popup("hello",fields=['Codice'])
    ic = features.Icon(iconColor="red")
    gj = folium.GeoJson(points_)#, tooltip=tooltip)
    Maarten van der Hoef
    Hi Everyone, my map control has a huge line as i'm using mapbox with a manual http url.. Is there something possible here, I personally would love to hide the whole radio, happy with all suggestions! TIA.
    Hi everyone, Just wondering is there any way to plot markers on a specific date on a TimeSliderChoropleth map at all? Trying to plot a marker on a specific date and then removing it after that date has been passed on the slider. Any advice welcome!
    Hi all. I'm new both to Github and to Gitter and I hope that my help request will not be a problem.
    Just in case someone reads...
    Afternoon y'all. Wondering if any folks on here know how to add hyperlinks to a local directory file on the folium.html option. I'm trying to figure out how to add a hyperlink to a plotly chart and iterate by index position
    Hi is there a way to add a symbol/marker to the center of the widget?
    I wand to mark the center for a moving map application.

    Hi is there a way to add a symbol/marker to the center of the widget?
    I wand to mark the center for a moving map application.

    Could you use the centroid? I loaded data into a GeoDataFrame and then it's easy to determine the center geocode:

    for index, row in df.iterrows():
    centroid = row.geometry.centroid


    Hi everyone. I've joined this Gitter in the hope of finding some active community that uses Folium. I just started using it this month.

    Can anyone share guidance on how to create 'labels' for folium.features.GeoJson? I have a lot of small polygons that I want to permanently label and the tooltip/popups are not working well for my use-case.

    I've been driving myself insane trying to come up with a solution. The main challenge I have is that all the labels resize with the map. I do not want this; I want a fixed size in meters.

    1) Tried using HTML in the DivIcon of a Marker. This works and I can create labels but they resize on zoom.

    2) I've tried permanent popups (permanent=True) on folium.GeoJsonTooltip. Same issue, the tooltip is resizing.

    3) I've even created custom text images using Python Image Library (PIL) to create PNG files that I add in using ImageOverlay. This is not resizing the images (yay) but several implementation issues: (i) the images are pixelated, the quality is poor, (ii) I am generating a lot of images (several hundred), and (iii) I want to size the labels depending on the polygon size; I want every label to stay inside its polygon but be as large as possible.

    The only element I can find in Folium that isn't resizing is folium.Circle.

    Thanks for anyone who can help me out. I can't help but feel I am missing obvious as labeling feels like it should be a basic requirement.



    I am trying to plot some data using folium maps.
    Below is my python code and a screenshot(1st image).

        india_coord = [lat,long]
        my_map = folium.Map(location = india_coord,zoom_start=5,tiles=None,overlay=False)
        feature_group = folium.FeatureGroup(name='Central Region',overlay=True)
        feature_group2 = folium.FeatureGroup(name='South Region',overlay=True)
        feature_group3 = folium.FeatureGroup(name='East Region',overlay=True)
        feature_group4 = folium.FeatureGroup(name='West Region',overlay=True)
        feature_group5 = folium.FeatureGroup(name='North Region',overlay=True)
        c1 = folium.Choropleth(
            geo_data = india,
            name = 'India',
            legend_name = 'India',
            fill_color = 'orange',
            fill_opacity = 0.3,
            highlight = True).add_to(my_map)
        folium.TileLayer('openstreetmap',overlay=False,name = f'SUMMARY {summ_date}').add_to(my_map)
        folium.Marker(location,tooltip = data1,popup = popup, icon=folium.Icon(color='cadetblue',icon = 'fa-industry', prefix='fa')).add_to(feature_group)
        folium.Marker(location,tooltip = data1,popup = popup, icon=folium.Icon(color='cadetblue',icon = 'fa-industry', prefix='fa')).add_to(feature_group5)

    With this code I get the map above but I need to make another layer control option for another summary.
    For ex. if I add another


    to my code I get the following(2nd Image):

    But this layer control has the same options as the above summary.
    Is there a way in folium to create different layer controls with different data on the same map so that If I am selecting the first summary in the first layer control I get the data like in image1 but if I choose the below layer control the data is displayed according to that particular layer control.
    How do I link different data with different layer control to view them on the same map.
    Thank you

    Image 1


    Image 2


    Wilson Cheung
    Hello Folium community, I am a new member recently using folium to build out a map visualization as a side project. I am wondering if there is any status update on this issue: python-visualization/folium#1007. I find myself needing this capability to visualize raster data on the world map with temporal settings. Is there an alternate solution relying on the currently supported capabilities that folium has? Thanks!
    Hello, I am exploring the capabilities of folium and want to see if anyone knows about this:
    When making marker clusters in folium I want to prevent the map from creating subclusters (shown below) when zooming in.
    I want only the main cluster (shown below) to display until it is zoomed in far enough to display each individual marker. Is there a way to do this?
    Here is a simplified example of the code I am using
    import pandas as pd
    import folium
    from folium.plugins import MarkerCluster
    import shapely.wkt
    data = pd.read_csv('crops.csv', index_col='UniqueID')
    field = data.iloc[50, :]
    pgon = shapely.wkt.loads(field['geometry'])
    coords = [[j,i] for i,j,k in list(pgon.exterior.coords)]
    mmap = folium.Map(location = coords[0], zoom_start = 20)
    Thank you in advance!
    Vedant S Goyal

    Hi community. I have question related to selecting a feature object after using a search. I want to highlight the searched feature, so that it is selected. Here is my code.
    from folium.plugins import Search
    search_link = Search(layer=pct_feature_group, geom_type="LineString", placeholders = "Search for Link ID",
    collapsed="True", search_label = 'id', search_zoom = 17, position='topleft',


    How should I insert the highlight_function?

    Jeremy Mathew
    Hi , I am using "folium.Map(location, zoom_start=14)" in python script. I need web address followed by the library because I have a firewall and I want to give permission for this lib . For first step , I give an access permission for "www.openstreetmap.org" but I coulnd'nt see any map on the script.
    Chris Hoina
    Hi all. I'm working on a project for work to demo our APIs with folium. And I can't seem to find the answer anywhere. For markers, I know that I have to indicate the lat/long coordinates. But when I try to add a vega-lite chart (doing this with Altair), I can't seem to figure out how to inform the marker as to which chart goes in which popup. I have one API coming for lat/long and the name of the location. And I have another API coming in that provides the data to populate the chart. They do share a unique ID, but I'm not sure how to go about this. Has anybody on here faced a similar scenario? Thanks!
    João Martins | Spatial Data Scientist | MSc Env. Eng.

    Hi everyone, Just wondering is there any way to plot markers on a specific date on a TimeSliderChoropleth map at all? Trying to plot a marker on a specific date and then removing it after that date has been passed on the slider. Any advice welcome!

    I've got this very same question, but can simplify it by asking one that might be simpler to answer:

    • How may I retrieve the date output from TimeSliderChoropleth (current date in the slider)?
    João Martins | Spatial Data Scientist | MSc Env. Eng.
    Hello all, I'm a folium fan, and trying to grok how the templates fit together with the Python code. When I look at a template like https://github.com/python-visualization/folium/blob/main/folium/templates/tiles/openstreetmap/tiles.txt I see what looks like the contents of a Python f-string with four variables: s, x, y, and z. Where in the Python code are these template f-strings invoked, so I can see how these variables are populated?
    1 reply
    Victor Cubas
    4.jpg Can anyone help me how to edit position of all markers from featuregroup once you clic on "edit"???
    Is anyone using the new "GroupedLayerControl" folium plugin and managed to group raster layers (e.g: google earth engine layers) instead of just vector layers (markers, polygons from geojson ...etc)?