[hamradio-commits] [dump1090] 148/373: Added resetMap()-function to web-view.

Matthew Ernisse mernisse-guest at moszumanska.debian.org
Thu Oct 23 14:58:14 UTC 2014


This is an automated email from the git hooks/post-receive script.

mernisse-guest pushed a commit to branch backport
in repository dump1090.

commit c5fdde64e4be02b4d03851dd7aa2a1f6aeae01e6
Author: terribl <terri at rannalla.net>
Date:   Thu May 9 21:57:33 2013 +0300

    Added resetMap()-function to web-view.
    
    + some small tweaks.
    
    	modified:   dump1090.c
    	modified:   public_html/script.js
---
 dump1090.c            |   5 ++-
 public_html/script.js | 114 +++++++++++++++++++++++++++++++-------------------
 2 files changed, 74 insertions(+), 45 deletions(-)

diff --git a/dump1090.c b/dump1090.c
index 897e9eb..6fe1820 100644
--- a/dump1090.c
+++ b/dump1090.c
@@ -3051,6 +3051,7 @@ int decodeHexMessage(struct client *c) {
 
 /* Return a description of planes in json. */
 char *aircraftsToJson(int *len) {
+    time_t now = time(NULL);
     struct aircraft *a = Modes.aircrafts;
     int buflen = 1024; /* The initial buffer is incremented as needed. */
     char *buf = (char *) malloc(buflen), *p = buf;
@@ -3070,9 +3071,9 @@ char *aircraftsToJson(int *len) {
         l = snprintf(p,buflen,
             "{\"hex\":\"%06x\", \"squawk\":\"%04x\", \"flight\":\"%s\", \"lat\":%f, "
             "\"lon\":%f, \"altitude\":%d, \"track\":%d, "
-            "\"speed\":%d},\n",
+            "\"speed\":%d, \"messages\":%ld, \"seen\":%d},\n",
             a->addr, a->modeA, a->flight, a->lat, a->lon, a->altitude, a->track,
-            a->speed);
+            a->speed, a->messages, (int)(now - a->seen));
         p += l; buflen -= l;
         
         /* Resize if needed. */
diff --git a/public_html/script.js b/public_html/script.js
index 2105bc3..1666f64 100644
--- a/public_html/script.js
+++ b/public_html/script.js
@@ -1,10 +1,11 @@
-Map = null;
+Map       = null;
 CenterLat = 45.0;
 CenterLon = 9.0;
 ZoomLvl   = 5;
-Planes={};
-NumPlanes = 0;
-Selected=null
+Planes    = {};
+PlanesOnMap  = 0;
+PlanesOnGrid = 0;
+Selected     = null;
 
 if (localStorage['CenterLat']) { CenterLat = Number(localStorage['CenterLat']); }
 if (localStorage['CenterLon']) { CenterLon = Number(localStorage['CenterLon']); }
@@ -12,7 +13,7 @@ if (localStorage['ZoomLvl'])   { ZoomLvl   = Number(localStorage['ZoomLvl']); }
 
 function getIconForPlane(plane) {
     var r = 255, g = 255, b = 0;
-    var maxalt = 40000; /* Max altitude in the average case */
+    var maxalt = 40000; // Max altitude in the average case
     var invalt = maxalt-plane.altitude;
     var selected = (Selected == plane.hex);
 
@@ -42,8 +43,9 @@ function selectPlane() {
 
 function refreshGeneralInfo() {
     var i = document.getElementById('geninfo');
-
-    i.innerHTML = NumPlanes+' planes on screen.';
+    
+    i.innerHTML  = PlanesOnGrid + ' planes on grid.<br>';
+    i.innerHTML += PlanesOnMap + ' planes on map.';
 }
 
 function refreshSelectedInfo() {
@@ -58,53 +60,69 @@ function refreshSelectedInfo() {
     html += 'Altitude: '+p.altitude+' feet<br>';
     html += 'Speed: '+p.speed+' knots<br>';
     html += 'Coordinates: '+p.lat+', '+p.lon+'<br>';
+    html += 'Messages: '+p.messages+'<br>';
+    html += 'Seen: '+p.seen+' sec<br>';
     i.innerHTML = html;
 }
 
 function fetchData() {
     $.getJSON('/data.json', function(data) {
         var stillhere = {}
+        PlanesOnMap = 0;
+        
         for (var j=0; j < data.length; j++) {
             var plane = data[j];
-            var marker = null;
             stillhere[plane.hex] = true;
             plane.flight = $.trim(plane.flight);
-
-            if (Planes[plane.hex]) {
-                var myplane = Planes[plane.hex];
-                marker = myplane.marker;
-                var icon = marker.getIcon();
-                var newpos = new google.maps.LatLng(plane.lat, plane.lon);
-                marker.setPosition(newpos);
-                marker.setIcon(getIconForPlane(plane));
-                myplane.altitude = plane.altitude;
-                myplane.speed = plane.speed;
-                myplane.lat = plane.lat;
-                myplane.lon = plane.lon;
-                myplane.track = plane.track;
-                myplane.flight = plane.flight;
-                if (myplane.hex == Selected)
-                    refreshSelectedInfo();
-            } else {
-                marker = new google.maps.Marker({
-                    position: new google.maps.LatLng(plane.lat, plane.lon),
-                    map: Map,
-                    icon: getIconForPlane(plane)
-                });
-                plane.marker = marker;
-                marker.planehex = plane.hex;
-                Planes[plane.hex] = plane;
-
-                /* Trap clicks for this marker. */
-                google.maps.event.addListener(marker, 'click', selectPlane);
+            
+            if (plane.lat != 0 && plane.lon != 0) {
+                // Show only planes with position
+                var marker = null;
+                PlanesOnMap++;
+                
+                if (Planes[plane.hex]) {
+                    // Move and refresh old plane on map
+                    var myplane = Planes[plane.hex];
+                    marker = myplane.marker;
+                    var icon = marker.getIcon();
+                    var newpos = new google.maps.LatLng(plane.lat, plane.lon);
+                    marker.setPosition(newpos);
+                    marker.setIcon(getIconForPlane(plane));
+                    myplane.altitude = plane.altitude;
+                    myplane.speed = plane.speed;
+                    myplane.lat = plane.lat;
+                    myplane.lon = plane.lon;
+                    myplane.track = plane.track;
+                    myplane.flight = plane.flight;
+                    myplane.seen = plane.seen;
+                    myplane.messages = plane.messages;
+                    if (myplane.hex == Selected)
+                        refreshSelectedInfo();
+                } else {
+                    // Add new plane to map
+                    marker = new google.maps.Marker({
+                        position: new google.maps.LatLng(plane.lat, plane.lon),
+                        map: Map,
+                        icon: getIconForPlane(plane)
+                    });
+                    plane.marker = marker;
+                    marker.planehex = plane.hex;
+                    Planes[plane.hex] = plane;
+
+                    // Trap clicks for this marker.
+                    google.maps.event.addListener(marker, 'click', selectPlane);
+                }
+                
+                if (plane.flight.length == 0) {
+                    marker.setTitle(plane.hex)
+                } else {
+                    marker.setTitle(plane.flight+' ('+plane.hex+')')
+                }
             }
-            if (plane.flight.length == 0)
-                marker.setTitle(plane.hex)
-            else
-                marker.setTitle(plane.flight+' ('+plane.hex+')')
         }
-        NumPlanes = data.length;
 
+        PlanesOnGrid = data.length;
+        
         /* Remove idle planes. */
         for (var p in Planes) {
             if (!stillhere[p]) {
@@ -143,8 +161,18 @@ function placeFooter() {
     var infoWidth = parseInt($('#info').width());
     var marginLeft = parseInt((infoWidth / 2) - (footerWidth / 2));
     
-    $('#info_footer').css('top',offset);
-    $('#info_footer').css('margin-left',marginLeft);
+    $('#info_footer').css('top', offset);
+    $('#info_footer').css('margin-left', marginLeft);
+}
+
+function resetMap() {
+    localStorage['CenterLat'] = 45.0;
+    localStorage['CenterLon'] = 9.0;
+    localStorage['ZoomLvl']   = 5;
+    Map.setZoom(parseInt(localStorage['ZoomLvl']));
+    Map.setCenter(new google.maps.LatLng(parseInt(localStorage['CenterLat']), parseInt(localStorage['CenterLon'])));
+    Selected = null;
+    document.getElementById('selinfo').innerHTML = '';
 }
 
 function initialize() {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/dump1090.git



More information about the pkg-hamradio-commits mailing list