diff --git a/js/tracker.js b/js/tracker.js index bb25ee3..dee29cb 100644 --- a/js/tracker.js +++ b/js/tracker.js @@ -3032,6 +3032,8 @@ function updateReceiverMarker(receiver) { receiverCanvas.addMarker(receiver.marker); } else { receiver.marker.setLatLng(latlng); + receiver.infobox = new L.popup({ autoClose: false, closeOnClick: false }).setContent(receiver.description); + receiver.marker.bindPopup(receiver.infobox); } } @@ -3042,36 +3044,37 @@ function updateReceivers(r) { for (var i in r) { if (r.hasOwnProperty(i)) { var last = r[i][Object.keys(r[i])[Object.keys(r[i]).length - 1]]; - if(last.mobile != false) continue; - var lat = parseFloat(last.uploader_position[0]); - var lon = parseFloat(last.uploader_position[1]); - var alt = parseFloat(last.uploader_position[2]); + if(last.mobile === undefined || last.mobile == false) { + var lat = parseFloat(last.uploader_position[0]); + var lon = parseFloat(last.uploader_position[1]); + var alt = parseFloat(last.uploader_position[2]); - if(lat < -90 || lat > 90 || lon < -180 || lon > 180) continue; + if(lat < -90 || lat > 90 || lon < -180 || lon > 180) continue; - var age = new Date(last.ts); + var age = new Date(last.ts); - var r_index = $.inArray(last.uploader_callsign, receiver_names); + var r_index = $.inArray(last.uploader_callsign, receiver_names); - if(r_index == -1) { - receiver_names.push(r[i].name); - r_index = receiver_names.length - 1; - receivers[r_index] = {marker: null, infobox: null}; - } + if(r_index == -1) { + receiver_names.push(last.uploader_callsign); + r_index = receiver_names.length - 1; + receivers[r_index] = {marker: null, infobox: null}; + } - var receiver = receivers[r_index]; - receiver.name = last.uploader_callsign; - receiver.software = last.software_name; - receiver.version = last.software_version; - receiver.lat = lat; - receiver.lon = lon; - receiver.alt = alt; - receiver.age = age.toISOString(); - receiver.description = ""+receiver.name+"

Radio: " + last.software_name + "-" + last.software_version - + "
Antenna: " + last.uploader_antenna + "
Last Contact: " + age.toISOString() + "
"; - receiver.fresh = true; - - updateReceiverMarker(receiver); + var receiver = receivers[r_index]; + receiver.name = last.uploader_callsign; + receiver.software = last.software_name; + receiver.version = last.software_version; + receiver.lat = lat; + receiver.lon = lon; + receiver.alt = alt; + receiver.age = age.toISOString(); + receiver.description = ""+receiver.name+"

Radio: " + last.software_name + "-" + last.software_version + + "
Antenna: " + last.uploader_antenna + "
Last Contact: " + age.toISOString() + "
"; + receiver.fresh = true; + + updateReceiverMarker(receiver); + } } }