diff --git a/www/events.js b/www/events.js index 14b4501..a632b48 100644 --- a/www/events.js +++ b/www/events.js @@ -51,11 +51,6 @@ function getGeolocation(id, lat, lng) { /* Load events using ajax */ function ajaxLoadEvents(stime, etime) { - var mapBounds = map.getBounds(); - var N = mapBounds.getNorth(); - var E = mapBounds.getEast(); - var S = mapBounds.getSouth(); - var W = mapBounds.getWest(); if ( !stime ) { var stime = new Date(); stime.setDate(stime.getDate()-config['map']['timespan']); @@ -64,13 +59,14 @@ function ajaxLoadEvents(stime, etime) { var etime = new Date(); etime.setDate(etime.getDate()+1); }; + var mapBounds = map.getBounds(); var request_data = { starttime: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()), endtime: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()), - minlat: S-config['map']['latlngDelta'], - maxlat: N+config['map']['latlngDelta'], - minlon: W-config['map']['latlngDelta'], - maxlon: E+config['map']['latlngDelta'], + minlat: mapBounds.getSouth()-config['map']['latlngDelta'], + maxlat: mapBounds.getNorth()+config['map']['latlngDelta'], + minlon: mapBounds.getWest()-config['map']['latlngDelta'], + maxlon: mapBounds.getEast()+config['map']['latlngDelta'], minmag: config['event']['minMag']-config['event']['minMagDelta'], }; $.ajax({ @@ -89,7 +85,7 @@ function ajaxLoadEvents(stime, etime) { var evaluationStatus = $(this).find('evaluationStatus').text(); var type = $(this).find('type').last().text(); var location - // try use location with reverse geolocation lookup (nominatim), check cache first + // try to use location with reverse geolocation lookup (nominatim), check cache first // use getLocation if it fails or description -> text if it also fails if ( geolocationTable[id] ) { location = geolocationTable[id]; @@ -99,14 +95,28 @@ function ajaxLoadEvents(stime, etime) { }; // create table row: Date, Time, Mag, Location if ( !eventTable[id] && $.inArray(type, config['event']['typeWhitelist'] )+1 && $.inArray(evaluationStatus, config['event']['evaluationBlacklist'])<0 && Number(mag)+0.05 >= config['event']['minMag'] ) { + // general event info (1st line) var row = '' + ''+otime.split('.')[0]+'Z' + ''+otime.split('.')[0]+'Z' + sprintf('%.1f', Number(mag)) + ''+location+'Karte' + ''; - row += '' + // setting up event details (2nd line) + row += '' + 'Daten werden geladen ...'; + // setting up download links (3nd line) + var xmlurl = sprintf('%s?formatted=true&includearrivals=true&eventid=%s', config['ajax']['eventURL'], id); + var oTime = new Date(otime); + var stime = new Date(oTime.getTime()-10*1000.-oTime.getMilliseconds()); + var etime = new Date(oTime.getTime()+50*1000.-oTime.getMilliseconds()); + console.log(oTime, stime, etime); + var mseedurl = sprintf('%s?net=GE,GR,RN&cha=EH?,HH?&start=%04d-%02d-%02dT%02d:%02d:%02d&end=%04d-%02d-%02dT%02d:%02d:%02d', config['ajax']['mseedURL'], Number(stime.getUTCFullYear()), Number(stime.getUTCMonth())+1, Number(stime.getUTCDate()), Number(stime.getUTCHours()), Number(stime.getUTCMinutes()), Number(stime.getUTCSeconds()), Number(etime.getUTCFullYear()), Number(etime.getUTCMonth())+1, Number(etime.getUTCDate()), Number(etime.getUTCHours()), Number(etime.getUTCMinutes()), Number(etime.getUTCSeconds())); + row += '' + + '' + + sprintf('Download QuakeML or miniSEED', xmlurl, mseedurl) + + ''; + // add row to table var added = $('#eventstable tbody').append(row); added.find('.tablesorter-childRow td').hide(); $('#eventstable').find('td.utctime-date').each(function() { @@ -123,6 +133,8 @@ function ajaxLoadEvents(stime, etime) { var marker = addEventMarker(id, Number(lat), Number(lng), Number(mag)); var text = sprintf('

%s

', id, location) + sprintf('

Ereignis: %s
', id) + + sprintf('Type: %s
', type) + + sprintf('Magnitude: %3.1f
', Number(mag)) + sprintf('Ort: %.4f °N, %.4f °O
', Number(lat), Number(lng)) + sprintf('Zeit: %sZ

', otime.split('.')[0], otime.split('.')[0]); marker.bindPopup(text); @@ -206,7 +218,7 @@ function ajaxLoadEventInfo(id) { }; }); row = row + ''; - $('#eventstable > tbody > tr.tablesorter-childRow > td[eventid='+id+']').html(row); + $('#eventstable > tbody > tr.event-details > td[eventid='+id+']').html(row); }); }, complete: function () { @@ -228,7 +240,6 @@ function toggleFilteredMarkers() { eventTable[$(this).attr("eventid")].setStyle({opacity: 1, strokeOpacity: 1, fillOpacity: config['event']['markerOpacity']}); }; }); - // hide filtered events in map $("#eventstable > tbody > tr.filtered > td > a.map-link").each( function() { if ( $(this).attr("eventid") ) { @@ -272,7 +283,7 @@ function highlightEvent( id ) { }; var normalStyle = { fillColor: config['event']['markerColor'], - color: config['event']['markerColorH'] + color: config['event']['markerColor'] }; $("#eventstable > tbody > tr:not(.filtered)").find("a.map-link").each( function() { if ( $(this).attr("eventid") ) { @@ -320,20 +331,16 @@ $(document).ready(function() { showProcessing: true, } }); - // hide child rows $('#eventstable > tbody > tr.tablesorter-childRow td').hide(); - // update map after filtering $('#eventstable').bind('filterEnd', function(){ toggleFilteredMarkers(); }); - // highlight first event $('#eventstable').bind('sortEnd', function(){ highlightFirstEvent(); }); - // show / hide event info $('#eventstable').delegate('.toggle', 'click' , function(){ // load event details @@ -342,7 +349,6 @@ $(document).ready(function() { // toggle visibility of selected row $(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').toggle('slow'); - // mark currently selected row and remove class selected from all other rows // hide other rows $(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').addClass('selected-now'); @@ -357,12 +363,12 @@ $(document).ready(function() { var selected = $(this).hasClass('selected'); if ( selected ) { $(this).removeClass('selected'); + highlightFirstEvent(); } else { $(this).addClass('selected'); + highlightEvent($(this).attr('eventid')); }; }); - return false; }); - }); diff --git a/www/index.html.de b/www/index.html.de index 71f8620..72277a4 100644 --- a/www/index.html.de +++ b/www/index.html.de @@ -7,42 +7,42 @@ - + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - + @@ -72,7 +72,7 @@ - +
@@ -135,6 +135,7 @@
- +
+ diff --git a/www/map.js b/www/map.js index b53ec36..c8ef474 100644 --- a/www/map.js +++ b/www/map.js @@ -104,7 +104,7 @@ function initMapLink() { $(document).ready(function() { // create a map in the "map" div, set the view to a given place and zoom - map = L.map('map', { zoomControl: false }).setView(config['map']['centerDefault'], config['map']['zoomDefault']); + map = L.map('map', { zoomControl: false, worldCopyJump: true }).setView(config['map']['centerDefault'], config['map']['zoomDefault']); new L.Control.Zoom({ position: 'topright' }).addTo(map); // add MapQuestOSM tile layer diff --git a/www/misc.js b/www/misc.js index aca89d2..a8efb38 100644 --- a/www/misc.js +++ b/www/misc.js @@ -80,6 +80,7 @@ var config = { ajax: { timeout: 150000, // 15 seconds eventURL: 'https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query', + mseedURL: 'https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/dataselect/1/query', stationURL: 'https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/station/1/query', nominatimURL: '//open.mapquestapi.com/nominatim/v1/reverse.php', // nominatimURL: '//nominatim.openstreetmap.org/reverse', @@ -91,7 +92,7 @@ var config = { markerColorH: '#FF0000', minMag: 1.2, minMagDelta: 0.1, - typeWhitelist: ['earthquake', 'induced or triggered event', 'quarry blast'], + typeWhitelist: ['earthquake', 'induced or triggered event'], }, map: { zoomDefault: 9,