diff --git a/scripts/dashboard/dashboard.py b/scripts/dashboard/dashboard.py index dda0f11..c453617 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 +import re app = Flask(__name__) @@ -102,6 +103,10 @@ def get_bb_data(): return str('

Bulletin Board

' + tbl_hdr + bb_hdr + tmp_bb + tbl_ftr) except: return str('

No data

') +def aprs_to_latlon(x): + degrees = int(x) // 100 + minutes = x - 100*degrees + return degrees + minutes/60 @app.route('/') def index(): @@ -129,10 +134,16 @@ def about(): @app.route('/map/') def map(): user_loc = ast.literal_eval(os.popen('cat /tmp/gps_data_user_loc.txt').read()) - map_center = (46.9540700, 142.7360300) + map_center = (47.9540700, -120.7360300) folium_map = folium.Map(location=map_center, zoom_start=14) for user_coord in user_loc: - folium.Marker(int([user_loc['lat']), int(str('-' + user_loc['lon']))], popup="" + user_loc['call'] + "", tooltip=user_loc['call']).add_to(m) + 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']))) + if 'S' in user_coord['lat']: + user_lat = -user_lat + if 'W' in user_coord['lon']: + user_lon = -user_lon + folium.Marker([user_lat, user_lon], popup="" + str(user_coord['call']) + "", tooltip=str(user_coord['call'])).add_to(folium_map) return folium_map._repr_html_() if __name__ == '__main__':