diff --git a/app/routes.py b/app/routes.py index f7bf64a..9cc8618 100644 --- a/app/routes.py +++ b/app/routes.py @@ -19,7 +19,7 @@ Then the 'dynamic' (calculated) routes : """ import typing as t - +from collections import defaultdict from flask import Blueprint, render_template, request, url_for, redirect import folium @@ -189,18 +189,35 @@ def geolocalisation(): actes=plaintext_response(search, actecol, prince_bigram)) m = folium.Map(location=[46.603354, 1.888334], zoom_start=6) + markers = defaultdict(list) for result in actecol.find(): place = result['place'] + filename = result['filename'] name = place['name'] + place_name = name.lower() url = result['url'] - if place.get('latitude') is not None: + latitude = place['latitude'] + longitude = place['longitude'] + markers[place_name].append([url, latitude, longitude, filename]) + + for key, value in markers.items(): + name = key.capitalize() + latitude = value[0][1] + longitude = value[0][2] + urls = [(url[0], url[3]) for url in value] + #print("urls", urls) + popup = [f"{name}
"] + for location, see in urls: + popup.append(f"{see}
") + popup = "".join(popup) + if latitude is not None: folium.Marker( - location=[place['latitude'], place['longitude']], - popup= f"{name}
Voir", + location=[latitude, longitude], + popup= popup, icon=folium.Icon(color='lightgray', icon="circle", prefix='fa') - #icon=folium.Icon(color='lightgray', icon='home', prefix='fa') ).add_to(m) + geolocalisation = m._repr_html_() return render_template("map.html", geolocalisation=geolocalisation)