Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

showing two Folium maps side by side?

How can I show two folium maps side by side? (something like the image below, but instead of matplotlib charts I want folium maps to be shown) enter image description here

edit: I want to show these maps in a jupyter notebook. and here's my current code with shows two maps vertically (stacked).

map_toronto = folium.Map(location=[43.6532, -79.3832], zoom_start=11)

# add markers to map
for lat, lng, borough in zip(toronto_df['Latitude'], toronto_df['Longitude'], toronto_df['District']):
    label = '{}'.format(borough)
    label = folium.Popup(label, parse_html=True)
    folium.CircleMarker(
        [lat, lng],
        radius=5,
        popup=label,
        color='blue',
        fill=True,
        fill_color='#3186cc',
        fill_opacity=0.7,
        parse_html=False).add_to(map_toronto)  

map_toronto
map_nyc = folium.Map(location=[40.7128, -74.0060], zoom_start=10)

# add markers to map
for lat, lng, borough in zip(nyc_df['Latitude'], nyc_df['Longitude'], nyc_df['District']):
    label = '{}'.format(borough)
    label = folium.Popup(label, parse_html=True)
    folium.CircleMarker(
        [lat, lng],
        radius=5,
        popup=label,
        color='blue',
        fill=True,
        fill_color='#3186cc',
        fill_opacity=0.7,
        parse_html=False).add_to(map_nyc)  

map_nyc
like image 540
M. Chavoshi Avatar asked Sep 15 '19 11:09

M. Chavoshi


1 Answers

Here is the solution I was able to come up with

from IPython.core.display import display, HTML

htmlmap = HTML('<iframe srcdoc="{}" style="float:left; width: {}px; height: {}px; display:inline-block; width: 50%; margin: 0 auto; border: 2px solid black"></iframe>'
           '<iframe srcdoc="{}" style="float:right; width: {}px; height: {}px; display:inline-block; width: 50%; margin: 0 auto; border: 2px solid black"></iframe>'
           .format(map_toronto.get_root().render().replace('"', '&quot;'),500,500,
                   map_nyc.get_root().render().replace('"', '&quot;'),500,500))
display(htmlmap)

You may need to format the text in the CircleMaker to not include single tick characters or other special characters to embed it in the iframe properly

nyc_df= nyc_df(to_replace=r'\'', value="", regex=True)
like image 56
bustedware Avatar answered Sep 22 '22 10:09

bustedware