infowindow for ysf markers

This commit is contained in:
Jakob Ketterl 2019-07-11 21:21:01 +02:00
parent 8edc7c1374
commit acbf2939c9
2 changed files with 19 additions and 3 deletions

View File

@ -21,6 +21,7 @@ body {
h3 {
margin: 10px 0;
text-align: center;
}
ul {

View File

@ -46,6 +46,9 @@
marker = markers[update.callsign];
} else {
marker = new google.maps.Marker();
marker.addListener('click', function(){
showMarkerInfoWindow(update.callsign, pos);
});
markers[update.callsign] = marker;
}
marker.setOptions($.extend({
@ -58,6 +61,7 @@
// TODO the trim should happen on the server side
if (expectedCallsign && expectedCallsign == update.callsign.trim()) {
map.panTo(pos);
showMarkerInfoWindow(update.callsign, pos);
delete(expectedCallsign);
}
break;
@ -72,7 +76,7 @@
} else {
rectangle = new google.maps.Rectangle();
rectangle.addListener('click', function(){
showInfoWindow(update.location.locator, center);
showLocatorInfoWindow(update.location.locator, center);
});
rectangles[update.callsign] = rectangle;
}
@ -93,7 +97,7 @@
if (expectedLocator && expectedLocator == update.location.locator) {
map.panTo(center);
showInfoWindow(expectedLocator, center);
showLocatorInfoWindow(expectedLocator, center);
delete(expectedLocator);
}
break;
@ -175,7 +179,7 @@
connect();
var infowindow;
var showInfoWindow = function(locator, pos) {
var showLocatorInfoWindow = function(locator, pos) {
if (!infowindow) infowindow = new google.maps.InfoWindow();
var inLocator = $.map(rectangles, function(r, callsign) {
return {callsign: callsign, locator: r.locator, lastseen: r.lastseen}
@ -198,6 +202,17 @@
infowindow.open(map);
};
var showMarkerInfoWindow = function(callsign, pos) {
if (!infowindow) infowindow = new google.maps.InfoWindow();
var marker = markers[callsign];
var timestring = moment(marker.lastseen).fromNow();
infowindow.setContent(
'<h3>' + callsign + '</h3>' +
'<div>' + timestring + '</div>'
);
infowindow.open(map, marker);
}
var getScale = function(lastseen) {
var age = new Date().getTime() - lastseen;
var scale = 1;