From 3edea47e887460bb1fdc31d5cfaa0a3a564d4dfd Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sun, 19 Jul 2026 06:15:17 +0200 Subject: [PATCH] Release v2.5 - POI markers op interactieve kaart MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Supermarkt en school markers als gekleurde cirkels op de Leaflet kaart - Popups met hemelsbreed/fiets/auto afstanden per voorziening - Legenda uitgebreid met POI categorieën - voorzieningen.py: format_afstand/format_duur exports toegevoegd --- rapport.py | 74 ++++++++++++++++++++++++++++++++++++++++++++---- voorzieningen.py | 14 ++++----- 2 files changed, 76 insertions(+), 12 deletions(-) diff --git a/rapport.py b/rapport.py index 89fd507..11e0c65 100644 --- a/rapport.py +++ b/rapport.py @@ -21,7 +21,7 @@ try: except ImportError: HAS_PIL = False -from voorzieningen import analyse_voorzieningen, format_voorzieningen_markdown +from voorzieningen import analyse_voorzieningen, format_voorzieningen_markdown, format_afstand, format_duur # Config ORS_BASE = "http://192.168.1.71:9080/ors/v2" @@ -105,8 +105,25 @@ def schrijf_naar_mkdocs(content, adres, nummer, ext=".md"): return filepath, filename -def genereer_isochroon_html(adres_naam, lat, lon, auto_iso, fiets_iso): - """Genereer een zelf-contained HTML kaart met Leaflet""" +def genereer_isochroon_html(adres_naam, lat, lon, auto_iso, fiets_iso, voorzieningen=None): + """Genereer een zelf-contained HTML kaart met Leaflet + POI markers""" + # Bouw JSON voor POI markers + poi_json = {"supermarkten": [], "scholen": []} + if voorzieningen: + for s in voorzieningen.get("supermarkten", []): + poi_json["supermarkten"].append({ + "naam": s.naam, "lat": s.lat, "lon": s.lon, + "hemelsbreed": round(s.hemelsbreed_m), + "fiets": f"{format_afstand(s.fiets_afstand_m)} / {format_duur(s.fiets_duur_s)}" if s.fiets_afstand_m else "n.b.", + "auto": f"{format_afstand(s.auto_afstand_m)} / {format_duur(s.auto_duur_s)}" if s.auto_afstand_m else "n.b.", + }) + for s in voorzieningen.get("scholen", []): + poi_json["scholen"].append({ + "naam": s.naam, "lat": s.lat, "lon": s.lon, + "hemelsbreed": round(s.hemelsbreed_m), + "fiets": f"{format_afstand(s.fiets_afstand_m)} / {format_duur(s.fiets_duur_s)}" if s.fiets_afstand_m else "n.b.", + "auto": f"{format_afstand(s.auto_afstand_m)} / {format_duur(s.auto_duur_s)}" if s.auto_afstand_m else "n.b.", + }) html = f''' @@ -127,6 +144,7 @@ def genereer_isochroon_html(adres_naam, lat, lon, auto_iso, fiets_iso):