Skip to content
Snippets Groups Projects
Commit 7503a295 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Fixing timezone issues on the septoria map

parent 8a842717
No related branches found
No related tags found
2 merge requests!17Develop,!12Ny server 2019
This commit is part of merge request !12. Comments created here will be created in the context of that merge request.
Source diff could not be displayed: it is too large. Options to address this: view the blob.
/* /*
* Copyright (c) 2018 NIBIO <http://www.nibio.no/>. * Copyright (c) 2019 NIBIO <http://www.nibio.no/>.
* *
* This file is part of VIPSLogic. * This file is part of VIPSLogic.
* VIPSLogic is free software: you can redistribute it and/or modify * VIPSLogic is free software: you can redistribute it and/or modify
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
/** /**
* Self contained application for displaying several maps with risk assesments * Self contained application for displaying several maps with risk assesments
* @copyright 2018 NIBIO https://www.nibio.no/ * @copyright 2019 NIBIO https://www.nibio.no/
* @author Tor-Einar Skog <tor-einar.skog@nibio.no> * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/ */
...@@ -84,12 +84,14 @@ var initMap = function () ...@@ -84,12 +84,14 @@ var initMap = function ()
ajax(hostName + "/rest/forecastresults/-1000", function(e){ ajax(hostName + "/rest/forecastresults/-1000", function(e){
//ajax("http://vipslogic-local.no/rest/forecastresults/-1000", function(e){ //ajax("http://vipslogic-local.no/rest/forecastresults/-1000", function(e){
results = JSON.parse(e.target.responseText); results = JSON.parse(e.target.responseText);
console.info(todayAtMidnight); //console.info(todayAtMidnight);
var currentDay = todayAtMidnight; var currentDay = todayAtMidnight;
for(var mapName in maps) for(var mapName in maps)
{ {
//console.info("currentDay=" + currentDay.format());
displayResults(mapName, currentDay); displayResults(mapName, currentDay);
currentDay.setDate(currentDay.getDate()+1); //currentDay.setDate(currentDay.getDate()+1);
currentDay.add(1,"days");
} }
// This is here to fix an apparent bug in having Vector tiles // This is here to fix an apparent bug in having Vector tiles
// within the CSS grid system // within the CSS grid system
...@@ -127,10 +129,12 @@ var getFeatureStyle = function(feature) ...@@ -127,10 +129,12 @@ var getFeatureStyle = function(feature)
var displayResults = function(mapName, date){ var displayResults = function(mapName, date){
var features = []; var features = [];
//var momentDate = moment(date);
for(var i in results) for(var i in results)
{ {
//console.info(parseJSONDate(results[i].validTimeStart).getTime() + "==" + date.getTime()); //console.info(moment(results[i].validTimeStart).format() + "==" + date.format());
if(parseJSONDate(results[i].validTimeStart).getTime() == date.getTime()){
if(moment(results[i].validTimeStart).isSame(date)){
//console.info(results[i].validGeometry.coordinates); //console.info(results[i].validGeometry.coordinates);
var feature = new ol.Feature({ var feature = new ol.Feature({
geometry:new ol.geom.Point(ol.proj.fromLonLat(results[i].validGeometry.coordinates)), geometry:new ol.geom.Point(ol.proj.fromLonLat(results[i].validGeometry.coordinates)),
...@@ -146,7 +150,7 @@ var displayResults = function(mapName, date){ ...@@ -146,7 +150,7 @@ var displayResults = function(mapName, date){
featureOverlays[mapName].getSource().addFeatures(features); featureOverlays[mapName].getSource().addFeatures(features);
//console.info(featureOverlays.mainMap.getSource().getFeatures()); //console.info(featureOverlays.mainMap.getSource().getFeatures());
// Setting the results date // Setting the results date
document.getElementById(mapName + "DateField").innerHTML = date.getFullYear() + "-" + ("0" + (date.getMonth()+1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2); document.getElementById(mapName + "DateField").innerHTML = date.format("YYYY-MM-DD");//date.getFullYear() + "-" + ("0" + (date.getMonth()+1)).slice(-2) + "-" + ("0" + date.getDate()).slice(-2);
}; };
var ajax = function(url, callback) var ajax = function(url, callback)
...@@ -157,42 +161,16 @@ var ajax = function(url, callback) ...@@ -157,42 +161,16 @@ var ajax = function(url, callback)
xhr.send(); xhr.send();
}; };
function parseJSONDate(theDateString)
{
// The format is "2017-09-09T22:00:00.000+0000"
var dateParts = theDateString.split("T")[0].split("-");
var timeParts = theDateString.split("T")[1].split(".")[0].split(":");
var timeZoneOffset = parseInt(theDateString.substring(24,26));
var retVal = new Date(Date.UTC(
parseInt(dateParts[0]), // Year
parseInt(dateParts[1])-1, // Month
parseInt(dateParts[2]), // Date
parseInt(timeParts[0]) - parseInt(timeZoneOffset), // Hour taking timezone into account
parseInt(timeParts[1]), // Minutes
0,0) // Seconds and milliseconds
);
//console.info(retVal);
return retVal;
// This actually does the trick pretty well (on Chrome and Firefox...)
//return new Date(theDateString);
}
function getTodayAtMidnight() function getTodayAtMidnight()
{ {
//return moment(""); var timeZone="Europe/Oslo";
// TODO:Add momentjs support here!!! var today = moment().tz(timeZone)
var now = new Date(); today.set("hour",0);
var midnightString = now.getFullYear() + "-" + today.set("minute",0);
('0' + (now.getMonth()+1)).slice(-2) + "-" + today.set("second",0);
('0' + (now.getDate()-1)).slice(-2) + today.set("millisecond",0);
"T23:00:00.000+0000"; return today;
return new Date(midnightString);
// OR RETURN A FIXED DATE FOR TESTING
//return new Date("2018-08-16T22:00:00.000+0000");
} }
...@@ -240,7 +218,14 @@ document.addEventListener("DOMContentLoaded", function() { ...@@ -240,7 +218,14 @@ document.addEventListener("DOMContentLoaded", function() {
{ {
src: hostName + "/public/nordic_septoria_whs/moment.min.js" src: hostName + "/public/nordic_septoria_whs/moment.min.js"
}, },
initMap function() {
loadHeadElement("script",
{
src: hostName + "/public/nordic_septoria_whs/moment-timezone-with-data.js"
},
initMap
);
}
); );
} }
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment