tracman-server/static/js/.map.min.js

1 line
7.6 KiB
JavaScript
Raw Normal View History

2018-03-12 18:45:13 -06:00
"use strict";let map,marker,elevator,newLoc;const mapElem=document.getElementById("map"),socket=io("//"+window.location.hostname),IDLE_TIMEOUT=300;let _idleSecondsCounter=0;function resetIdleSecondsCounter(){_idleSecondsCounter=0}function metersToFeet(e){return"standard"===mapuser.settings.units?(3.28084*e).toFixed():e.toFixed()}function toggleMaps(e){0===e.lat&&0===e.lon?($("#map").hide(),$("#view").hide(),$("#notset").show()):($("#map").show(),$("#view").show(),$("#notset").hide())}function initMap(){if("1"!==disp){if(map=new google.maps.Map(mapElem,{center:{lat:mapuser.last.lat,lng:mapuser.last.lon},panControl:!1,scrollwheel:!0,scaleControl:!!mapuser.settings.showScale,draggable:!1,zoom:mapuser.settings.defaultZoom,streetViewControl:!1,zoomControlOptions:{position:google.maps.ControlPosition.LEFT_TOP},mapTypeId:"road"===mapuser.settings.defaultMap?google.maps.MapTypeId.ROADMAP:google.maps.MapTypeId.HYBRID}),marker=new google.maps.Marker({position:{lat:mapuser.last.lat,lng:mapuser.last.lon},title:mapuser.name,icon:mapuser.settings.marker?"/static/img/marker/"+mapuser.settings.marker+".png":"/static/img/marker/red.png",map:map,draggable:!1}),map.addListener("zoom_changed",function(){map.setCenter(marker.getPosition())}),"0"!==noHeader&&"demo"!==mapuser._id){const e=document.createElement("div");e.id="map-logo",e.innerHTML='<a href="https://www.tracman.org/"><img src="https://www.tracman.org/static/img/style/logo-28.png" alt="[]"><span class=\'text\'>Tracman</span></a>',map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(e)}const t=document.createElement("div");if(t.id="timestamp",mapuser.last.time&&(t.innerHTML="location updated "+new Date(mapuser.last.time).toLocaleString()),map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(t),mapuser.settings.showSpeed){const e=document.createElement("div"),t=document.createElement("div"),o=document.createElement("div"),n=document.createElement("div");t.id="spd-label",t.innerHTML="SPEED",o.id="spd",o.innerHTML="standard"===mapuser.settings.units?(2.23694*parseFloat(mapuser.last.spd)).toFixed():mapuser.last.spd.toFixed(),n.id="spd-unit",n.innerHTML="standard"===mapuser.settings.units?"m.p.h.":"k.p.h.",e.id="spd-sign",e.appendChild(t),e.appendChild(o),e.appendChild(n),map.controls[google.maps.ControlPosition.TOP_RIGHT].push(e)}if(mapuser.settings.showAlt){elevator=new google.maps.ElevationService;const t=document.createElement("div"),o=document.createElement("div"),n=document.createElement("div"),a=document.createElement("div");o.id="alt-label",n.id="alt",a.id="alt-unit",t.id="alt-sign",n.innerHTML="",o.innerHTML="ALTITUDE",e(mapuser.last).then(function(e){n.innerHTML=metersToFeet(e)}).catch(function(e){console.error("Could not load altitude from last known location: ",e)}),a.innerHTML="standard"===mapuser.settings.units?"feet":"meters",t.appendChild(o),t.appendChild(n),t.appendChild(a),map.controls[google.maps.ControlPosition.TOP_RIGHT].push(t)}}function e(e){return new Promise(function(t,o){"number"==typeof e.alt?(console.log("Altitude was provided in loc as ",e.alt,"m"),t(e.alt)):(console.log("No altitude was provided in loc"),function(e){return new Promise(function(t,o){return(elevator=elevator||new google.maps.ElevationService).getElevationForLocations({locations:[{lat:e.lat,lng:e.lon}]},function(e,n,a){n===google.maps.ElevationStatus.OK&&e[0]?(console.log("Altitude was retrieved from Google Elevations API as",e[0].elevation,"m"),t(e[0].elevation)):o(Error(a))})})}(e).then(function(e){t(e)}).catch(function(e){o(e)}))})}function t(e){return e.spd="standard"===mapuser.settings.units?2.23694*parseFloat(e.spd):parseFloat(e.spd),e.dir=parseFloat(e.dir),e.lat=parseFloat(e.lat),e.lon=parseFloat(e.lon),e.tim=new Date(e.tim).toLocaleString(),e}function o(e){!function e(t,o,n){if(null==newLoc||t.tim===newLoc.tim){if(!a)var a=new google.maps.StreetViewService;a.getPanorama({location:{lat:t.lat,lng:t.lon},radius:o},function(a,s){switch(s){case google.maps.StreetViewStatus.OK:n(a);break;case google.maps.StreetViewStatus.ZERO_RESULTS:e(t,2*o,n);break;default:console.error(new E