Ero sivun ”Widget:Leväbarometri” versioiden välillä
Järvi-meriwikistä
(35 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 11: | Rivi 11: | ||
function <!--{$id|default:algalbarochart|escape:'html'}-->_jQueryTest() { | function <!--{$id|default:algalbarochart|escape:'html'}-->_jQueryTest() { | ||
− | if ( typeof window.jQuery == 'undefined' ) { | + | if ( typeof window.jQuery == 'undefined' || typeof queryApi == 'undefined' ) { |
setTimeout( function(){ <!--{$id|default:algalbarochart|escape:'html'}-->_jQueryTest() }, 300); | setTimeout( function(){ <!--{$id|default:algalbarochart|escape:'html'}-->_jQueryTest() }, 300); | ||
} else { | } else { | ||
− | + | <!--{$id|default:algalbarochart|escape:'html'}-->_func(); | |
− | |||
} | } | ||
} | } | ||
Rivi 23: | Rivi 22: | ||
// Load the Visualization API and the corechart package. | // Load the Visualization API and the corechart package. | ||
− | google.charts.load('current', {'packages':['corechart']}); | + | google.charts.load('current', {'packages':['corechart'] }); |
// Set a callback to run when the Google Visualization API is loaded. | // Set a callback to run when the Google Visualization API is loaded. | ||
− | google.charts.setOnLoadCallback( <!--{$id|default: | + | google.charts.setOnLoadCallback( <!--{$id|default:algalbarochart|escape:'html'}-->_init ); |
} | } | ||
function <!--{$id|default:algalbarochart|escape:'html'}-->_init() { | function <!--{$id|default:algalbarochart|escape:'html'}-->_init() { | ||
+ | |||
+ | var today = new Date(); | ||
+ | var vuosi = <!--{$vuosi|default:0|escape:'html'}-->; | ||
+ | if (vuosi == 0) { vuosi = (today.getFullYear()); } | ||
+ | var viikko = <!--{$viikko|default:100|escape:'html'}-->; | ||
+ | if (viikko == 100) { viikko = today.getWeek(); } | ||
+ | var vertaa = <!--{$vertaa|default:undefined|escape:'html'}-->; | ||
+ | var meri = <!--{$meri|default:2|escape:'html'}-->; | ||
+ | var ely = "<!--{$ely|default:xxx|escape:'html'}-->"; | ||
+ | var showTitle = <!--{$showTitle|default:1|escape:'html'}-->; | ||
+ | //elySearch = ely.split(' ').join('%20'); | ||
+ | //elySearch= elySearch.split('ä').join('%C3%A4'); | ||
+ | //elySearch= elySearch.split('ö').join('%C3%B6'); | ||
+ | var elySearch = encodeURI(ely); | ||
+ | var minweek = <!--{$minweek|default:23|escape:'html'}-->; | ||
+ | var maxweek = <!--{$maxweek|default:39|escape:'html'}-->; | ||
+ | var lang = '<!--{$lang|default:fi|escape:'html'}-->'; | ||
− | + | if (ely == "xxx") { ely = undefined; } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | var successCount = 0; | |
− | + | var options1; | |
− | + | var data1; | |
− | + | var chart1; | |
− | |||
− | |||
− | + | var options2; | |
− | + | var data2; | |
− | + | var chart2; | |
− | + | var Rdata1 = new Array(); | |
− | + | var Rdata2 = new Array(); | |
− | + | for (i=minweek; i<=maxweek; i++) { | |
− | + | Rdata1[(i-minweek)] = [i.toString(), null, "", null, "", null, "", null, "", null, ""]; | |
− | + | Rdata2[(i-minweek)] = [i.toString(), null, "", null, "", null, "", null, "", null, ""]; | |
− | + | } | |
− | + | if (ely != undefined) { | |
− | + | searchStr = "action=ask&query=[[Lev%C3%A4barometridataELY::%3E0]]"; | |
− | + | searchStr += "[[ELY-keskus::" + elySearch + "]]"; | |
− | + | } else { | |
− | + | searchStr = "action=ask&query=[[Lev%C3%A4barometridataUUSI::%3E0]]"; | |
− | + | } | |
− | + | if (meri == "0") { | |
− | + | searchStr += encodeURI("[[Vesistö::Järvi]]"); | |
− | + | } else if (meri == "1") { | |
− | + | searchStr += encodeURI("[[Vesistö::Meri]]"); | |
− | + | } | |
− | + | searchStr += "[[Tyyppi::Viikkoarvo]]"; | |
− | + | searchStr += "[[Vuosi::" + vuosi + "]]"; | |
− | + | searchStr += "[[Viikko::%3E" + minweek.toString() + "]][[Viikko::%3C" + maxweek.toString() + "]]"; | |
− | + | searchStr += encodeURI('|?Viikko|?Leväbarometri|?Vesistö|limit=100'); | |
− | + | searchStr += '&format=json'; | |
− | + | jQuery.ajax({ | |
− | + | type: 'GET', | |
− | + | url: queryApi, | |
− | + | data: searchStr, | |
− | + | success: success, | |
− | + | dataType: 'jsonp' | |
− | + | }); | |
− | + | if (ely != undefined) { | |
− | + | searchStr2 = "action=ask&query=[[Lev%C3%A4barometridataELY::%3E0]]"; | |
− | + | searchStr2 += "[[ELY-keskus::" + elySearch + "]]"; | |
− | + | } else { | |
− | + | searchStr2 = "action=ask&query=[[Lev%C3%A4barometridataUUSI::%3E0]]"; | |
− | + | } | |
− | + | if (meri == "0") { | |
− | + | searchStr2 += encodeURI("[[Vesistö::Järvi]]"); | |
− | + | } else if (meri == "1") { | |
− | + | searchStr2 += encodeURI("[[Vesistö::Meri]]"); | |
− | + | } | |
− | + | if (vertaa == undefined) { | |
− | + | searchStr2 += "[[Tyyppi::Vertailuarvo]][[Vuosi::" + (today.getFullYear()) + "]]"; | |
− | + | } else { | |
− | + | searchStr2 += "[[Tyyppi::Viikkoarvo]][[Vuosi::" + vertaa + "]]"; | |
− | + | } | |
− | + | searchStr2 += "[[Viikko::%3E" + minweek.toString() + "]][[Viikko::%3C" + maxweek.toString() + "]]"; | |
− | + | searchStr2 += encodeURI('|?Viikko|?Tyyppi|?Leväbarometri|?Vesistö|limit=100'); | |
− | + | searchStr2 += '&format=json'; | |
− | + | jQuery.ajax({ | |
− | + | type: 'GET', | |
− | + | url: queryApi, | |
− | + | data: searchStr2, | |
− | + | success: success, | |
− | + | dataType:'jsonp' | |
− | }); | + | }); |
+ | |||
+ | function i18n( text, lang ) { | ||
+ | |||
+ | var o = {}; | ||
+ | o[ 'Sinileväbarometri' ] = { 'en': 'Blue-green algal barometer', 'sv': 'Blågrönalgbarometer' }; | ||
+ | o[ 'Sisävedet' ] = { 'en': 'Inland waters', 'sv': 'Inlandsvatten' }; | ||
+ | o[ 'Merialueet' ] = { 'en': 'Sea areas', 'sv': 'Havsområden' }; | ||
+ | o[ 'Viikko' ] = { 'en': 'Week', 'sv': 'Vecka' }; | ||
+ | o[ 'Määritelty viikko' ] = { 'en': 'Specified week', 'sv': 'Angiven vecka' }; | ||
+ | o[ 'Ei levähavaintoja' ] = { 'en': 'No blue-green algae observations', 'sv': 'Inga blögrönalgobservationer' }; | ||
+ | o[ 'Liian vähän havaintoja' ] = { 'en': 'Not enough observations', 'sv': 'För lite observationer' }; | ||
+ | o[ 'Liukuva keskiarvo' ] = { 'en': 'Moving average', 'sv': 'Glidande medelvärde' }; | ||
+ | |||
+ | var response = text; | ||
+ | |||
+ | if ( typeof o[ text ] != 'undefined' ) { | ||
+ | if ( typeof o[ text ][ lang ] != 'undefined' ) { | ||
+ | response = o[ text ][ lang ]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | return response; | ||
+ | |||
+ | } | ||
function success(request) { | function success(request) { | ||
− | console.log(request); | + | |
− | + | //console.log(request); | |
− | + | ||
+ | if (request.query.results != undefined) { | ||
+ | |||
zi = -1; | zi = -1; | ||
for (var i in request.query.results) { | for (var i in request.query.results) { | ||
Rivi 141: | Rivi 169: | ||
weekSpan = printWeekSpan(vuosi, resultItem.Viikko[0]); | weekSpan = printWeekSpan(vuosi, resultItem.Viikko[0]); | ||
if (resultBaroVal < 0) { | if (resultBaroVal < 0) { | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][5] = 0; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][6] = weekSpan; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][6] += '\n' + i18n( 'Liian vähän havaintoja', lang ); |
} else if (resultBaroVal == 0) { | } else if (resultBaroVal == 0) { | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][9] = 0; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][10] = weekSpan; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][10] += '\n0 - ' + i18n( 'Ei levähavaintoja', lang ); |
} else { | } else { | ||
if (resultItem.Viikko[0] == viikko) { | if (resultItem.Viikko[0] == viikko) { | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][7] = resultBaroVal; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][8] = weekSpan; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][8] += '\n' + resultBaroStr; |
} else { | } else { | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][1] = resultBaroVal; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][2] = weekSpan; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][2] += '\n' + resultBaroStr; |
} | } | ||
} | } | ||
} else { | } else { | ||
if (resultBaroVal < 0) { | if (resultBaroVal < 0) { | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][3] = 0; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][4] = i18n( 'Liukuva keskiarvo', lang ) + '\n1998-'; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][4] += '\n' + i18n( 'Liian vähän havaintoja', lang ); |
} else { | } else { | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][3] = resultBaroVal; |
if (vertaa == undefined) { | if (vertaa == undefined) { | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][4] = i18n( 'Liukuva keskiarvo', lang ) + '\n1998-'; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][4] += (today.getFullYear()-1).toString(); |
} else { | } else { | ||
date1 = getDateFromYWD(vertaa, resultItem.Viikko[0], 0); | date1 = getDateFromYWD(vertaa, resultItem.Viikko[0], 0); | ||
Rivi 175: | Rivi 203: | ||
date2Str = date2.getDate() + "." + (date2.getMonth()+1) + "."; | date2Str = date2.getDate() + "." + (date2.getMonth()+1) + "."; | ||
weekSpan = printWeekSpan(vertaa, resultItem.Viikko[0]); | weekSpan = printWeekSpan(vertaa, resultItem.Viikko[0]); | ||
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][4] = weekSpan; //date1Str + '-' + date2Str; |
− | Rdata1[resultItem.Viikko[0]- | + | Rdata1[resultItem.Viikko[0]-minweek][4] += '\n' + resultBaroStr; |
} | } | ||
} | } | ||
Rivi 189: | Rivi 217: | ||
weekSpan = printWeekSpan(vuosi, resultItem.Viikko[0]); | weekSpan = printWeekSpan(vuosi, resultItem.Viikko[0]); | ||
if (resultBaroVal < 0) { | if (resultBaroVal < 0) { | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][5] = 0; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][6] = weekSpan; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][6] += '\n' + i18n( 'Liian vähän havaintoja', lang ); |
} else if (resultBaroVal == 0) { | } else if (resultBaroVal == 0) { | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][9] = 0; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][10] = weekSpan; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][10] += '\n0 - ' + i18n( 'Ei levähavaintoja', lang ); |
} else { | } else { | ||
if (resultItem.Viikko[0] == viikko) { | if (resultItem.Viikko[0] == viikko) { | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][7] = resultBaroVal; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][8] = weekSpan; //date1Str + '-' + date2Str + vuosi; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][8] += '\n' + resultBaroStr; |
} else { | } else { | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][1] = resultBaroVal; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][2] = weekSpan; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][2] += '\n' + resultBaroStr; |
} | } | ||
} | } | ||
} else { | } else { | ||
if (resultBaroVal < 0) { | if (resultBaroVal < 0) { | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][3] = 0; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][4] = i18n( 'Liukuva keskiarvo', lang ) + '\n1998-'; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][4] += '\n' + i18n( 'Liian vähän havaintoja', lang ); |
} else { | } else { | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][3] = resultBaroVal; |
if (vertaa == undefined) { | if (vertaa == undefined) { | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][4] = i18n( 'Liukuva keskiarvo', lang ) + '\n1998-'; |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][4] += (today.getFullYear()-1).toString(); |
} else { | } else { | ||
date1 = getDateFromYWD(vertaa, resultItem.Viikko[0], 0); | date1 = getDateFromYWD(vertaa, resultItem.Viikko[0], 0); | ||
Rivi 223: | Rivi 251: | ||
date2Str = date2.getDate() + "." + (date2.getMonth()+1) + "."; | date2Str = date2.getDate() + "." + (date2.getMonth()+1) + "."; | ||
weekSpan = printWeekSpan(vertaa, resultItem.Viikko[0]); | weekSpan = printWeekSpan(vertaa, resultItem.Viikko[0]); | ||
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][4] = weekSpan; //date1Str + '-' + date2Str; |
− | //Rdata2[resultItem.Viikko[0]- | + | //Rdata2[resultItem.Viikko[0]-minweek][4] += (vertaa).toString(); |
− | Rdata2[resultItem.Viikko[0]- | + | Rdata2[resultItem.Viikko[0]-minweek][4] += '\n' + resultBaroStr; |
} | } | ||
} | } | ||
Rivi 237: | Rivi 265: | ||
function drawVisualization() { | function drawVisualization() { | ||
− | + | console.log( Rdata1 ); | |
if (meri != "1") { | if (meri != "1") { | ||
Rivi 257: | Rivi 285: | ||
} | } | ||
data1.addColumn({type:'string', role:'tooltip'}); | data1.addColumn({type:'string', role:'tooltip'}); | ||
− | data1.addColumn('number', 'Liian vähän havaintoja'); | + | data1.addColumn('number', i18n( 'Liian vähän havaintoja', lang )); |
data1.addColumn({type:'string', role:'tooltip'}); | data1.addColumn({type:'string', role:'tooltip'}); | ||
− | data1.addColumn('number', ' | + | data1.addColumn('number', i18n( 'Määritelty viikko', lang )); |
data1.addColumn({type:'string', role:'tooltip'}); | data1.addColumn({type:'string', role:'tooltip'}); | ||
− | data1.addColumn('number', ' | + | data1.addColumn('number', i18n( 'Sinileväbarometri', lang ) + ' 0' ); |
data1.addColumn({type:'string', role:'tooltip'}); | data1.addColumn({type:'string', role:'tooltip'}); | ||
data1.addRows(Rdata1); | data1.addRows(Rdata1); | ||
− | titlevar = 'Sisävedet'; | + | titlevar = i18n( 'Sisävedet', lang ); |
if (ely != undefined) { titlevar += ' (' + ely.replace(' elinkeino-, liikenne- ja ympäristökeskus', '') + ')'; } | if (ely != undefined) { titlevar += ' (' + ely.replace(' elinkeino-, liikenne- ja ympäristökeskus', '') + ')'; } | ||
Rivi 276: | Rivi 304: | ||
titlePosition: 'out', | titlePosition: 'out', | ||
titleTextStyle: { fontName: '"Arial"', fontSize: 14 }, | titleTextStyle: { fontName: '"Arial"', fontSize: 14 }, | ||
− | vAxis: { viewWindowMode:'explicit', viewWindow:{ max:0.8, min:0}, gridlines: { color: '#c1e7f7' }}, | + | vAxis: { viewWindowMode:'explicit', viewWindow:{ max:0.8, min:0}, gridlines: { count: '4', color: '#c1e7f7' }}, |
//{maxValue: 0.8}, | //{maxValue: 0.8}, | ||
− | hAxis: {title: | + | hAxis: {title: i18n( 'Viikko', lang ), slantedText: false, maxAlternation: 1, titleTextStyle: { fontName: '"Arial"' } }, |
backgroundColor: { fill: "#<!--{$bgcolor|default:ffffff|escape:'html'}-->", stroke: "#c1e7f7", strokeWidth: 0 }, | backgroundColor: { fill: "#<!--{$bgcolor|default:ffffff|escape:'html'}-->", stroke: "#c1e7f7", strokeWidth: 0 }, | ||
− | chartArea: { top: 20, left: | + | chartArea: { top: 20, left: 30, backgroundColor: "#<!--{$bgcolor|default:ffffff|escape:'html'}-->" }, |
series: { | series: { | ||
0: {type: "bars", color: '#59B500' }, | 0: {type: "bars", color: '#59B500' }, | ||
Rivi 314: | Rivi 342: | ||
} | } | ||
data2.addColumn({type:'string', role:'tooltip'}); | data2.addColumn({type:'string', role:'tooltip'}); | ||
− | data2.addColumn('number', 'Liian vähän havaintoja'); | + | data2.addColumn('number', i18n( 'Liian vähän havaintoja', lang )); |
data2.addColumn({type:'string', role:'tooltip'}); | data2.addColumn({type:'string', role:'tooltip'}); | ||
− | data2.addColumn('number', ' | + | data2.addColumn('number', i18n( 'Määritelty viikko', lang )); |
data2.addColumn({type:'string', role:'tooltip'}); | data2.addColumn({type:'string', role:'tooltip'}); | ||
− | data2.addColumn('number', ' | + | data2.addColumn('number', i18n( 'Sinileväbarometri', lang ) + ' 0'); |
data2.addColumn({type:'string', role:'tooltip'}); | data2.addColumn({type:'string', role:'tooltip'}); | ||
data2.addRows(Rdata2); | data2.addRows(Rdata2); | ||
− | titlevar = 'Merialueet'; | + | titlevar = i18n( 'Merialueet', lang ); |
if (ely != undefined) { titlevar += ' (' + ely.replace(' elinkeino-, liikenne- ja ympäristökeskus', '')+ ')'; } | if (ely != undefined) { titlevar += ' (' + ely.replace(' elinkeino-, liikenne- ja ympäristökeskus', '')+ ')'; } | ||
Rivi 333: | Rivi 361: | ||
titleTextStyle: { fontName: '"Arial"', fontSize: 14 }, | titleTextStyle: { fontName: '"Arial"', fontSize: 14 }, | ||
fontSize: 12, | fontSize: 12, | ||
− | vAxis: { viewWindowMode:'explicit', viewWindow:{ max:0.8, min:0}, gridlines: { color: '#c1e7f7' }}, | + | vAxis: { viewWindowMode:'explicit', viewWindow:{ max: 0.8, min:0 }, gridlines: { count: 4, color: '#c1e7f7' }}, |
//{maxValue: 0.8}, | //{maxValue: 0.8}, | ||
− | hAxis: {title: | + | hAxis: {title: i18n( 'Viikko', lang ), slantedText: false, maxAlternation: 1, titleTextStyle: { fontName: '"Arial"' } }, |
backgroundColor: { fill: "#<!--{$bgcolor|default:ffffff|escape:'html'}-->", stroke: "#c1e7f7" }, | backgroundColor: { fill: "#<!--{$bgcolor|default:ffffff|escape:'html'}-->", stroke: "#c1e7f7" }, | ||
− | chartArea: { top: 20, left: | + | chartArea: { top: 20, left: 30, backgroundColor: "#<!--{$bgcolor|default:ffffff|escape:'html'}-->" }, |
series: { | series: { | ||
0: {type: "bars", color: '#59B500' }, | 0: {type: "bars", color: '#59B500' }, |