Reputation: 103
How can I superimpose all these locations on a map?
Is there a way that I could also shorten the codes so I don't have to repeat each step for each location?
Here are what I have for 5 locations and I would like to have them all in one map.
NASA_coordinate = [29.559684888503615, -95.0830971930759]
CCAFS_LC_coordinate = [28.562302, -80.577356]
CCAFS_SLC_coordinate = [28.563197, -80.576820]
KSC_LC_coordinate = [28.573255, -80.646895]
VAFB_SLC_coordinate = [34.632834, -120.610745]
NASA_map = folium.Map(location=NASA_coordinate, zoom_start=5)
CCAFS_LC_map = folium.Map(location=CCAFS_LC_coordinate, zoom_start=5)
CCAFS_SLC_map = folium.Map(location=CCAFS_SLC_coordinate, zoom_start=5)
KSC_LC_map = folium.Map(location=KSC_LC_coordinate, zoom_start=5)
VAFB_SLC_map = folium.Map(location=VAFB_SLC_coordinate, zoom_start=5)
NASA_circle = folium.Circle(NASA_coordinate, radius=1000, color='#d35400', fill=True).add_child(folium.Popup('NASA Johnson Space Center'))
NASA_marker = folium.map.Marker(NASA_coordinate, icon=DivIcon(icon_size=(20,20), icon_anchor=(0,0), html='<div style="font-size: 12; color:#d35400;"><b>%s</b></div>' % 'NASA JSC'))
NASA_map.add_child(NASA_circle)
NASA_map.add_child(NASA_marker)
CCAFS_LC_circle = folium.Circle(CCAFS_LC_coordinate, radius=1000, color='#d35400', fill=True).add_child(folium.Popup('CCAFS LC-40'))
CCAFS_LC_marker = folium.map.Marker(CCAFS_LC_coordinate, icon=DivIcon(icon_size=(20,20), icon_anchor=(0,0), html='<div style="font-size: 12; color:#d35400;"><b>%s</b></div>' % 'CCAFS LC-40'))
CCAFS_LC_map.add_child(CCAFS_LC_circle)
CCAFS_LC_map.add_child(CCAFS_LC_marker)
CCAFS_SLC_circle = folium.Circle(CCAFS_SLC_coordinate, radius=1000, color='#d35400', fill=True).add_child(folium.Popup('CCAFS SLC-40'))
CCAFS_SLC_marker = folium.map.Marker(CCAFS_SLC_coordinate, icon=DivIcon(icon_size=(20,20), icon_anchor=(0,0), html='<div style="font-size: 12; color:#d35400;"><b>%s</b></div>' % 'CCAFS SLC-40'))
CCAFS_SLC_map.add_child(CCAFS_SLC_circle)
CCAFS_SLC_map.add_child(CCAFS_SLC_marker)
KSC_LC_circle = folium.Circle(KSC_LC_coordinate, radius=1000, color='#d35400', fill=True).add_child(folium.Popup('KSC LC-39A'))
KSC_LC_marker = folium.map.Marker(KSC_LC_coordinate, icon=DivIcon(icon_size=(20,20), icon_anchor=(0,0), html='<div style="font-size: 12; color:#d35400;"><b>%s</b></div>' % 'KSC LC-39A'))
KSC_LC_map.add_child(KSC_LC_circle)
KSC_LC_map.add_child(KSC_LC_marker)
VAFB_SLC_circle = folium.Circle(VAFB_SLC_coordinate, radius=1000, color='#d35400', fill=True).add_child(folium.Popup('VAFB SLC-4E'))
VAFB_SLC_marker = folium.map.Marker(VAFB_SLC_coordinate, icon=DivIcon(icon_size=(20,20), icon_anchor=(0,0), html='<div style="font-size: 12; color:#d35400;"><b>%s</b></div>' % 'VAFB SLC-4E'))
VAFB_SLC_map.add_child(VAFB_SLC_circle)
VAFB_SLC_map.add_child(VAFB_SLC_marker)
Upvotes: 0
Views: 229
Reputation: 35135
import folium
from folium.features import DivIcon
import pandas as pd
NASA_coordinate = [29.559684888503615, -95.0830971930759]
CCAFS_LC_coordinate = [28.562302, -80.577356]
CCAFS_SLC_coordinate = [28.563197, -80.576820]
KSC_LC_coordinate = [28.573255, -80.646895]
VAFB_SLC_coordinate = [34.632834, -120.610745]
df = pd.DataFrame({'name': ['NASA','CCAFS_LC','CCAFS_SLC','KSC_LC','VAFB_SLC'],
'lon': [NASA_coordinate[0],CCAFS_LC_coordinate[0],CCAFS_SLC_coordinate[0],KSC_LC_coordinate[0],VAFB_SLC_coordinate[0]],
'lat': [NASA_coordinate[1],CCAFS_LC_coordinate[1],CCAFS_SLC_coordinate[1],KSC_LC_coordinate[1],VAFB_SLC_coordinate[1]],
})
m = folium.Map(location=[df['lon'].mean(), df['lat'].mean()], zoom_start=4)
for row in df.itertuples():
folium.Marker(
location=[row.lon, row.lat],
popup=folium.Popup(row.name),
icon=DivIcon(
icon_size=(20,20),
icon_anchor=(0,0),
html='<div style="font-size: 12; color:#d35400;"><b>%s</b></div>' % row.name),
).add_to(m)
folium.Circle([row.lon, row.lat],
radius=1000,
color='#d35400', fill=True).add_to(m)
m
Upvotes: 2