From 204c725a758317d14322eeb846a4e198a5820647 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Mon, 28 Aug 2023 21:30:31 +0200 Subject: [PATCH] add links to aircraft tracking sites --- htdocs/map.js | 31 ++++++++++++++++++++++++---- owrx/connection.py | 1 + owrx/controllers/settings/general.py | 11 ++++++++++ 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/htdocs/map.js b/htdocs/map.js index d4f2acd3..7f9c2776 100644 --- a/htdocs/map.js +++ b/htdocs/map.js @@ -35,6 +35,7 @@ $(function(){ var strokeOpacity = 0.8; var fillOpacity = 0.35; var callsign_service; + var aircraft_tracking_service; var colorKeys = {}; var colorScale = chroma.scale(['red', 'blue', 'green']).mode('hsl'); @@ -318,6 +319,9 @@ $(function(){ if ('callsign_service' in config) { callsign_service = config['callsign_service']; } + if ('aircraft_tracking_service' in config) { + aircraft_tracking_service = config['aircraft_tracking_service']; + } break; case "update": processUpdates(json.value); @@ -386,7 +390,7 @@ $(function(){ // we can reuse the same logic for displaying and indexing var sourceToString = sourceToKey; - var linkifySource = function(source) { + var linkifyCallsign = function(source) { var callsignString = sourceToString(source); switch (callsign_service) { case "qrzcq": @@ -401,6 +405,25 @@ $(function(){ } }; + var linkifyAircraft = function(source, identification) { + var aircraftString = identification || source.icao; + var link = false; + switch (aircraft_tracking_service) { + case 'flightaware': + link = 'https://flightaware.com/live/modes/' + source.icao; + if (identification) link += "/ident/" + identification + link += '/redirect'; + break; + case 'planefinder': + if (identification) link = 'https://planefinder.net/flight/' + identification; + break; + } + if (link) { + return '' + aircraftString + ''; + } + return aircraftString; + } + var distanceKm = function(p1, p2) { // Earth radius in km var R = 6371.0; @@ -435,7 +458,7 @@ $(function(){ '