Streamlit Component for rendering Folium maps

Overview

streamlit-folium

Run tests each PR

Open in Streamlit

This Streamlit Component is a work-in-progress to determine what functionality is desirable for a Folium and Streamlit integration. Currently, one method folium_static() is defined, which takes a folium.Map or folium.Figure object and displays it in a Streamlit app.

Installation

pip install streamlit-folium

or

conda install -c conda-forge streamlit-folium

Example

import streamlit as st
from streamlit_folium import folium_static
import folium

"# streamlit-folium"

with st.echo():
    import streamlit as st
    from streamlit_folium import folium_static
    import folium

    # center on Liberty Bell
    m = folium.Map(location=[39.949610, -75.150282], zoom_start=16)

    # add marker for Liberty Bell
    tooltip = "Liberty Bell"
    folium.Marker(
        [39.949610, -75.150282], popup="Liberty Bell", tooltip=tooltip
    ).add_to(m)

    # call to render Folium map in Streamlit
    folium_static(m)

"streamlit_folium example"

Comments
  • Map flickering

    Map flickering

    I am trying to add some Google Earth Engine layers (XYZ tile layers) to the map. You can see that the layers have been added successfully, but the map keeps refreshing. Any advice?

    import ee
    import geemap.foliumap as geemap
    import streamlit as st
    from streamlit_folium import st_folium
    
    m = geemap.Map()
    dem = ee.Image("USGS/SRTMGL1_003")
    m.addLayer(dem, {}, "DEM")
    st_data = st_folium(m, width=1000)
    

    Peek 2022-05-07 22-25

    To test it in a notebook:

    import ee
    import geemap.foliumap as geemap
    
    m = geemap.Map()
    dem = ee.Image("USGS/SRTMGL1_003")
    m.addLayer(dem, {}, "DEM")
    m
    
    opened by giswqs 13
  • Returning Latitude, Longitude values from folium map on mouse click to python script (streamlit webapp)

    Returning Latitude, Longitude values from folium map on mouse click to python script (streamlit webapp)

    I am writing a webapp where the user will click on the map and the latitude, longitude will be returned to the python script. the webapp is written on streamlit and for the map I am using folium. Currently, I used folium.LatLngPopup() to get the on click lat long of the clicked location, but I am very confused how to retrieve the values in my python script for further processing.

    This is how it looks currently:

    [This is how it looks currently]1

    #code snippet

    import streamlit as st
    from streamlit_folium import folium_static
    import folium
    m = folium.Map()
    m.add_child(folium.LatLngPopup())
    folium_static(m)
    

    There might not be a native solution to it but any workaround will be appreciated!

    opened by hasantanvir79 8
  • st_folium() autorefresh issue

    st_folium() autorefresh issue

    I recently switched from using folium_static() to st_folium() but I have an issue with its autorefresh. Whenever the folium map is interacted with, the website refreshes from the very top of the page. My project involves scraping data from a website, so anytime the page refreshes, all the code runs again. This makes it virtually impossible to interact with the map. Below is the streamlit app and code

    Code (code for map beings on line 248): https://github.com/daniyal-d/COVID-19-Tracker-Web-App/blob/main/coronavirus_web_app.py Streamlit app (using st_folium): https://daniyal-d-covid-19-tracker-web-app-coronavirus-web-app-fah46j.streamlitapp.com/

    I am unsure if this is an issue with my code or the function. Either way, using folium_static() doesn't lead to any issues. If this problem can't be solved, would you be able to not depreciate 'folium_static()` as the app uses it?

    Thank you

    opened by daniyal-d 7
  • Use Folium attribute selection to populate ST controls

    Use Folium attribute selection to populate ST controls

    Hi Randy. I have created a user story for a use case I have which is to use information from selected features in a specific map layer to populate ST controls. An example : populating an image list in a ST dropdown with the currently visible (or selected) features on a given layer in the map.

    I'd like to work on a PR for that and wondered if you had thoughts or plans along those lines. Here is the (short) document : https://github.com/ymoisan/streamlit-folium/blob/master/user-stories.md. Comments welcome. Thanx for the component !

    opened by ymoisan 7
  • Caching Folium Maps

    Caching Folium Maps

    Hello everyone!

    In the meanwhile, that we start making a bidirectional component with javascript, I was wondering how caching Folium Maps.

    I have created this example for the purpose of it:

    import streamlit as st
    import folium
    import pandas as pd
    import streamlit.components.v1 as components
    import numpy as np
    
    def create_test_df():
        data = {"id": range(10000),
                "year": np.random.choice(range(2018, 2021), 10000),
                "type": np.random.choice(["type_a", "type_b", "type_c"], 10000),
                "latitude": np.random.uniform(low=10, high=20, size=10000),
                "longitude": np.random.uniform(low=10, high=20, size=10000)}
    
        # Respects order
        return pd.DataFrame(data, columns=["id", "year", "type", "latitude", "longitude"])
    
    
    def _plot_dot(point, map_element, color_col, radius=4, weight=1, color='black'):
        color_dict = {2018: "blue", 2019: "orange", 2020: "red"}
    
        folium.CircleMarker(location=[point["latitude"], point["longitude"]], radius=radius, weight=weight,
                            color=color, fill=True,
                            fill_color=color_dict[point[color_col]],
                            fill_opacity=0.9,
                            tooltip=f'<b>id: </b>{str(point["id"])}'
                                    f'<br></br>'f'<b>year: </b>{str(point["year"])}'
                                    f'<br></br>'f'<b>type: </b>{str(point["type"])}',
                            popup=f'<b>id: </b>{str(point["id"])}'
                                  f'<br></br>'f'<b>year: </b>{str(point["year"])}'
                                  f'<br></br>'f'<b>type: </b>{str(point["type"])}'
                            ).add_to(map_element)
    
    
    def generate_map(df):
        map_element = folium.Map(location=[15, 15], zoom_start=6, tiles='cartodbpositron')
    
        df.apply(_plot_dot, axis=1, args=[map_element, "year"])
    
        return map_element
    
    
    def folium_static(fig, width=700, height=500):
        if isinstance(fig, folium.Map):
            fig = folium.Figure().add_child(fig)
    
        return components.html(fig.render(), height=(fig.height or height) + 10, width=width)
    
    
    if __name__ == "__main__":
        st.title("Caching Folium Maps")
    
        df = create_test_df()
    
        option = st.selectbox('Select year?', df['year'].unique())
        st.write('You selected: ', option)
    
        dict_years = {}
        for year in df['year'].unique():
            dict_years[year] = generate_map(df[df["year"] == year])
    
        folium_static(dict_years[option])
    

    This code runs correctly: 1

    I had tried to @st.cache functions with no positive results: Capture

    I understand that I must get deeper into advanced caching (https://docs.streamlit.io/en/stable/advanced_caching.html). Any guidelines about this are welcome.

    enhancement question 
    opened by juancalvof 7
  • Editing+Saving modified drawn layer does not update geometry

    Editing+Saving modified drawn layer does not update geometry

    Thanks a lot for this great library!

    I'm using streamlit-folium in mapa-streamlit and I believe we have found a bug.

    Observed Behavior

    When drawing a rectangle on the folium map, the streamlit app "Running" mode seems to get triggered whenever the rectangle was finished drawing. I can then access the resulting geojson geometry of the rectangle. That is expected and in line with the desired behavior. However, if I now were to edit the drawn rectangle using the "Edit layers" button (see below picture), the streamlit "running" mode does not get triggered when I click on "Save". At the same time, if I inspect the given geojson geometry, it is still the same and did not get updated to the modified geometry.

    Desired Behavior

    Updating a drawn layer (e.g. a rectangle) using the edit button updates the output of st_folium.

    Picture for reference: Screenshot 2022-04-10 at 10 59 53

    opened by fgebhart 6
  • Render <class 'branca.element.Figure'> to allow resizing without white space

    Render to allow resizing without white space

    Hey @randyzwitch , thank you for providing this component, it's been very useful.

    The only issue so far is that reducing folium width/height produces white space on the borders:

    import folium
    m = folium.Map(width='70%', height='50%')
    m
    

    The solution is to use branca.element.Figure class:

    from branca.element import Figure
    fig = Figure(width='70%', height='50%')
    m = folium.Map()
    fig.add_child(m)
    

    However, your component currently is not able to render it. Could you please enable that or suggest a workaround?

    opened by GitHunter0 6
  • Add DualMap support

    Add DualMap support

    Streamlit-folium component now supports also DualMap from Folium plugins.

    • Add switch in streamlit-folium __init__.py to properly handle DualMap rendering

    • Update app example adding DualMap

    opened by a-slice-of-py 6
  • Feature request: return map bounds to streamlit

    Feature request: return map bounds to streamlit

    I have a pandas dataframe that contains the lat/lon location of a bunch of markers (plus other data) and am displaying that when a pin is clicked on via a popup, with the map generated by:

    import folium
    from folium import IFrame
    import pandas as pd
    
    df = pd.read_csv("my.csv")
    
    location = df['latitude'].mean(), df['longitude'].mean()
    m = folium.Map(location=location, zoom_start=15)
    
    width = 900
    height = 600 
    fat_wh = 1 # border around image
    
    for i in range(0, len(df)):
        html = pd.DataFrame(df[["latitude", "longitude", "time"]].iloc[i]).to_html()
        iframe = IFrame(html, width=width*fat_wh, height=height*fat_wh)
        popup  = folium.Popup(iframe, parse_html = True, max_width=2000)
        folium.Marker([df['latitude'].iloc[i], df['longitude'].iloc[i]], popup=popup).add_to(m)
    
    folium_static(m)
    

    Now this dataframe may in future get VERY large as it potentially covers the whole world, so I only want to return the markers that are in the current map view, and do some clever aggregation when the map is zoomed out. For this I need to get the extent of the map view coordinates, and use these to filter the dataframe (I probably also want to do some caching somewhere). Can you advise if this is possible/requires a new feature? Many thanks

    opened by robmarkcole 6
  • Controlled data return

    Controlled data return

    Adds an argument for specifying what data gets returned from the bidrectional st_folium via an argument returned_objects. Anything that is not returned does not cause an app return. If you pass an empty list, it returns an empty dictionary. This leads to a simple rewrite of folium_static to simply call st_folium with an empty list of data items to return.

    Also refactored the example app into a MPA and added a page showing the new limited-return functionality.

    e.g. st_folium(m, returned_objects=["last_clicked"]) -- app would only return the last value clicked, and any other map interactions would not change the value returned, or trigger an app rerun.

    Resolves: #85 Resolves: #77

    opened by blackary 5
  • Get zoom level

    Get zoom level

    Is it possible to get the zoom level of a map object? I saw a similar question at https://github.com/python-visualization/folium/issues/1352, but there is no solution.

    opened by giswqs 5
  • Question: can we get more information on

    Question: can we get more information on "last_object_clicked" than 'lat', 'lng'

    Hello,

    Thank you very much for this library. I am wondering if we can get more information from "last_object_clicked" than 'lat', 'lng'? For example, I set a marker with "popup" and "location". When I click on it and generate an output "last_object_clicked", it generates only 'lat' and 'lng'. I would like to also be able to return 'text from popup'. Is that possible? Or maybe some other attributes related to the marker, so that eventually I can identify which marker was clicked.

    Thanks!

    opened by JurijsNazarovs 0
  • Legend of the map is not displayed

    Legend of the map is not displayed

    The legend of my map is not displayed using the st_folium when colorbar= false. The code:

    import pandas as pd
    import folium
    import geopandas as gpd
    import numpy as np
    import mapclassify
    import streamlit as st
    from streamlit_folium import st_folium
    
    url = ("https://raw.githubusercontent.com/python-visualization/folium/master/examples/data")
    state_geo = f"{url}/us-states.json"
    state_unemployment = f"{url}/US_Unemployment_Oct2012.csv"
    
    state_unemployment = pd.read_csv(state_unemployment)
    geoJSON_df = gpd.read_file(state_geo)
    
    geoJSON_df.rename(columns={'id': 'State'}, inplace=True)
    
    gdf = state_unemployment.merge(geoJSON_df, on='State', how='left')
    gdf = gpd.GeoDataFrame(gdf)
    
    bins = mapclassify.Quantiles(gdf['Unemployment'], k=5).bins
    choropleth = gdf.explore(
        column='Unemployment',
        scheme='UserDefined',
        classification_kwds=dict(bins=bins),
        legend=True,
        legend_kwds=dict(colorbar=False),
    )
    
    st_folium(choropleth, width=700,height=500)
    

    Displayed: displayed

    Expected: expected

    opened by MatheusLevy 0
  • Error when I try to add plugins.FloatImage with st_folium

    Error when I try to add plugins.FloatImage with st_folium

    Hi :wave:

    ... and thanks for providing this great addition to streamlit.

    I was wondering: are folium.plugins generally supported? I wanted to add a FloatImage to the canvas (using st_folium) but I get an error:

    .../lib/python3.11/site-packages/streamlit_folium/__init__.py", line 242, in generate_leaflet_string
        leaflet = m._template.module.script(m)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^
    AttributeError: 'TemplateModule' object has no attribute 'script'
    

    I see there's some special magic for the DualMap plugins - so maybe the FloatImage requires some special treatment, too?

    I'm using python 3.11 and streamlit-folium 0.7

    Cheers, C

    opened by cwerner 0
  • Just a question: extract more values based on user click on Draw plugin.

    Just a question: extract more values based on user click on Draw plugin.

    Hi, thanks for this great library. Really helpful!

    btw I am a beginner in the web developing and github as well, I am so sorry if there are some stupidities on my questions.

    I would like to ask, is it possible to return every value of click event?

    At the moment, I am trying to present folium map on Streamlit. I used the st_folium with Draw plugin and then utilized some of its return values. However I would like to go further.

    For instance, I want user to be able comment on a certain feature or a drawn polygon. For that I created a Popup page that contains a html from. I succeeded to attach the form into the GeojsonPopup however I have struggled to find a way to return the comment and not found it yet. Do you have any idea how to solve it?

    Another example regarding clicking event, I would like to get clicking event when a features e.g., a polygon has finished to be created/edited. Is it possible to return a value on that event?

    Thank you for you time.

    Best wishes, Leclab Research Assistance,

    opened by leclab0 0
  • Your app is having trouble loading the streamlit_folium.st_folium component.

    Your app is having trouble loading the streamlit_folium.st_folium component.

    Hi great job on this library it has been invaluable for my project.

    Lately I have been getting this issue Your app is having trouble loading the streamlit_folium.st_folium component. both on the locally hosted and on streamlit share version. I have been doing lots of updates so not sure which change actually kicked this off. I have seem other people have this error with other components so not sure the cause (https://github.com/PablocFonseca/streamlit-aggrid/issues/7).

    If you leave it a minute or so the map will eventually load (and this issue only occurs sometimes). Does anyone have any thoughts?

    opened by thomasdkelly 5
Releases(v0.10.0)
  • v0.10.0(Jan 4, 2023)

    What's Changed

    • Fix bug, isolate string generation, add more tests by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/108
    • Add VectorGrid support by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/109
    • Use playwright to generate functional frontend tests by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/110
    • Try and make tests more reliable by clicking on navigation links twice and checking for page title by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/111

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.9.0...v0.10.0

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Jan 2, 2023)

    What's Changed

    • Update requirements to make examples use 0.8.1 by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/101
    • Add code and test to make sure all references to variables are correctly overwritten with standardized ones… by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/104

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.8.1...v0.9.0

    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Dec 9, 2022)

    What's Changed

    • Bump example by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/99
    • Standardize ids that get assigned to force unnecessary rerunning, and explicitly turn off events for old layers by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/100

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.8.0...v0.8.1

    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(Dec 8, 2022)

    What's Changed

    • Force the example app to use the latest release by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/90
    • Shrink second pane unless using it for DualMap by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/96
    • Dynamic updates by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/97
    • Ignore warnings by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/98

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.7.0...v0.8.0

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Nov 10, 2022)

    What's Changed

    • Controlled data return by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/89

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.15...v0.7.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.15(Aug 31, 2022)

    What's Changed

    • Bump streamlit from 1.8.1 to 1.11.1 in /examples by @dependabot in https://github.com/randyzwitch/streamlit-folium/pull/80
    • Bump streamlit from 1.8.1 to 1.11.1 in /tests by @dependabot in https://github.com/randyzwitch/streamlit-folium/pull/81
    • Support html siblings to the map by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/83

    New Contributors

    • @dependabot made their first contribution in https://github.com/randyzwitch/streamlit-folium/pull/80

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.14...v0.6.15

    Source code(tar.gz)
    Source code(zip)
  • v0.6.14(Jul 6, 2022)

    Fix Draw plugin functionality

    What's Changed

    • Fix all_drawings to get properly populated by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/76

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.13...v0.6.14

    Source code(tar.gz)
    Source code(zip)
  • v0.6.13(May 31, 2022)

    What's Changed

    • Return map center by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/69

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.12...v0.6.13

    Source code(tar.gz)
    Source code(zip)
  • v0.6.12(May 26, 2022)

    Sets default value for bounds, working around an upstream bug in Folium

    What's Changed

    • Dont fail on bounds by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/68

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.11...v0.6.12

    Source code(tar.gz)
    Source code(zip)
  • v0.6.11(May 23, 2022)

    What's Changed

    • Fix google earth engine flickering and cleanup code by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/66

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.10...v0.6.11

    Source code(tar.gz)
    Source code(zip)
  • v0.6.10(May 16, 2022)

    What's Changed

    • Add last drawn circle radius and polygon to output by @sfc-gh-zblackwood in https://github.com/randyzwitch/streamlit-folium/pull/59
    • Fix safari by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/60

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.9...v0.6.10

    Source code(tar.gz)
    Source code(zip)
  • v0.6.9(May 11, 2022)

    Resolves issue where a double-click was required for update

    What's Changed

    • Fix layer-click bug by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/57

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.8...v0.6.9

    Source code(tar.gz)
    Source code(zip)
  • v0.6.8(May 11, 2022)

    Fixes type instability on map load, where the default instantiated value returned a list and component then returns a dict.

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.7...v0.6.8

    Source code(tar.gz)
    Source code(zip)
  • v0.6.7(Apr 25, 2022)

    What's Changed

    • Fix popups and default return by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/49

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.6...v0.6.7

    Source code(tar.gz)
    Source code(zip)
  • v0.6.6(Apr 21, 2022)

    What's Changed

    • Fix popups and default return by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/48

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.5...v0.6.6

    Source code(tar.gz)
    Source code(zip)
  • v0.6.5(Apr 12, 2022)

    What's Changed

    • Update drawn objects on edit and delete by @sfc-gh-zblackwood in https://github.com/randyzwitch/streamlit-folium/pull/42

    New Contributors

    • @sfc-gh-zblackwood made their first contribution in https://github.com/randyzwitch/streamlit-folium/pull/42

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.4...v0.6.5

    Source code(tar.gz)
    Source code(zip)
  • v0.6.4(Mar 21, 2022)

  • v0.6.3(Mar 17, 2022)

    Adds zoom level as one of the properties returned on interaction with st_folium

    What's Changed

    • Get map zoom by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/39

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.6.2...v0.6.3

    Source code(tar.gz)
    Source code(zip)
  • v0.6.2(Feb 18, 2022)

    #34 highlighted that some features weren't working as expected, which was determined to be at least partially due to missing JS dependencies inside the iframe. This release fixes that.

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Feb 15, 2022)

    This release adds bi-directional support via the st_folium function. When calling mapdata = st_folium(m), a dict will be returned back to Python with the bounding box and other click data. Improved documentation will come in a future release as time allows, but you can see the examples folder for ideas of how to use this new functionality.

    What's Changed

    • Make component bidirectional by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/28
    • Fix manifest, bump version by @randyzwitch in https://github.com/randyzwitch/streamlit-folium/pull/29
    • Fix manifest by @randyzwitch in https://github.com/randyzwitch/streamlit-folium/pull/31
    • Add support for getting all drawn objects on the map by @blackary in https://github.com/randyzwitch/streamlit-folium/pull/32

    New Contributors

    • @blackary made their first contribution in https://github.com/randyzwitch/streamlit-folium/pull/28

    Full Changelog: https://github.com/randyzwitch/streamlit-folium/compare/v0.5.0...v0.6.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0a4(Feb 15, 2022)

  • v0.6.0a3(Feb 11, 2022)

    Test of building the bi-directional component and submitting to PyPI.

    USERS SHOULD NOT USE THIS VERSION UNLESS YOU UNDERSTAND WHAT THIS MEANS

    Source code(tar.gz)
    Source code(zip)
  • v0.5.0(Feb 9, 2022)

    Release moves required version of Streamlit >= 1.2 to ensure memory improvements are incorporated, adds Branca rendering, fixes CI by pinning dependencies closer

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(May 17, 2021)

  • 0.3.0(Mar 9, 2021)

  • 0.2.0(Mar 3, 2021)

  • v0.1.1(Feb 5, 2021)

  • v0.1.0(Aug 13, 2020)

  • v0.0.1(Jul 20, 2020)

Owner
Randy Zwitch
Head of Developer Relations at Streamlit. Julia enthusiast, R and Python developer
Randy Zwitch
Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Apoorva Lal 5 May 18, 2022
Enable geospatial data mining through Google Earth Engine in Grasshopper 3D, via its most recent Hops component.

AALU_Geo Mining This repository is produced for a masterclass at the Architectural Association Landscape Urbanism programme. Requirements Rhinoceros (

null 4 Nov 16, 2022
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

null 6k Jan 2, 2023
Google maps for Jupyter notebooks

gmaps gmaps is a plugin for including interactive Google maps in the IPython Notebook. Let's plot a heatmap of taxi pickups in San Francisco: import g

Pascal Bugnion 747 Dec 19, 2022
python toolbox for visualizing geographical data and making maps

geoplotlib is a python toolbox for visualizing geographical data and making maps data = read_csv('data/bus.csv') geoplotlib.dot(data) geoplotlib.show(

Andrea Cuttone 976 Dec 11, 2022
Solving the Traveling Salesman Problem using Self-Organizing Maps

Solving the Traveling Salesman Problem using Self-Organizing Maps This repository contains an implementation of a Self Organizing Map that can be used

Diego Vicente 3.1k Dec 31, 2022
Interactive Maps with Geopandas

Create Interactive maps ??️ with your geodataframe Geopatra extends geopandas for interactive mapping and attempts to wrap the goodness of amazing map

sangarshanan 46 Aug 16, 2022
Google Maps keeps old satellite imagery around for a while – this tool collects what's available for a user-specified region in the form of a GIF.

google-maps-at-88-mph The folks maintaining Google Maps regularly update the satellite imagery it serves its users, but outdated versions of the image

Noah Doersing 111 Sep 27, 2022
prettymaps - A minimal Python library to draw customized maps from OpenStreetMap data.

A small set of Python functions to draw pretty maps from OpenStreetMap data. Based on osmnx, matplotlib and shapely libraries.

Marcelo de Oliveira Rosa Prates 9k Jan 8, 2023
Location field and widget for Django. It supports Google Maps, OpenStreetMap and Mapbox

django-location-field Let users pick locations using a map widget and store its latitude and longitude. Stable version: django-location-field==2.1.0 D

Caio Ariede 481 Dec 29, 2022
Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Wei Ji 20 Nov 24, 2022
Deal with Bing Maps Tiles and Pixels / WGS 84 coordinates conversions, and generate grid Shapefiles

PyBingTiles This is a small toolkit in order to deal with Bing Tiles, used i.e. by Facebook for their Data for Good datasets. Install Clone this repos

Shoichi 1 Dec 8, 2021
Python library to visualize circular plasmid maps

Plasmidviewer Plasmidviewer is a Python library to visualize plasmid maps from GenBank. This library provides only the function to visualize circular

Mori Hideto 9 Dec 4, 2022
Implemented a Google Maps prototype that provides the shortest route in terms of distance

Implemented a Google Maps prototype that provides the shortest route in terms of distance, the fastest route, the route with the fewest turns, and a scenic route that avoids roads when provided a source and destination. The algorithms used were DFS, BFS, A*, and Iterative Depth First Search.

null 1 Dec 26, 2021
Spectral decomposition for characterizing long-range interaction profiles in Hi-C maps

Inspectral Spectral decomposition for characterizing long-range interaction prof

Nezar Abdennur 6 Dec 13, 2022
A simple Streamlit Component to compare images in Streamlit apps. It integrates Knightlab's JuxtaposeJS

streamlit-image-juxtapose A simple Streamlit Component to compare images in Streamlit apps using Knightlab's JuxtaposeJS. The images are saved to the

Robin 30 Dec 31, 2022
Streamlit component to display topics from Streamlit's community forum related to any exception.

streamlit-forum Streamlit component to display topics from Streamlit's community forum related to any exception. Installation pip install streamlit-fo

Snehan Kekre 7 Jul 15, 2022
Streamlit-template - A streamlit app template based on streamlit-option-menu

streamlit-template A streamlit app template for geospatial applications based on

Qiusheng Wu 41 Dec 10, 2022
🌐 Local tile server for viewing geospatial raster files with ipyleaflet or folium

?? Local Tile Server for Geospatial Rasters Need to visualize a rather large (gigabytes) raster you have locally? This is for you. A Flask application

Bane Sullivan 192 Jan 4, 2023
This program analizes films database with adresses, and creates a folium map with closest films to the coordinates

Films-map-project UCU CS lab 1.2, 1st year This program analizes films database with adresses, and creates a folium map with closest films to the coor

Artem Moskovets 1 Feb 9, 2022