Merge of branches/life with trunk.
This commit is contained in:
commit
43178d916e
Notes:
subgit
2018-03-07 17:58:50 +01:00
r628 www/branches/life
@ -51,11 +51,6 @@ function getGeolocation(id, lat, lng) {
|
|||||||
|
|
||||||
/* Load events using ajax */
|
/* Load events using ajax */
|
||||||
function ajaxLoadEvents(stime, etime) {
|
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 ) {
|
if ( !stime ) {
|
||||||
var stime = new Date();
|
var stime = new Date();
|
||||||
stime.setDate(stime.getDate()-config['map']['timespan']);
|
stime.setDate(stime.getDate()-config['map']['timespan']);
|
||||||
@ -64,13 +59,14 @@ function ajaxLoadEvents(stime, etime) {
|
|||||||
var etime = new Date();
|
var etime = new Date();
|
||||||
etime.setDate(etime.getDate()+1);
|
etime.setDate(etime.getDate()+1);
|
||||||
};
|
};
|
||||||
|
var mapBounds = map.getBounds();
|
||||||
var request_data = {
|
var request_data = {
|
||||||
starttime: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
starttime: sprintf("%d-%02d-%02d", stime.getFullYear(), stime.getMonth()+1, stime.getDate()),
|
||||||
endtime: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
endtime: sprintf("%d-%02d-%02d", etime.getFullYear(), etime.getMonth()+1, etime.getDate()),
|
||||||
minlat: S-config['map']['latlngDelta'],
|
minlat: mapBounds.getSouth()-config['map']['latlngDelta'],
|
||||||
maxlat: N+config['map']['latlngDelta'],
|
maxlat: mapBounds.getNorth()+config['map']['latlngDelta'],
|
||||||
minlon: W-config['map']['latlngDelta'],
|
minlon: mapBounds.getWest()-config['map']['latlngDelta'],
|
||||||
maxlon: E+config['map']['latlngDelta'],
|
maxlon: mapBounds.getEast()+config['map']['latlngDelta'],
|
||||||
minmag: config['event']['minMag']-config['event']['minMagDelta'],
|
minmag: config['event']['minMag']-config['event']['minMagDelta'],
|
||||||
};
|
};
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@ -89,7 +85,7 @@ function ajaxLoadEvents(stime, etime) {
|
|||||||
var evaluationStatus = $(this).find('evaluationStatus').text();
|
var evaluationStatus = $(this).find('evaluationStatus').text();
|
||||||
var type = $(this).find('type').last().text();
|
var type = $(this).find('type').last().text();
|
||||||
var location
|
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
|
// use getLocation if it fails or description -> text if it also fails
|
||||||
if ( geolocationTable[id] ) {
|
if ( geolocationTable[id] ) {
|
||||||
location = geolocationTable[id];
|
location = geolocationTable[id];
|
||||||
@ -99,14 +95,28 @@ function ajaxLoadEvents(stime, etime) {
|
|||||||
};
|
};
|
||||||
// create table row: Date, Time, Mag, Location
|
// 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'] ) {
|
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 = '<tr class="tablesorter-hasChildRow">'
|
var row = '<tr class="tablesorter-hasChildRow">'
|
||||||
+ '<td class="utctime-date">'+otime.split('.')[0]+'Z</td>'
|
+ '<td class="utctime-date">'+otime.split('.')[0]+'Z</td>'
|
||||||
+ '<td class="utctime-time">'+otime.split('.')[0]+'Z</td>'
|
+ '<td class="utctime-time">'+otime.split('.')[0]+'Z</td>'
|
||||||
+ sprintf('<td class="ar">%.1f</td>', Number(mag))
|
+ sprintf('<td class="ar">%.1f</td>', Number(mag))
|
||||||
+ '<td><a href="#" class="toggle" eventid="'+id+'">'+location+'</a><a class="map-link" href="#" eventid="'+id+'">Karte</a></td>'
|
+ '<td><a href="#" class="toggle" eventid="'+id+'">'+location+'</a><a class="map-link" href="#" eventid="'+id+'">Karte</a></td>'
|
||||||
+ '</tr>';
|
+ '</tr>';
|
||||||
row += '<tr class="tablesorter-childRow">'
|
// setting up event details (2nd line)
|
||||||
|
row += '<tr class="tablesorter-childRow event-details">'
|
||||||
+ '<td colspan="4" eventid="'+id+'">Daten werden geladen ...</td></tr>';
|
+ '<td colspan="4" eventid="'+id+'">Daten werden geladen ...</td></tr>';
|
||||||
|
// 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 += '<tr class="tablesorter-childRow event-download">'
|
||||||
|
+ '<td colspan="4" eventid="'+id+'">'
|
||||||
|
+ sprintf('Download <a class="xml-link" target="_blank" href="%s">QuakeML</a> or <a class="mseed-link" target="_blank" href="%s">miniSEED</a>', xmlurl, mseedurl)
|
||||||
|
+ '</td></tr>';
|
||||||
|
// add row to table
|
||||||
var added = $('#eventstable tbody').append(row);
|
var added = $('#eventstable tbody').append(row);
|
||||||
added.find('.tablesorter-childRow td').hide();
|
added.find('.tablesorter-childRow td').hide();
|
||||||
$('#eventstable').find('td.utctime-date').each(function() {
|
$('#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 marker = addEventMarker(id, Number(lat), Number(lng), Number(mag));
|
||||||
var text = sprintf('<h3 eventid="%s">%s</h3>', id, location)
|
var text = sprintf('<h3 eventid="%s">%s</h3>', id, location)
|
||||||
+ sprintf('<p>Ereignis: %s</br>', id)
|
+ sprintf('<p>Ereignis: %s</br>', id)
|
||||||
|
+ sprintf('Type: %s</br>', type)
|
||||||
|
+ sprintf('Magnitude: %3.1f</br>', Number(mag))
|
||||||
+ sprintf('Ort: %.4f °N, %.4f °O </br>', Number(lat), Number(lng))
|
+ sprintf('Ort: %.4f °N, %.4f °O </br>', Number(lat), Number(lng))
|
||||||
+ sprintf('Zeit: <span class="utctime">%sZ</span></p>', otime.split('.')[0], otime.split('.')[0]);
|
+ sprintf('Zeit: <span class="utctime">%sZ</span></p>', otime.split('.')[0], otime.split('.')[0]);
|
||||||
marker.bindPopup(text);
|
marker.bindPopup(text);
|
||||||
@ -206,7 +218,7 @@ function ajaxLoadEventInfo(id) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
row = row + '</pre>';
|
row = row + '</pre>';
|
||||||
$('#eventstable > tbody > tr.tablesorter-childRow > td[eventid='+id+']').html(row);
|
$('#eventstable > tbody > tr.event-details > td[eventid='+id+']').html(row);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
complete: function () {
|
complete: function () {
|
||||||
@ -228,7 +240,6 @@ function toggleFilteredMarkers() {
|
|||||||
eventTable[$(this).attr("eventid")].setStyle({opacity: 1, strokeOpacity: 1, fillOpacity: config['event']['markerOpacity']});
|
eventTable[$(this).attr("eventid")].setStyle({opacity: 1, strokeOpacity: 1, fillOpacity: config['event']['markerOpacity']});
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
// hide filtered events in map
|
// hide filtered events in map
|
||||||
$("#eventstable > tbody > tr.filtered > td > a.map-link").each( function() {
|
$("#eventstable > tbody > tr.filtered > td > a.map-link").each( function() {
|
||||||
if ( $(this).attr("eventid") ) {
|
if ( $(this).attr("eventid") ) {
|
||||||
@ -272,7 +283,7 @@ function highlightEvent( id ) {
|
|||||||
};
|
};
|
||||||
var normalStyle = {
|
var normalStyle = {
|
||||||
fillColor: config['event']['markerColor'],
|
fillColor: config['event']['markerColor'],
|
||||||
color: config['event']['markerColorH']
|
color: config['event']['markerColor']
|
||||||
};
|
};
|
||||||
$("#eventstable > tbody > tr:not(.filtered)").find("a.map-link").each( function() {
|
$("#eventstable > tbody > tr:not(.filtered)").find("a.map-link").each( function() {
|
||||||
if ( $(this).attr("eventid") ) {
|
if ( $(this).attr("eventid") ) {
|
||||||
@ -320,20 +331,16 @@ $(document).ready(function() {
|
|||||||
showProcessing: true,
|
showProcessing: true,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// hide child rows
|
// hide child rows
|
||||||
$('#eventstable > tbody > tr.tablesorter-childRow td').hide();
|
$('#eventstable > tbody > tr.tablesorter-childRow td').hide();
|
||||||
|
|
||||||
// update map after filtering
|
// update map after filtering
|
||||||
$('#eventstable').bind('filterEnd', function(){
|
$('#eventstable').bind('filterEnd', function(){
|
||||||
toggleFilteredMarkers();
|
toggleFilteredMarkers();
|
||||||
});
|
});
|
||||||
|
|
||||||
// highlight first event
|
// highlight first event
|
||||||
$('#eventstable').bind('sortEnd', function(){
|
$('#eventstable').bind('sortEnd', function(){
|
||||||
highlightFirstEvent();
|
highlightFirstEvent();
|
||||||
});
|
});
|
||||||
|
|
||||||
// show / hide event info
|
// show / hide event info
|
||||||
$('#eventstable').delegate('.toggle', 'click' , function(){
|
$('#eventstable').delegate('.toggle', 'click' , function(){
|
||||||
// load event details
|
// load event details
|
||||||
@ -342,7 +349,6 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
// toggle visibility of selected row
|
// toggle visibility of selected row
|
||||||
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').toggle('slow');
|
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').toggle('slow');
|
||||||
|
|
||||||
// mark currently selected row and remove class selected from all other rows
|
// mark currently selected row and remove class selected from all other rows
|
||||||
// hide other rows
|
// hide other rows
|
||||||
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').addClass('selected-now');
|
$(this).closest('tr').nextUntil('tr.tablesorter-hasChildRow').find('td').addClass('selected-now');
|
||||||
@ -357,12 +363,12 @@ $(document).ready(function() {
|
|||||||
var selected = $(this).hasClass('selected');
|
var selected = $(this).hasClass('selected');
|
||||||
if ( selected ) {
|
if ( selected ) {
|
||||||
$(this).removeClass('selected');
|
$(this).removeClass('selected');
|
||||||
|
highlightFirstEvent();
|
||||||
} else {
|
} else {
|
||||||
$(this).addClass('selected');
|
$(this).addClass('selected');
|
||||||
|
highlightEvent($(this).attr('eventid'));
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -7,42 +7,42 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- Style definitions -->
|
<!-- Style definitions -->
|
||||||
<link rel="stylesheet" href="main.css">
|
<link rel="stylesheet" href="main.css" />
|
||||||
|
|
||||||
<!-- jQuery & jQueryUI -->
|
<!-- jQuery & jQueryUI -->
|
||||||
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
|
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css" />
|
||||||
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/cupertino/jquery-ui.css">
|
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/cupertino/jquery-ui.css" />
|
||||||
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
|
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
|
||||||
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
|
<script type="text/javascript" src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
|
||||||
|
|
||||||
<!-- Localtime -->
|
<!-- Localtime -->
|
||||||
<script type="text/javascript" src="external/jquery.localtime-0.9.1.min.js"></script>
|
<script type="text/javascript" src="external/jquery.localtime-0.9.1.min.js"></script>
|
||||||
|
|
||||||
<!-- Tablesorter: required -->
|
<!-- Tablesorter: required -->
|
||||||
<link rel="stylesheet" href="external/theme.blue.css">
|
<link rel="stylesheet" href="external/theme.blue.css"/>
|
||||||
<script src="external/jquery.tablesorter.min.js"></script>
|
<script type="text/javascript" src="external/jquery.tablesorter.min.js"></script>
|
||||||
<!-- script src="external/widget-scroller.js"></script -->
|
<!-- script type="text/javascript" src="external/widget-scroller.js"></script -->
|
||||||
<script src="external/jquery.tablesorter.widgets.min.js"></script>
|
<script type="text/javascript" src="external/jquery.tablesorter.widgets.min.js"></script>
|
||||||
<script src="external/jquery.tablesorter.pager.min.js"></script>
|
<script type="text/javascript" src="external/jquery.tablesorter.pager.min.js"></script>
|
||||||
|
|
||||||
<!-- misc functions -->
|
<!-- misc functions -->
|
||||||
<script src="misc.js"></script>
|
<script type="text/javascript" src="misc.js"></script>
|
||||||
<script src="geolocation.js"></script>
|
<script type="text/javascript" src="geolocation.js"></script>
|
||||||
<script src="external/sprintf.min.js"></script>
|
<script type="text/javascript" src="external/sprintf.min.js"></script>
|
||||||
|
|
||||||
<!-- Tablesorter: pager -->
|
<!-- Tablesorter: pager -->
|
||||||
<link rel="stylesheet" href="external/jquery.tablesorter.pager.css">
|
<link rel="stylesheet" href="external/jquery.tablesorter.pager.css" />
|
||||||
<script src="external/widget-pager.js"></script>
|
<script type="text/javascript" src="external/widget-pager.js"></script>
|
||||||
<script src="events.js"></script>
|
<script type="text/javascript" src="events.js"></script>
|
||||||
|
|
||||||
<!-- Leaflet -->
|
<!-- Leaflet -->
|
||||||
<link rel="stylesheet" href="external/leaflet.css" />
|
<link rel="stylesheet" href="external/leaflet.css" />
|
||||||
<script src="external/leaflet.js"></script>
|
<script type="text/javascript" src="external/leaflet.js"></script>
|
||||||
<!-- script src="external/TileLayer.Grayscale.js"></script -->
|
<!-- script type="text/javascript" src="external/TileLayer.Grayscale.js"></script -->
|
||||||
<script src="map.js"></script>
|
<script type="text/javascript" src="map.js"></script>
|
||||||
|
|
||||||
<!-- Stations -->
|
<!-- Stations -->
|
||||||
<script src="stations.js"></script>
|
<script type="text/javascript" src="stations.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@ -72,7 +72,7 @@
|
|||||||
</select>
|
</select>
|
||||||
<select class="gotoPage" title="Select page number"></select>
|
<select class="gotoPage" title="Select page number"></select>
|
||||||
</div>
|
</div>
|
||||||
<table class="tablesorter" id="eventstable" data-sortlist="[[0,0],[1,1],[2,1]]">
|
<table class="tablesorter" id="eventstable">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="85" />
|
<col width="85" />
|
||||||
<col width="50" />
|
<col width="50" />
|
||||||
@ -135,6 +135,7 @@
|
|||||||
<!-- Info -->
|
<!-- Info -->
|
||||||
<div class="tab" id="infotab"></div>
|
<div class="tab" id="infotab"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="rublogo"><img class="rublogo" src="logo_RUB_155x30.png" alt="Ruhr-Universität Bochum" title="Ruhr-Universität Bochum"/></div>
|
<div class="rublogo"><img class="rublogo" src="logo_RUB_155x30.png" alt="Ruhr-Universität Bochum" title="Ruhr-Universität Bochum" /></div>
|
||||||
<div id="map" class="map"></div>
|
<div id="map" class="map"></div>
|
||||||
</body>
|
</body>
|
||||||
|
</html>
|
||||||
|
@ -104,7 +104,7 @@ function initMapLink() {
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
||||||
// create a map in the "map" div, set the view to a given place and zoom
|
// 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);
|
new L.Control.Zoom({ position: 'topright' }).addTo(map);
|
||||||
|
|
||||||
// add MapQuestOSM tile layer
|
// add MapQuestOSM tile layer
|
||||||
|
@ -80,6 +80,7 @@ var config = {
|
|||||||
ajax: {
|
ajax: {
|
||||||
timeout: 150000, // 15 seconds
|
timeout: 150000, // 15 seconds
|
||||||
eventURL: 'https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/event/1/query',
|
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',
|
stationURL: 'https://ariadne.geophysik.ruhr-uni-bochum.de/fdsnws/station/1/query',
|
||||||
nominatimURL: '//open.mapquestapi.com/nominatim/v1/reverse.php',
|
nominatimURL: '//open.mapquestapi.com/nominatim/v1/reverse.php',
|
||||||
// nominatimURL: '//nominatim.openstreetmap.org/reverse',
|
// nominatimURL: '//nominatim.openstreetmap.org/reverse',
|
||||||
@ -91,7 +92,7 @@ var config = {
|
|||||||
markerColorH: '#FF0000',
|
markerColorH: '#FF0000',
|
||||||
minMag: 1.2,
|
minMag: 1.2,
|
||||||
minMagDelta: 0.1,
|
minMagDelta: 0.1,
|
||||||
typeWhitelist: ['earthquake', 'induced or triggered event', 'quarry blast'],
|
typeWhitelist: ['earthquake', 'induced or triggered event'],
|
||||||
},
|
},
|
||||||
map: {
|
map: {
|
||||||
zoomDefault: 9,
|
zoomDefault: 9,
|
||||||
|
Loading…
Reference in New Issue
Block a user