From b00ba9ea62f095cb91cb12d82af4d2fa6edd4736 Mon Sep 17 00:00:00 2001 From: KF7EEL Date: Sat, 27 Feb 2021 06:55:48 -0800 Subject: [PATCH] improve map plotting --- scripts/dashboard/dashboard.py | 7 +++++-- scripts/dashboard/templates/map.html | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/dashboard/dashboard.py b/scripts/dashboard/dashboard.py index 39f7a67..cec273d 100644 --- a/scripts/dashboard/dashboard.py +++ b/scripts/dashboard/dashboard.py @@ -25,6 +25,7 @@ from flask import Flask, render_template import ast, os from dashboard_settings import * import folium +from folium.plugins import MarkerCluster import re app = Flask(__name__) @@ -146,6 +147,7 @@ def view_map(): user_loc = ast.literal_eval(os.popen('cat /tmp/gps_data_user_loc.txt').read()) last_known_list = [] folium_map = folium.Map(location=map_center, zoom_start=int(zoom_level)) + marker_cluster = MarkerCluster().add_to(folium_map) for user_coord in user_loc: user_lat = aprs_to_latlon(float(re.sub('[A-Za-z]','', user_coord['lat']))) user_lon = aprs_to_latlon(float(re.sub('[A-Za-z]','', user_coord['lon']))) @@ -154,10 +156,11 @@ def view_map(): if 'W' in user_coord['lon']: user_lon = -user_lon if user_coord['call'] not in last_known_list: - folium.Marker([user_lat, user_lon], popup="" + 'Last Location: \n' + str(user_coord['call']) + '' + '\n' + user_coord['time'] + "", icon=folium.Icon(color="red", icon="info-sign"), tooltip=str(user_coord['call'])).add_to(folium_map) + folium.Marker([user_lat, user_lon], popup="" + 'Last Location: \n' + str(user_coord['call']) + '' + '\n' + user_coord['time'] + "", icon=folium.Icon(color="red", icon="record"), tooltip=str(user_coord['call'])).add_to(folium_map) last_known_list.append(user_coord['call']) if user_coord['call'] in last_known_list: - folium.Marker([user_lat, user_lon], popup="" + '' + str(user_coord['call']) + '' + '\n' + user_coord['time'] + "", tooltip=str(user_coord['call'])).add_to(folium_map) + #folium.Marker([user_lat, user_lon], popup="" + '' + str(user_coord['call']) + '' + '\n' + user_coord['time'] + "", tooltip=str(user_coord['call'])).add_to(marker_cluster) + folium.CircleMarker([user_lat, user_lon], popup="" + '' + str(user_coord['call']) + '' + '\n' + user_coord['time'] + "", tooltip=str(user_coord['call']), fill=True, fill_color="#3186cc", radius=2).add_to(marker_cluster) return folium_map._repr_html_() @app.route('/map/') def map(): diff --git a/scripts/dashboard/templates/map.html b/scripts/dashboard/templates/map.html index f733bd9..0448944 100644 --- a/scripts/dashboard/templates/map.html +++ b/scripts/dashboard/templates/map.html @@ -2,7 +2,7 @@ {% include 'header.html' %}

Red: Last location received. Blue: Location history.

 

-

+

 

{% include 'footer.html' %}