diff --git a/web/libs/css/dash2.monitors.css b/web/libs/css/dash2.monitors.css index 69b6e9d4..106a901d 100644 --- a/web/libs/css/dash2.monitors.css +++ b/web/libs/css/dash2.monitors.css @@ -112,3 +112,12 @@ img.circle-img,div.circle-img{border-radius:50%;height:50px;width:50px} bottom: 10px; right: 10px; } +.monitor_item .gps-map-details { + position: absolute; + padding: 5px 7px; + border-radius: 25px; + background:rgba(0,0,0,0.5); + z-index: 9; + top: 10px; + right: 10px; +} diff --git a/web/libs/js/dash2.elementbuilder.js b/web/libs/js/dash2.elementbuilder.js index d45229ef..19921a06 100644 --- a/web/libs/js/dash2.elementbuilder.js +++ b/web/libs/js/dash2.elementbuilder.js @@ -100,7 +100,12 @@ $.ccio.tm=function(x,d,z,user){ k.mode=$.ccio.init('humanReadMode',d.mode); var dataTarget = '.monitor_item[mid=\''+d.mid+'\'][ke=\''+d.ke+'\'][auth=\''+user.auth_token+'\']'; tmp+='
'; - tmp+=''; + tmp+=``; + tmp+=''; tmp+='
'; tmp+='
'; tmp+='
' diff --git a/web/libs/js/dash2.gps.js b/web/libs/js/dash2.gps.js index 13ef369c..4401b4b2 100644 --- a/web/libs/js/dash2.gps.js +++ b/web/libs/js/dash2.gps.js @@ -1,4 +1,10 @@ $(document).ready(function(){ + window.setRadialBearing = function(iconElement,addedDegrees,titlePrefix){ + //fa-compass + var degrees = -35; + degrees += addedDegrees + iconElement.css('transform','rotate(' + degrees + 'deg)').attr('title',titlePrefix + addedDegrees) + } var createMapElement = function(options){ $(`#${options.id}`).html(`
`) var vidViewMap = L.map(options.id + '_map').setView(options.initalView, options.zoom) @@ -32,7 +38,6 @@ $(document).ready(function(){ $.get(getApiPrefix() + '/videos/' + groupKey + '/' + monitorId + '/' + filename + '?json=true',function(video){ var response = {ok: false} var gps = video.details.gps - console.log(video) if(gps && gps[0]){ var gpsPoints = {} var firstMarker = gps[0] @@ -50,7 +55,7 @@ $(document).ready(function(){ id: options.targetMapElement, initalView: [firstMarker.lat,firstMarker.lng], marker: [firstMarker.lat,firstMarker.lng], - zoom: 5, + zoom: 2, }) videoElement.on('timeupdate',function(){ var point = gpsPoints[parseInt(this.currentTime)] diff --git a/web/libs/js/dash2.socketio.js b/web/libs/js/dash2.socketio.js index d9dd85ef..b62f5688 100644 --- a/web/libs/js/dash2.socketio.js +++ b/web/libs/js/dash2.socketio.js @@ -658,8 +658,10 @@ $.ccio.globalWebsocket=function(d,user){ break; case'gps': var gps = d.gps - var mapBoxMarker = $.ccio.mon[user.ke + d.mid + user.auth_token].mapBoxMarker - $(`#gps-map-${d.mid}`).removeClass('hidden') + var activeMonitor = $.ccio.mon[user.ke + d.mid + user.auth_token] + var mapBoxMarker = activeMonitor.mapBoxMarker + var monitorElement = $(`.monitor_item[mid="${d.mid}"]`) + monitorElement.find(`.gps-map-info`).removeClass('hidden') if(!mapBoxMarker){ var mapBox = L.map(`gps-map-${d.mid}`).setView([gps.lat, gps.lng], 5); @@ -668,13 +670,21 @@ $.ccio.globalWebsocket=function(d,user){ }).addTo(mapBox); var mapBoxMarker = L.marker([gps.lat, gps.lng]).addTo(mapBox); - $.ccio.mon[user.ke + d.mid + user.auth_token].mapBoxMarker = mapBoxMarker + activeMonitor.mapBoxMarker = mapBoxMarker + activeMonitor.mapBoxBearingElement = monitorElement.find(`.gps-info-bearing`) + activeMonitor.mapBoxSpeedElement = monitorElement.find(`.gps-info-speed`) }else{ mapBoxMarker.setLatLng([gps.lat, gps.lng]).update() } - clearTimeout($.ccio.mon[user.ke + d.mid + user.auth_token].mapBoxTimeout) - $.ccio.mon[user.ke + d.mid + user.auth_token].mapBoxTimeout = setTimeout(function(){ - $(`#gps-map-${d.mid}`).addClass('hidden') + if(gps.bearing){ + setRadialBearing(activeMonitor.mapBoxBearingElement,gps.bearing,'Bearing : ') + } + if(gps.speed){ + setRadialBearing(activeMonitor.mapBoxSpeedElement,gps.speed,'Speed (meters/second) : ') + } + clearTimeout(activeMonitor.mapBoxTimeout) + activeMonitor.mapBoxTimeout = setTimeout(function(){ + monitorElement.find(`.gps-map-info`).addClass('hidden') },30000) break; }