var start_stop_btn,
wpid = false,
map,
z,
op,
prev_lat,
prev_long,
min_speed = 0,
max_speed = 0,
min_altitude = 0,
max_altitude = 0,
distance_travelled = 0,
min_accuracy = 150,
date_pos_updated = "",
info_string = "";
function format_time_component(time_component)
{
if (time_component < 10)
time_component = "0" + time_component;
else if (time_component.length < 2)
time_component = time_component + "0";
return time_component;
}
function geo_success(position)
{
info_string = "";
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var current_datetime = format_time_component(h) + ":" + format_time_component(m) + ":" + format_time_component(s);
if (position.coords.accuracy <= min_accuracy)
{
if (prev_lat != position.coords.latitude || prev_long != position.coords.longitude)
{
if (position.coords.speed > max_speed)
max_speed = position.coords.speed;
else if (position.coords.speed < min_speed)
min_speed = position.coords.speed;
if (position.coords.altitude > max_altitude)
max_altitude = position.coords.altitude;
else if (position.coords.altitude < min_altitude)
min_altitude = position.coords.altitude;
prev_lat = position.coords.latitude;
prev_long = position.coords.longitude;
info_string = "Current positon: lat=" + position.coords.latitude + ", long=" + position.coords.longitude + " (accuracy " + Math.round(position.coords.accuracy, 1) + "m)" + (min_speed ? "
Speed: min=" + min_speed + "m/s, max=" + max_speed + "m/s" : "") + (min_altitude ? "
Altitude: min=" + min_altitude + "m, max=" + max_altitude + "m (accuracy " + Math.round(position.coords.altitudeAccuracy, 1) + "m)" : "") + "
last reading taken at: " + current_datetime;
}
}
else
info_string = "Accuracy not sufficient (" + Math.round(position.coords.accuracy, 1) + "m vs " + min_accuracy + "m) - last reading taken at: " + current_datetime;
if (info_string)
op.innerHTML = info_string;
}
function geo_error(error)
{
switch (error.code)
{
case error.TIMEOUT:
op.innerHTML = "Timeout!";
break;
}
;
}
function get_pos()
{
if (!!navigator.geolocation)
wpid = navigator.geolocation.watchPosition(geo_success, geo_error, {
enableHighAccuracy: true,
maximumAge: 30000,
timeout: 27000
});
else
op.innerHTML = "ERROR: Your Browser doesnt support the Geo Location API";
}
function init_geo()
{
op = document.getElementById("output");
if (op)
{
navigator.geolocation.clearWatch(wpid);
wpid = false;
get_pos();
}
}
window.onload = init_geo;