-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathapp.py
26 lines (23 loc) · 1.2 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from flask import Flask, render_template, url_for
import pandas as pd
import folium
app = Flask(__name__)
@app.route("/")
def index():
# https://stackoverflow.com/questions/37379374/insert-the-folium-maps-into-the-jinja-template
start_coords = (41.3874, 2.1686)
folium_map = folium.Map(location=start_coords, zoom_start=8, width="100%", height="100%", prefer_canvas=True)
df = pd.read_csv('catsalut/farmacies_geocoded.csv')
df.dropna(subset =['lat', 'lng'], inplace=True)
provincies = ["Barcelona", "Girona", "Lleida", "Tarragona"]
for provincia in provincies:
geogson = f"amb-capital/data/{provincia.lower()}_comarques.geojson"
group = folium.FeatureGroup(name=f"{provincia}")
folium.GeoJson(geogson).add_to(group)
farmacies = df[df['província']==provincia]
farmacies.apply(lambda row: folium.Marker(location=[row['lat'], row['lng']], popup=row['Codi farm'], icon=folium.Icon(color="red", icon="plus", prefix='fa')).add_to(group), axis=1)
group.add_to(folium_map)
folium.LayerControl().add_to(folium_map)
return render_template('index.html', folium_map=folium_map._repr_html_())
if __name__ == '__main__':
app.run(debug=True, port=5000)