Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 5 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,30 @@
# SondeHub Tracker
# SondeHub Tracker Beta (leaflet edition)

A fork of [habitat-mobile-tracker](https://github.com/rossengeorgiev/habitat-mobile-tracker) for use with the [SondeHub v2 ElasticSearch](https://github.com/projecthorus/sondehub-infra/wiki/ElasticSearch-Kibana-access) database. Huge credits to [Rossen Georgiev](https://github.com/rossengeorgiev/) for developing the mobile-tracker.

![mobile tracker screenshot](resources/mobiletracker-screencap.png "mobile tracker screenshot")

A webapp for tracking radiosondes. Works an desktop and mobile devices.
The habhub tracker is a continuation of [spacenear.us/tracker](http://spacenear.us/tracker).
The SondeHub tracker is a continuation of [spacenear.us/tracker](http://spacenear.us/tracker).

## Features

* Radiosonde Tracking using [SondeHub V2](https://github.com/projecthorus/sondehub-infra/wiki/ElasticSearch-Kibana-access) data.
* Telemetry graph for each balloon
* Chase Car functionality (TODO for SondeHub)
* Chase Car functionality
* Near realtime weather overlays
* [Daylight cycle overlay](https://github.com/rossengeorgiev/nite-overlay), for long flights
* Available to embed on any website
* Map tracker with Google Maps API 3
* Map tracker with Leaflet API
* Run the app natively on `iOS` or with Chrome's 'add to screen' on `Android`

### Geo position

Available only on mobile devices.

The app will ask for permission to use your location.
This is required for some of the features. It is **important** to note that
your location will not be made available or send to anyone. Unless, you enable
the `chase car mode`, which will periodically upload it to habitat. _The app
the `chase car mode`, which will periodically upload it to SondeHub. _The app
will always start with `chase car mode` disabled._

### Offline storage

The app will ask to use offline storage. You will need to accept, in order to
use the offline capabilities. The app will cache all files making it available
even when there is no network coverage. Latest position data will also be stored
and used when you start up with no network. When you get back online, the app
will fetch the latest position data.

## Browser requirements

Any modern browser should be able to run the app. Including the latest version of IE.
Expand All @@ -46,7 +35,6 @@ This is also true for mobile, some build-in browsers may not work.
Don't hesitate to report any issues, or suggest improvements. Just visit the [issues page](https://github.com/projecthorus/sondehub-tracker/issues).
Pull requests are welcome.


## Installation

Requirements: __Java__ and (Linux or Cygwin environment)
Expand All @@ -61,9 +49,6 @@ For __applicationCache__ to work your server needs to send the correct MIME type

Author: Daniel Saul [@danielsaul](https://github.com/danielsaul)

[See concept for phone portrait mode](https://github.com/rossengeorgiev/habitat-mobile-tracker/blob/master/resources/concept-app-portrait.png)
[See concept for tablets](https://github.com/rossengeorgiev/habitat-mobile-tracker/blob/master/resources/concept-app-tablet.png)




15 changes: 11 additions & 4 deletions css/leaflet.fullscreen.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,17 @@
background-position: 2px -24px;
}

.leaflet-control-fullscreen {
position:relative;
top:-25px;
}
@media (orientation: landscape) {
.leaflet-control-fullscreen {
position:relative;
top:-25px;
}
.leaflet-fullscreen-on .leaflet-control-fullscreen {
position:relative;
top:0px;
}
}


/* Do not combine these two rules; IE will break. */
.leaflet-container:-webkit-full-screen {
Expand Down
3 changes: 3 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -368,10 +368,13 @@ <h3>Report Recovery</h3>
<script type="text/javascript" language="javascript" src="js/Leaflet.fullscreen.min.js"></script>
<script type="text/javascript" language="javascript" src="js/L.Terminator.js"></script>
<script src="https://xc5dqkj2cgb1.statuspage.io/embed/script.js"></script>
<script type="text/javascript" language="javascript" src="js/mobile.js"></script>
<!--
<script type="text/javascript" language="javascript" src="js/jquery-1.12.4-min.js"></script>
<script type="text/javascript" language="javascript" src="js/chasecar.lib.js"></script>
<script type="text/javascript" language="javascript" src="js/iscroll.js"></script>
<script type="text/javascript" language="javascript" src="js/tracker.js"></script>
<script type="text/javascript" language="javascript" src="js/app.js"></script>
-->
</body>
</html>
8 changes: 7 additions & 1 deletion js/iscroll.js
Original file line number Diff line number Diff line change
Expand Up @@ -821,7 +821,13 @@ IScroll.prototype = {
},

scrollToElement: function (el, time, offsetX, offsetY, easing) {
el = el.nodeType ? el : document.querySelectorAll(el)[1];
el = el.nodeType ? el : document.querySelectorAll(el);
//figure out which el to use (oreintation)
if (el[0].offsetHeight) {
el = el[0];
} else {
el = el[1];
}

if ( !el ) {
return;
Expand Down
11 changes: 8 additions & 3 deletions js/tracker.js
Original file line number Diff line number Diff line change
Expand Up @@ -522,9 +522,6 @@ function load() {
if(!is_mobile && !offline.get('opt_nowelcome') && $(window).width() > 900) $('.nav li.about').click();

}, 500);

// load if aprs layer, if selected
if(offline.get('opt_layers_aprs')) map.overlayMapTypes.setAt("1", overlayAPRS);
}

function panTo(vcallsign) {
Expand All @@ -543,6 +540,10 @@ function panTo(vcallsign) {

function panToRecovery(rcallsign) {
if(offline.get('opt_hide_recoveries')) alert("Recovered Sonde Hidden, enable in settings");
//if mobile close panel
if (is_mobile) {
$('.flatpage, #homebox').hide();
}
for (let i = 0; i < recoveries.length; i++) {
if (recoveries[i].hasOwnProperty('serial')) {
if (recoveries[i]['serial'] == rcallsign) {
Expand Down Expand Up @@ -796,12 +797,16 @@ function focusVehicle(vcallsign, ignoreOpt) {

if(i == vcallsign || vcallsign === null) {
if(vehicle.horizon_circle) vehicle.horizon_circle.setStyle({opacity:opacityFocused * 0.6});
if(vehicle.horizon_circle_title) vehicle.subhorizon_circle_title.setOpacity(opacityFocused * 0.8);
if(vehicle.subhorizon_circle) vehicle.subhorizon_circle.setStyle({opacity:opacityFocused * 0.8});
if(vehicle.subhorizon_circle_title) vehicle.subhorizon_circle_title.setOpacity(opacityFocused * 0.8);
for(j in vehicle.polyline) vehicle.polyline[j].setStyle({opacity:opacityFocused});
}
else {
if(vehicle.horizon_circle) vehicle.horizon_circle.setStyle({opacity:opacityOther * 0.6});
if(vehicle.horizon_circle_title) vehicle.horizon_circle_title.setOpacity(opacityOther * 0.6);
if(vehicle.subhorizon_circle) vehicle.subhorizon_circle.setStyle({opacity:opacityOther * 0.8});
if(vehicle.subhorizon_circle_title) vehicle.subhorizon_circle_title.setOpacity(opacityOther * 0.8);
for(j in vehicle.polyline) vehicle.polyline[j].setStyle({opacity:opacityOther});
}
}
Expand Down
Binary file modified resources/mobiletracker-screencap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.