2016-03-22 22:22:41 +01:00
|
|
|
<!DOCTYPE HTML>
|
2013-05-09 16:59:26 +02:00
|
|
|
<html>
|
2013-05-21 22:28:16 +02:00
|
|
|
<head>
|
2014-10-29 18:39:34 +01:00
|
|
|
<meta charset="utf-8"/>
|
2013-05-21 22:28:16 +02:00
|
|
|
<link rel="stylesheet" type="text/css" href="style.css" />
|
2016-07-02 11:53:03 +02:00
|
|
|
<link rel="stylesheet" href="jquery/jquery-ui-1.11.4-smoothness.css" />
|
|
|
|
<script src="jquery/jquery-3.0.0.min.js"></script>
|
|
|
|
<script src="jquery/jquery-ui-1.11.4.min.js"></script>
|
2016-08-24 22:28:13 +02:00
|
|
|
<script src="jquery/plugins/jquery.validate.min.js"></script>
|
2016-07-02 13:55:38 +02:00
|
|
|
|
2016-07-05 23:06:28 +02:00
|
|
|
<link rel="stylesheet" href="ol3/ol-3.17.1.css" type="text/css" />
|
|
|
|
<script src="ol3/ol-3.17.1.js" type="text/javascript"></script>
|
2016-07-02 13:55:38 +02:00
|
|
|
|
2016-07-02 22:12:31 +02:00
|
|
|
<link rel="stylesheet" href="ol3/ol3-layerswitcher.css" type="text/css"/>
|
|
|
|
<script src="ol3/ol3-layerswitcher.js" type="text/javascript"></script>
|
|
|
|
|
2013-05-24 04:15:37 +02:00
|
|
|
<script type="text/javascript" src="config.js"></script>
|
2015-02-22 18:02:23 +01:00
|
|
|
<script type="text/javascript" src="markers.js"></script>
|
2015-02-24 22:51:30 +01:00
|
|
|
<script type="text/javascript" src="dbloader.js"></script>
|
2016-09-09 18:16:17 +02:00
|
|
|
<script type="text/javascript" src="registrations.js"></script>
|
2013-05-24 04:15:37 +02:00
|
|
|
<script type="text/javascript" src="planeObject.js"></script>
|
2015-02-20 00:09:03 +01:00
|
|
|
<script type="text/javascript" src="formatter.js"></script>
|
2015-08-18 06:25:39 +02:00
|
|
|
<script type="text/javascript" src="flags.js"></script>
|
2016-07-03 14:55:14 +02:00
|
|
|
<script type="text/javascript" src="layers.js"></script>
|
2015-08-30 18:16:40 +02:00
|
|
|
<script type="text/javascript" src="script.js"></script>
|
2017-01-18 00:19:23 +01:00
|
|
|
<title>PiAware Skyview</title>
|
2013-05-21 22:28:16 +02:00
|
|
|
</head>
|
2016-04-11 13:11:05 +02:00
|
|
|
|
2013-05-21 22:28:16 +02:00
|
|
|
<body onload="initialize()">
|
2016-03-22 20:39:57 +01:00
|
|
|
<div id="loader" class="hidden">
|
2016-03-22 22:22:41 +01:00
|
|
|
<img src="spinny.gif" id="spinny" alt="Loading...">
|
2016-03-22 20:39:57 +01:00
|
|
|
<progress id="loader_progress"></progress>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
This is hideous. airframes.org insists on getting a POST with a "submit" value specified,
|
|
|
|
but if we have an input control with that name then it shadows the submit() function that
|
|
|
|
we need. So steal the submit function off a different form. Surely there is a better way?!
|
|
|
|
-->
|
|
|
|
<form id="horrible_hack" class="hidden">
|
|
|
|
</form>
|
|
|
|
<form id="airframes_post" method="POST" action="http://www.airframes.org/" target="_blank" class="hidden">
|
|
|
|
<input type="hidden" name="reg1" value="">
|
|
|
|
<input type="hidden" name="selcal" value="">
|
|
|
|
<input id="airframes_post_icao" type="hidden" name="ica024" value="">
|
|
|
|
<input type="hidden" name="submit" value="submit">
|
|
|
|
</form>
|
2015-01-23 20:17:07 +01:00
|
|
|
|
2017-01-18 00:19:23 +01:00
|
|
|
<div id="header" class="infoHeading">
|
|
|
|
<div class="logoContainer">
|
|
|
|
<a href="http://flightaware.com/" target="_blank"><img src="images/fa_logo_color.png" alt="FlightAware" class="flightawareLogo" srcset="images/fa_logo_color.png 1x, images/fa_logo_color@2x.png 2x, images/fa_logo_color@3x.png 3x"></a>
|
|
|
|
<img src="images/pa-sv-logo.png" alt="PiAware SkyView" class="adsbLogo piAwareLogo" srcset="images/pa-sv-logo.png 1x, images/pa-sv-logo@2x.png 2x, images/pa-sv-logo@3x.png 3x">
|
|
|
|
<img src="images/ff-sv-logo.png" alt="FlightFeeder SkyView" class="adsbLogo flightfeederLogo" srcset="images/ff-sv-logo.png 1x, images/ff-sv-logo@2x.png 2x, images/ff-sv-logo@3x.png 3x" style="display: none;">
|
|
|
|
</div>
|
|
|
|
<div class="buttonContainer">
|
2017-01-19 23:21:55 +01:00
|
|
|
<div class="dateTime" id="clock_div"></div>
|
2017-01-18 00:19:23 +01:00
|
|
|
<div class="button" onclick="resetMap();"><span class="buttonText">Reset Map</span></div>
|
|
|
|
<div class="button" onclick="selectAllPlanes();"><span class="buttonText">Select All</span></div>
|
|
|
|
<div class="button" onclick="deselectAllPlanes();"><span class="buttonText">Select None</span></div>
|
|
|
|
</div>
|
|
|
|
<div class="settingsContainer"><img src="images/settings-icon.png" id="settingsCog" srcset="images/settings-icon.png 1x, images/settings-icon@2x.png 2x, images/settings-icon@3x.png 3x"></div>
|
|
|
|
</div>
|
|
|
|
|
2016-08-18 22:48:57 +02:00
|
|
|
<div id="layout_container">
|
2017-01-18 00:19:23 +01:00
|
|
|
|
2016-09-13 00:36:08 +02:00
|
|
|
<div id="selected_infoblock" class="hidden">
|
2017-01-19 21:55:48 +01:00
|
|
|
<div class="highlightedTitle">
|
|
|
|
<span id="selected_flightaware_link" class="link rightLink"></span>
|
|
|
|
<span class="identLarge"><span id="selected_callsign">n/a</span></span>
|
|
|
|
<span class="identSmall"><span id="selected_icao">n/a</span></span>
|
|
|
|
</div>
|
|
|
|
<div class="highlightedInfo">
|
|
|
|
<div class="infoBlockTopSection">
|
|
|
|
<div class="infoRow removePadding">
|
|
|
|
<div class="infoHeading infoRowFluid">Registration: </div>
|
|
|
|
<div class="infoData infoRowFluid"><span id="selected_registration">n/a</span></div>
|
|
|
|
</div>
|
|
|
|
<div class="infoRow removePadding">
|
|
|
|
<div class="infoHeading infoRowFluid">Country of registration: </div>
|
|
|
|
<div class="infoData infoRowFluid"><span id="selected_country">n/a</span></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="infoBlock45pxSection lightGreyBackground">
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection1">
|
|
|
|
Aircraft Type:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection2">
|
2016-09-13 00:36:08 +02:00
|
|
|
<span id="selected_icaotype"></span>
|
2017-01-19 21:55:48 +01:00
|
|
|
</div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection3">
|
|
|
|
Source:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection4">
|
|
|
|
<span id="selected_source"></span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="infoBlockSection">
|
|
|
|
<div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection1">
|
|
|
|
Squawk:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection2">
|
|
|
|
<span id="selected_squawk"></span>
|
|
|
|
</div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection3">
|
|
|
|
Speed:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection4">
|
|
|
|
<span id="selected_speed">n/a</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection1">
|
|
|
|
Altitude:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection2">
|
|
|
|
<span id="selected_altitude"></span>
|
|
|
|
</div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection3">
|
|
|
|
Distance:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection4">
|
|
|
|
<span id="selected_sitedist">n/a</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="infoBlockSection lightGreyBackground">
|
|
|
|
<div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection1">
|
|
|
|
Track:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection2">
|
|
|
|
<span id="selected_track">n/a</span>
|
|
|
|
</div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection3">
|
|
|
|
Position:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection4">
|
|
|
|
<span id="selected_position">n/a</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection1">
|
|
|
|
Vertical Rate:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection2">
|
|
|
|
<span id="selected_vertical_rate">n/a</span>
|
|
|
|
</div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection3">
|
|
|
|
Last Seen:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection4">
|
|
|
|
<span id="selected_seen">n/a</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="infoBlockSection">
|
|
|
|
<div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection1">
|
|
|
|
Messages:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection2">
|
|
|
|
<span id="selected_message_count">n/a</span>
|
|
|
|
</div>
|
|
|
|
<div class="infoHeading infoRowFluid fourColumnSection3">
|
|
|
|
RSSI:
|
|
|
|
</div>
|
|
|
|
<div class="infoData infoRowFluid fourColumnSection4">
|
|
|
|
<span id="selected_rssi">n/a</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<a href="http://www.airframes.org/" onclick="document.getElementById('horrible_hack').submit.call(document.getElementById('airframes_post')); return false;" class="link rightLink">
|
|
|
|
AirFrames.org Link
|
|
|
|
</a>
|
|
|
|
<span id="selected_photo_link" class="link"></span>
|
|
|
|
</div>
|
2016-09-13 00:36:08 +02:00
|
|
|
|
|
|
|
</div> <!-- selected_infoblock -->
|
2017-01-18 23:14:53 +01:00
|
|
|
|
|
|
|
<div id="highlighted_infoblock">
|
|
|
|
<div class="highlightedTitle">
|
|
|
|
<span class="identLarge"><span id="highlighted_callsign">n/a</span></span>
|
|
|
|
<span class="identSmall"><span id="highlighted_icao">n/a</span></span>
|
|
|
|
</div>
|
|
|
|
<div class="highlightedInfo">
|
|
|
|
<div class="infoRow">
|
|
|
|
<div class="infoHeading infoRowTitle">Aircraft Type: </div>
|
|
|
|
<div class="infoData infoRowContent"><span id="higlighted_icaotype">n/a</span></div>
|
|
|
|
</div>
|
|
|
|
<div class="infoRow">
|
|
|
|
<div class="infoHeading infoRowTitle">Altitude: </div>
|
|
|
|
<div class="infoData infoRowContent"><span id="highlighted_altitude">n/a</span></div>
|
|
|
|
</div>
|
|
|
|
<div class="infoRow">
|
|
|
|
<div class="infoHeading infoRowTitle">Speed: </div>
|
|
|
|
<div class="infoData infoRowContent"><span id="highlighted_speed">n/a</span></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2016-08-18 22:48:57 +02:00
|
|
|
<div id="map_container">
|
|
|
|
<div id="map_canvas"></div>
|
2016-09-16 13:40:06 +02:00
|
|
|
<div id="toggle_sidebar_control" class="ol-unselectable ol-control">
|
|
|
|
<button id="toggle_sidebar_button" class="hide_sidebar" title="Toggle Sidebar"></button>
|
|
|
|
</div>
|
|
|
|
<div id="expand_sidebar_control" class="ol-unselectable ol-control">
|
|
|
|
<button id="expand_sidebar_button" title="Expand Sidebar"></button>
|
|
|
|
</div>
|
2016-08-18 22:48:57 +02:00
|
|
|
</div>
|
|
|
|
<div id="sidebar_container">
|
|
|
|
<div id="splitter" class="ui-resizable-handle ui-resizable-w"></div>
|
|
|
|
<div id="sidebar_canvas">
|
|
|
|
|
|
|
|
<div id="dump1090_infoblock">
|
|
|
|
<table style="width: 100%">
|
|
|
|
<tr class="infoblock_heading">
|
2016-09-13 01:23:38 +02:00
|
|
|
<td>
|
|
|
|
<span id="show_map_button" class="sidebarButton pointer">Show Map</span>
|
|
|
|
</td>
|
2016-08-18 22:48:57 +02:00
|
|
|
<td style="text-align: right">
|
|
|
|
<a href="https://github.com/flightaware/dump1090" id="dump1090_version" target="_blank"></a>
|
|
|
|
</td>
|
|
|
|
</tr>
|
2016-03-22 20:39:57 +01:00
|
|
|
|
2016-08-18 22:48:57 +02:00
|
|
|
<tr class="infoblock_body">
|
|
|
|
<td>Aircraft (total): <span id="dump1090_total_ac">n/a</span></td>
|
|
|
|
<td>Messages: <span id="dump1090_message_rate">n/a</span>/sec</td>
|
2016-03-22 20:39:57 +01:00
|
|
|
</tr>
|
2016-04-11 13:11:05 +02:00
|
|
|
|
2016-08-18 22:48:57 +02:00
|
|
|
<tr class="infoblock_body">
|
|
|
|
<td>(with positions): <span id="dump1090_total_ac_positions">n/a</span></td>
|
|
|
|
<td>History: <span id="dump1090_total_history">n/a</span> positions</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div> <!-- dump1090_infoblock -->
|
|
|
|
|
2016-08-22 23:48:17 +02:00
|
|
|
<div id="units_container">
|
|
|
|
<label for="units_selector">Units:</label>
|
|
|
|
<select name="units_selector" id="units_selector">
|
|
|
|
<option value="nautical">Aeronautical</option>
|
|
|
|
<option value="metric">Metric</option>
|
|
|
|
<option value="imperial">Imperial</option>
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
|
2016-08-24 22:28:13 +02:00
|
|
|
<form id="altitude_filter_form">
|
|
|
|
<label>Filter by altitude:</label>
|
|
|
|
<input id="altitude_filter_min" name="minAltitude" type="text" class="altitudeFilterInput" maxlength="5">
|
|
|
|
<label for="minAltitude" class="altitudeUnit"></label>
|
|
|
|
<span> to </span>
|
|
|
|
<input id="altitude_filter_max" name="maxAltitude" type="text" class="altitudeFilterInput" maxlength="5">
|
|
|
|
<label for="maxAltitude" class="altitudeUnit"></label>
|
|
|
|
<button type="submit">Filter</button>
|
|
|
|
<button id="altitude_filter_reset_button">Reset</button>
|
|
|
|
</form>
|
|
|
|
|
2016-08-18 22:48:57 +02:00
|
|
|
<div id="planes_table">
|
|
|
|
<table id="tableinfo" style="width: 100%">
|
2016-09-09 19:49:48 +02:00
|
|
|
<thead class="aircraft_table_header">
|
2016-08-18 22:48:57 +02:00
|
|
|
<tr>
|
|
|
|
<td id="icao" onclick="sortByICAO();">ICAO</td>
|
|
|
|
<td id="flag" onclick="sortByCountry()"><!-- column for flag image --></td>
|
2016-08-20 00:37:43 +02:00
|
|
|
<td id="flight" onclick="sortByFlight();">Ident</td>
|
|
|
|
<td id="registration" onclick="sortByRegistration();">Registration</td>
|
|
|
|
<td id="aircraft_type" onclick="sortByAircraftType();"> Aircraft type</td>
|
2016-09-09 19:49:48 +02:00
|
|
|
<td id="squawk" onclick="sortBySquawk();">Squawk</td>
|
|
|
|
<td id="altitude" onclick="sortByAltitude();">Altitude (<span class="altitudeUnit"></span>)</td>
|
|
|
|
<td id="speed" onclick="sortBySpeed();">Speed (<span class="speedUnit"></span>)</td>
|
|
|
|
<td id="vert_rate" onclick="sortByVerticalRate();">Vertical Rate (<span class="verticalRateUnit"></span>)</td>
|
|
|
|
<td id="distance" onclick="sortByDistance();">Distance (<span class="distanceUnit"></span>)</td>
|
|
|
|
<td id="track" onclick="sortByTrack();">Track</td>
|
|
|
|
<td id="msgs" onclick="sortByMsgs();">Msgs</td>
|
|
|
|
<td id="seen" onclick="sortBySeen();">Age</td>
|
|
|
|
<td id="rssi" onclick="sortByRssi();">RSSI</td>
|
|
|
|
<td id="lat" onclick="sortByLatitude();">Latitude</td>
|
|
|
|
<td id="lon" onclick="sortByLongitude();">Longitude</td>
|
|
|
|
<td id="data_source" onclick="sortByDataSource();">Data Source</td>
|
|
|
|
<td id="airframes_mode_s_link">Airframes.org Link</td>
|
|
|
|
<td id="flightaware_mode_s_link">FlightAware Link</td>
|
|
|
|
<td id="flightaware_photo_link">Photos</td>
|
2016-08-18 22:48:57 +02:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tr id="plane_row_template" class="plane_table_row hidden">
|
2016-09-14 23:03:02 +02:00
|
|
|
<td class="icaoCodeColumn">ICAO</td>
|
2016-08-18 22:48:57 +02:00
|
|
|
<td><img style="width: 20px; height=12px" src="about:blank" alt="Flag"></td>
|
|
|
|
<td>FLIGHT</td>
|
2016-08-20 00:37:43 +02:00
|
|
|
<td>REGISTRATION</td>
|
|
|
|
<td>AIRCRAFT_TYPE</td>
|
2016-08-18 22:48:57 +02:00
|
|
|
<td style="text-align: right">SQUAWK</td>
|
|
|
|
<td style="text-align: right">ALTITUDE</td>
|
|
|
|
<td style="text-align: right">SPEED</td>
|
2016-08-20 00:37:43 +02:00
|
|
|
<td style="text-align: right">VERT_RATE</td>
|
2016-08-18 22:48:57 +02:00
|
|
|
<td style="text-align: right">DISTANCE</td>
|
|
|
|
<td style="text-align: right">TRACK</td>
|
|
|
|
<td style="text-align: right">MSGS</td>
|
|
|
|
<td style="text-align: right">SEEN</td>
|
2016-08-19 17:58:48 +02:00
|
|
|
<td style="text-align: right">RSSI</td>
|
2016-08-20 00:37:43 +02:00
|
|
|
<td style="text-align: right">LAT</td>
|
|
|
|
<td style="text-align: right">LON</td>
|
|
|
|
<td style="text-align: right">DATA_SOURCE</td>
|
2016-08-23 01:15:06 +02:00
|
|
|
<td style="text-align: center">AIRFRAMES_MODE_S_LINK</td>
|
|
|
|
<td style="text-align: center">FLIGHTAWARE_MODE_S_LINK</td>
|
2016-08-23 17:41:58 +02:00
|
|
|
<td style="text-align: center">FLIGHTAWARE_PHOTO_LINK</td>
|
2016-08-18 22:48:57 +02:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div> <!-- planes_table -->
|
|
|
|
|
|
|
|
</div> <!-- sidebar_canvas -->
|
|
|
|
</div> <!-- sidebar_container -->
|
|
|
|
</div> <!-- layout_container -->
|
2016-03-22 20:39:57 +01:00
|
|
|
|
2015-01-06 21:15:25 +01:00
|
|
|
<div id="SpecialSquawkWarning" class="hidden">
|
2016-03-22 20:39:57 +01:00
|
|
|
<b>Squawk 7x00 is reported and shown.</b><br>
|
|
|
|
This is most likely an error in receiving or decoding.<br>
|
|
|
|
Please do not call the local authorities, they already know about it if it is a valid squawk.
|
2013-06-02 15:51:38 +02:00
|
|
|
</div>
|
2015-01-07 19:44:45 +01:00
|
|
|
|
|
|
|
<div id="update_error" class="hidden">
|
2016-03-22 20:39:57 +01:00
|
|
|
<b>Problem fetching data from dump1090.</b><br>
|
|
|
|
<span id="update_error_detail"></span><br>
|
|
|
|
The displayed map data will be out of date.
|
|
|
|
</div>
|
2015-01-07 19:44:45 +01:00
|
|
|
|
2013-09-26 13:59:46 +02:00
|
|
|
<div id="container_splitter"></div>
|
2013-05-21 22:28:16 +02:00
|
|
|
</body>
|
2013-05-09 16:59:26 +02:00
|
|
|
</html>
|