Small changes to map view. WebKit won't render files w/o .htm[l] extension so using a named temp file is out.

This commit is contained in:
Nick Foster 2013-06-21 16:28:56 -07:00
parent 55cd17de67
commit 2766107a76
3 changed files with 47 additions and 13 deletions

View File

@ -290,7 +290,9 @@ class mainwindow(QtGui.QMainWindow):
#self._relay.subscribe("dl_data", self.az_map_output.output) #self._relay.subscribe("dl_data", self.az_map_output.output)
#set up map #set up map
self._htmlfile = open("/home/nick/wat.html", 'wb+')#tempfile.NamedTemporaryFile() #NOTE this is busted on windows. WebKit requires .htm[l] extensions to render,
#so using a temp file doesn't work.
self._htmlfile = open("/tmp/mode_s.html", 'wb+')#tempfile.NamedTemporaryFile()
self._jsonfile = tempfile.NamedTemporaryFile() self._jsonfile = tempfile.NamedTemporaryFile()
self.livedata = air_modes.output_print(self._cpr_dec, self._publisher) self.livedata = air_modes.output_print(self._cpr_dec, self._publisher)
@ -308,7 +310,7 @@ class mainwindow(QtGui.QMainWindow):
print '%s line %d: %s' % (source, line, msg) print '%s line %d: %s' % (source, line, msg)
page = WebPage() page = WebPage()
self.ui.mapView.setPage(page) self.ui.mapView.setPage(page)
self.ui.mapView.load( QtCore.QUrl( QtCore.QUrl.fromLocalFile("/home/nick/wat.html") ) ) self.ui.mapView.load( QtCore.QUrl( QtCore.QUrl.fromLocalFile("/tmp/mode_s.html") ) )
self.ui.mapView.show() self.ui.mapView.show()
#output to update reports/sec widget #output to update reports/sec widget

View File

@ -11,6 +11,20 @@ def html_template(my_position, json_file):
<head> <head>
<title>ADS-B Aircraft Map</title> <title>ADS-B Aircraft Map</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<style type="text/css">
.labels {
color: red;
background-color: white;
font-family: "Lucida Grande", "Arial", sans-serif;
font-size: 10px;
font-weight: bold;
text-align: center;
width: 40px;
border: 2px solid black;
white-space: nowrap;
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script> </script>
<script type="text/javascript"> <script type="text/javascript">
@ -43,7 +57,11 @@ def html_template(my_position, json_file):
airplanes[results[i].icao] = { airplanes[results[i].icao] = {
center: new google.maps.LatLng(results[i].lat, results[i].lon), center: new google.maps.LatLng(results[i].lat, results[i].lon),
heading: results[i].hdg, heading: results[i].hdg,
altitude: 0 altitude: results[i].alt,
type: results[i].type,
ident: results[i].ident,
speed: results[i].speed,
vertical: results[i].vertical
}; };
} }
refreshIcons(); refreshIcons();
@ -58,10 +76,21 @@ def html_template(my_position, json_file):
anchor: new google.maps.Point(64,64), anchor: new google.maps.Point(64,64),
//scaledSize: new google.maps.Size(4608,126) //scaledSize: new google.maps.Size(4608,126)
}; };
identstr = airplanes[airplane].ident;
if (identstr === "" || !identstr) {
identstr = airplanes[airplane].icao;
};
var planeOptions = { var planeOptions = {
map: map, map: map,
position: airplanes[airplane].center, position: airplanes[airplane].center,
icon: plane_icon icon: plane_icon,
//label content meaningless unless you use the MarkerWithLabel class from the Maps Utility Library
labelContent: identstr,
labelAnchor: new google.maps.Point(64, 0),
labelClass: "labels",
labelStyle: {opacity: 0.75}
}; };
planeMarker = new google.maps.Marker(planeOptions); planeMarker = new google.maps.Marker(planeOptions);
planes.push(planeMarker); planes.push(planeMarker);

View File

@ -222,13 +222,14 @@ class output_jsonp(output_kml):
# trackstr = str("") # trackstr = str("")
#now get metadata #now get metadata
# q = "select ident from ident where icao=%i" % icao q = "select ident, type from ident where icao=%i" % icao
# self.locked_execute(c, q) self.locked_execute(c, q)
# r = c.fetchall() r = c.fetchall()
# if len(r) != 0: if len(r) != 0:
# ident = r[0][0] ident = r[0][0]
# else: ident="" actype = r[0][1]
#if ident is None: ident = "" else: ident=""
if ident is None: ident = ""
#get most recent speed/heading/vertical #get most recent speed/heading/vertical
q = "select seen, speed, heading, vertical from vectors where icao=%i order by seen desc limit 1" % icao q = "select seen, speed, heading, vertical from vectors where icao=%i order by seen desc limit 1" % icao
self.locked_execute(c, q) self.locked_execute(c, q)
@ -245,17 +246,19 @@ class output_jsonp(output_kml):
heading = 0 heading = 0
vertical = 0 vertical = 0
q = "select lat, lon from positions where icao=%i order by seen desc limit 1" % icao q = "select lat, lon, alt from positions where icao=%i order by seen desc limit 1" % icao
self.locked_execute(c, q) self.locked_execute(c, q)
r = c.fetchall() r = c.fetchall()
if len(r) != 0: if len(r) != 0:
lat = r[0][0] lat = r[0][0]
lon = r[0][1] lon = r[0][1]
alt = r[0][2]
else: else:
lat = 0 lat = 0
lon = 0 lon = 0
alt = 0
#now generate some KML #now generate some KML
retstr+= """{"icao": "%.6x", "lat": %f, "lon": %f, "hdg": %i, "speed": %i, "vertical": %i},""" % (icao, lat, lon, heading, speed, vertical) retstr+= """{"icao": "%.6x", "lat": %f, "lon": %f, "alt": %i, "hdg": %i, "speed": %i, "vertical": %i, "ident": "%s", "type": "%s"},""" % (icao, lat, lon, alt, heading, speed, vertical, ident, actype)
retstr+= """]);""" retstr+= """]);"""
return retstr return retstr