Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 237 | Rev 269 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 237 Rev 240
Line 1... Line -...
1
var map = null;
-
 
2
var tableau_marqueurs = new Array();
-
 
3
var infowindow = new google.maps.InfoWindow();
-
 
4
var infos_observations = new Array();
-
 
5
 
-
 
6
var type_espece = '0';
-
 
7
var espece = '0';
-
 
8
var evenement = '0';
-
 
9
var annee = '0';
-
 
10
var mois = '0';
-
 
11
var jour = '0';
-
 
12
var departement = '0';
-
 
13
 
-
 
14
var tableau_couleurs = new Array("#A9582B", "#8DC7B8","#ED9355","#A7BD5B",
-
 
15
		"#FFC730","#0000FF","#CC4369","#9CA6A2",
-
 
16
		"#F7E4A2","#DC574E","#3F6CA9","#DC6C4B",
-
 
17
		"#E8A794","#9B5F95","#E78EDE","#45808A",
-
 
18
		"#168F47","#C9A838","#F2EAD8","#1A5561",
-
 
19
		"#6D883A");
-
 
20
 
-
 
21
liste_mois = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
-
 
22
 
-
 
23
evenements_debut_annee = new Array("")
-
 
24
 
-
 
25
var tableau_couleurs_en_cours = new Array();
-
 
26
 
-
 
27
var timerSlider = null;
-
 
28
 
-
 
29
function getUrlBaseJrest() {
-
 
30
	return urlBaseJrest;
-
 
31
}
-
 
32
 
-
 
33
function traiterParametresUrl() {
-
 
34
 
-
 
35
	var vars = [], hash;
-
 
36
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
-
 
37
	for(var i = 0; i < hashes.length; i++)
-
 
38
	{
-
 
39
	    hash = hashes[i].split('=');
-
 
40
	    vars.push(hash[0]);
-
 
41
	    vars[hash[0]] = hash[1];
-
 
42
	}
-
 
43
	
-
 
44
	if(vars['type_espece'] != null) {
-
 
45
		type_espece = vars['type_espece'];
-
 
46
		$('#selecteur_liste_types_especes').val(type_espece);
-
 
47
	}
-
 
48
	
-
 
49
	if(vars['espece'] != null) {
-
 
50
		if(type_espece != '0') {
-
 
51
			modifierTableauEspeces();
-
 
52
		}
-
 
53
		espece = vars['espece'];
-
 
54
		$('#selecteur_especes').val(espece);
-
 
55
		
-
 
56
	}
-
 
57
	
-
 
58
	if(vars['evenement'] != null) {
-
 
59
		if(espece != 0) {
-
 
60
			modifierTableauEvenement()
-
 
61
		}
-
 
62
		evenement = vars['evenement'];
-
 
63
		$('#selecteur_evenements').val(evenement);
-
 
64
	}
-
 
65
	
-
 
66
	if(vars['annee'] != null) {
-
 
67
		annee = vars['annee'];
-
 
68
		$('#selecteur_liste_annees').val(annee);
-
 
69
	} else {
-
 
70
		date = new Date()
-
 
71
		annee = date.getFullYear();
-
 
72
		$('#selecteur_liste_annees').val(annee);
-
 
73
	}
-
 
74
	
-
 
75
	if(vars['mois'] != null) {
-
 
76
		mois = vars['mois'];
-
 
77
	} else {
-
 
78
		date = new Date()
-
 
79
	}
-
 
80
	
-
 
81
	if(vars['departement'] != null) {
-
 
82
		departement = vars['departement'];
-
 
83
	}
-
 
84
	
-
 
85
	if(vars['cacher_criteres'] != null && vars['cacher_criteres'] == '1') {
-
 
86
		$(".criteres").hide();
-
 
87
	}
-
 
88
}
-
 
89
 
-
 
90
function obtenirCodeWidget() {
-
 
91
	
-
 
92
	var UrlBase = window.location;
-
 
93
	UrlBase += '?';
-
 
94
	if(type_espece != '0') UrlBase += "type_espece="+type_espece;
-
 
95
	if(espece != '0') UrlBase += "&espece="+espece;
-
 
96
	if(evenement != '0') UrlBase += "&evenement="+evenement;
-
 
97
	if(annee != '0') UrlBase += "&annee="+annee;
-
 
98
	if(mois != '0') UrlBase += "&mois="+mois;
-
 
99
	UrlBase += "&cacher_criteres=1";
-
 
100
	
-
 
101
	code_widget = '<iframe src="'+UrlBase+'" width="375px" height="470px"><p>Votre navigateur ne supporte pas les iframes.</p></iframe>'
-
 
102
	
-
 
103
	return code_widget;
-
 
104
}
-
 
105
 
-
 
106
$('#lien_cette_recherche').ready(function() {
-
 
107
	$('#lien_cette_recherche').click(function() {
-
 
108
		window.alert(obtenirCodeWidget());
-
 
109
		return false;
-
 
110
	});
-
 
111
});
-
 
112
 
-
 
113
$(document).ready(function() {
-
 
114
	traiterParametresUrl();
-
 
115
});
-
 
116
 
-
 
117
/** 
-
 
118
************************************************************************************************
-
 
119
************************************************************************************************
-
 
120
 
-
 
121
    Fonctions concernant les gestion des filtres sur la carte
-
 
122
 
-
 
123
************************************************************************************************
-
 
124
************************************************************************************************
-
 
125
**/ 
-
 
126
 
-
 
127
function setDateSlider() {	
-
 
128
	numeroJour = $("#slider_date").slider("value");
-
 
129
	dateObs = new Date(annee,0,0);
-
 
130
	dateObs.setDate(dateObs.getDate()+numeroJour);
-
 
131
	
-
 
132
	mois = dateObs.getMonth();
-
 
133
	jour = dateObs.getDay();
-
 
134
	afficherObservations();	
-
 
135
}
-
 
136
 
-
 
137
function InitialiserIntervalleDateSlider() {
-
 
138
	
-
 
139
}
-
 
140
 
-
 
141
/*function est une anneeBissextile(	
-
 
142
		return eval(an%4)==0 && !(eval(an%100)== 0 && eval(an%400)==0));
-
 
143
}*/
-
 
144
 
-
 
145
function initialiserSliderDates() {
-
 
146
		
-
 
147
	date_min = 1;
-
 
148
	date_max = 365;
-
 
149
	
-
 
150
	$("#slider_date").slider({
-
 
151
								min: date_min,
-
 
152
								max: date_max,
-
 
153
								value: mois
-
 
154
							});
-
 
155
	
-
 
156
	taille_criteres = Math.round($("#slider_date").width()/(liste_mois.length));
-
 
157
	
-
 
158
	valeurs_slider = '<table id="table_dates"><tbody><tr>';
-
 
159
	
-
 
160
	for (i in liste_mois) {
-
 
161
		valeurs_slider += '<td class="conteneur_date">'+liste_mois[i]+'</td>';
-
 
162
	}
-
 
163
	
-
 
164
	valeurs_slider += '</tr></tbody></table>';
-
 
165
	
-
 
166
	$("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
-
 
167
	
-
 
168
	$("#valeurs_date").html(valeurs_slider);
-
 
169
		
-
 
170
	$("#slider_date").bind("slidestop", function(event, ui) {
-
 
171
		setDateSlider();
-
 
172
		return true;
-
 
173
	});
-
 
174
	
-
 
175
	$(window).bind("resize", resizeWindow);
-
 
176
	function resizeWindow( e ) {
-
 
177
		taille_criteres = Math.round($("#slider_date").width()/(liste_mois.length));
-
 
178
		$("#css_slider").html(".conteneur_date{ width:"+taille_criteres+"px;}");
-
 
179
	}
-
 
180
}
-
 
181
 
-
 
182
function initialiserListeTypesEspeces() {
-
 
183
	
-
 
184
	$('#selecteur_liste_types_especes').change(function() {
-
 
185
		type_espece = $('select#selecteur_liste_types_especes option:selected').val();
-
 
186
		modifierTableauEspeces();
-
 
187
		obtenirObservations();	
-
 
188
	});
-
 
189
}
-
 
190
 
-
 
191
function modifierTableauEspeces() {
1
function modifierTableauEspeces() {
Line 192... Line 2...
192
 
2
 
Line 193... Line 3...
193
	id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
3
	id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
Line 293... Line 103...
293
		}
103
		}
294
		obtenirObservations();	
104
		obtenirObservations();	
295
	});
105
	});
296
}
106
}
Line 297... Line -...
297
 
-
 
298
function incrementerValeurSlider() {
-
 
299
	var valeur_en_cours = $('#slider_date').slider("value");
-
 
300
	if($('#slider_date').slider("value") < $('#slider_date').slider("option", "max")) {
-
 
301
		valeur_en_cours++;
-
 
302
		$('#slider_date').slider("value",valeur_en_cours);
-
 
303
		setDateSlider();
-
 
304
	} else {
-
 
305
		clearInterval(timerSlider);
-
 
306
		$('#demarrer_slider').removeAttr('disabled');
-
 
307
	}
-
 
308
}
-
 
309
 
-
 
310
function initialiserBoutonsSlider() {
-
 
311
	
-
 
312
	$('#demarrer_slider').click(function() {
-
 
313
		
-
 
314
		if($('#slider_date').slider("value") == $('#slider_date').slider("option","max")) {
-
 
315
			min_slider = $('#slider_date').slider("option","min");
-
 
316
			$('#slider_date').slider("value",min_slider);
-
 
317
		}
-
 
318
		
-
 
319
		timerSlider = setInterval("incrementerValeurSlider()",150);
-
 
320
		$('#demarrer_slider').attr('disabled', 'disabled');
-
 
321
	});
-
 
322
	
-
 
323
	$('#arreter_slider').click(function() {
-
 
324
		if(timerSlider != null) {
-
 
325
			clearInterval(timerSlider);
-
 
326
			$('#demarrer_slider').removeAttr('disabled');
-
 
327
		}
-
 
328
	});
-
 
329
	
-
 
330
}
-
 
331
 
-
 
332
function initialiserValeursParDefaut() {
-
 
333
	id_type_espece = $('select#selecteur_liste_types_especes').val("2");
-
 
334
	modifierTableauEspeces();
-
 
335
	obtenirObservations();
-
 
336
}
-
 
337
 
-
 
338
$('#slider_date').ready(function() {
-
 
339
	initialiserSliderDates();
-
 
340
	initialiserBoutonsSlider();
-
 
341
	initialiserListeTypesEspeces();
-
 
342
	initialiserListeEspeces();
-
 
343
	initialiserListeEvenements();
-
 
344
	initialiserListeAnnees();
-
 
345
	initialiserValeursParDefaut();
-
 
346
});
-
 
347
 
-
 
348
 
-
 
349
/** 
-
 
350
	************************************************************************************************
-
 
351
	************************************************************************************************
-
 
352
	
-
 
353
	    Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des observation
-
 
354
	
-
 
355
	************************************************************************************************
-
 
356
	************************************************************************************************
-
 
357
**/ 
-
 
358
 
-
 
359
function initialiserCarte() {
-
 
360
 
-
 
361
	if($('#map_canvas').length == 0) {
-
 
362
		return;
-
 
363
	}
-
 
364
 
-
 
365
	var latlng = new google.maps.LatLng(47.0504, 2.2347);
-
 
366
	var myOptions = {
-
 
367
		zoom: 5,
-
 
368
		center: latlng,
-
 
369
		mapTypeId: google.maps.MapTypeId.HYBRID
-
 
370
	};
-
 
371
 
-
 
372
	map = new google.maps.Map(document.getElementById("map_canvas"),
-
 
373
    	myOptions);
-
 
374
	
-
 
375
	marker = new google.maps.Marker({
-
 
376
	      position: latlng,
-
 
377
	      title:""
-
 
378
	});
-
 
379
	
-
 
380
	$('.lien_vers_profil').live('click', function(event) {
-
 
381
		event.preventDefault();
-
 
382
		window.open($(this).attr('href'));
-
 
383
		return false;
-
 
384
	});
-
 
385
}
-
 
386
 
-
 
387
function obtenirObservations() {
-
 
388
		
-
 
389
	requete = '?annee='+annee;
-
 
390
	
-
 
391
	if(type_espece != '0' && espece == '0') { 
-
 
392
		requete += '&type_espece='+type_espece; 
-
 
393
	}
-
 
394
	
-
 
395
	if(espece != '0') { 
-
 
396
		requete += '&espece='+espece; 
-
 
397
	}
-
 
398
	
-
 
399
	if(evenement != '0') { 
-
 
400
		requete += '&evenement='+evenement;
-
 
401
	}
-
 
402
	
-
 
403
	if(departement != '0') { 
-
 
404
		requete += '&departement='+departement;
-
 
405
	}
-
 
406
	
-
 
407
	$.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) {	
-
 
408
				
-
 
409
		infos_observations = jQuery.parseJSON(data);
-
 
410
		
-
 
411
		if(tableau_marqueurs.length > 0) {
-
 
412
			viderMarqueurs();
-
 
413
		}
-
 
414
		
-
 
415
		for(i in infos_observations) {
-
 
416
			creerEtAjouterMarqueur(i, infos_observations[i]);
-
 
417
		}
-
 
418
		
-
 
419
		afficherObservations();
-
 
420
	});
-
 
421
}
-
 
422
 
-
 
423
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
-
 
424
	
-
 
425
	latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
-
 
426
	
-
 
427
	var chaine_couleur = '';
-
 
428
	
-
 
429
	for(i in infos_obs.obs) {
-
 
430
		var observation = infos_obs.obs[i];
-
 
431
		
-
 
432
		if(typeof(tableau_couleurs_en_cours[observation.id_espece]) != 'undefined') {		
-
 
433
			chaine_couleur += tableau_couleurs_en_cours[observation.id_espece]+",";
-
 
434
		}
-
 
435
	}
-
 
436
	
-
 
437
	chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
-
 
438
    var image = obtenirImagePourChaineCouleur(chaine_couleur);
-
 
439
     
-
 
440
 	tableau_marqueurs[id_marqueur] = new google.maps.Marker({
-
 
441
	      position: latlng,
-
 
442
	      title:infos_obs.evenenement,
-
 
443
	      icon:image,
-
 
444
	      optimized: false
-
 
445
	});
-
 
446
 
-
 
447
	google.maps.event.addListener(tableau_marqueurs[id_marqueur], 'click', function() {
-
 
448
		
-
 
449
		contenu_fenetre = formaterContenuFenetre(infos_obs.obs);
-
 
450
		infowindow.close();
-
 
451
		infowindow.content = contenu_fenetre;
-
 
452
		infowindow.open(map,this);
-
 
453
	});
-
 
454
	
-
 
455
	tableau_marqueurs[id_marqueur].setDraggable(false);
-
 
456
	tableau_marqueurs[id_marqueur].setClickable(true);
-
 
457
		
-
 
458
	tableau_marqueurs[id_marqueur].setMap(map); 
-
 
459
 
-
 
460
}
-
 
461
 
-
 
462
function viderMarqueurs() {
-
 
463
	
-
 
464
	infowindow.close();
-
 
465
	for(i in tableau_marqueurs) {
-
 
466
		tableau_marqueurs[i].setMap(null);
-
 
467
	}
-
 
468
	
-
 
469
	tableau_marqueurs = new Array();
-
 
470
}
-
 
471
 
107
 
Line 472... Line 108...
472
function afficherObservations() {
108
function afficherObservations() {
Line 473... Line 109...
473
	
109
	
Line 502... Line 138...
502
			}
138
			}
503
		} else {
139
		} else {
504
			tableau_marqueurs[i].setVisible(false);
140
			tableau_marqueurs[i].setVisible(false);
505
		}
141
		}
506
	}
142
	}
507
}
-
 
508
 
-
 
509
function obtenirImagePourChaineCouleur(chaine_couleur) {
-
 
510
					
-
 
511
	chaine_couleur = encodeURIComponent(chaine_couleur);
-
 
512
	var image = getUrlBaseJrest()+"OdsMarqueur/point?couleurs="+chaine_couleur;
-
 
513
    
-
 
514
    return image;
-
 
515
}
-
 
516
 
-
 
517
function convertirDateObsVersJs(chaine_date) {
-
 
518
	
-
 
519
	tableau_date = chaine_date.split('/');
-
 
520
	date_obs = new Date();
-
 
521
	
-
 
522
	date_obs.setDate(tableau_date[0]);
-
 
523
	date_obs.setMonth(tableau_date[1]);
-
 
524
	date_obs.setFullYear(tableau_date[2]);
-
 
525
	
-
 
526
	return date_obs;
-
 
527
}
-
 
528
 
-
 
529
function dateEstDansIntervalle(t_obs) {
-
 
530
	
-
 
531
	date_obs = convertirDateObsVersJs(t_obs);
-
 
532
	
-
 
533
	dans_intervalle = false;
-
 
534
	
-
 
535
	var dateDebutAnnee = new Date();
-
 
536
	dateDebutAnnee.setDate(1);
-
 
537
	dateDebutAnnee.setMonth(1);
-
 
538
	dateDebutAnnee.setFullYear(date_obs.getFullYear());
-
 
539
	var quantieme = (date_obs.getTime() - dateDebutAnnee.getTime()) / (24 * 3600 * 1000)+1;
-
 
540
	
-
 
541
	if($('#slider_date').slider("value") >= quantieme) {
-
 
542
		dans_intervalle = true;
-
 
543
	}
-
 
544
		
-
 
545
	return dans_intervalle;
-
 
546
}
-
 
547
	
-
 
548
function comparerDates(date_1, date_2){
-
 
549
	diff = date_1.getTime()-date_2.getTime();
-
 
550
	return (diff==0?diff:diff/Math.abs(diff));
-
 
551
}
-
 
552
 
-
 
553
function obtenirMarqueurPourStade(stade) {
-
 
554
		
-
 
555
	iconeStade = '../images/marqueur_'+stade+'.png';
-
 
556
 
-
 
557
	return iconeStade;
-
 
558
}
-
 
559
 
-
 
560
function formaterContenuFenetre(infos_obs) {
-
 
561
	
-
 
562
	contenu_fenetre = '';
-
 
563
	date_courante = new Date(annee,mois,jour);
-
 
564
	
-
 
565
	for(i in infos_obs) {
-
 
566
		
-
 
567
		t_obs = infos_obs[i].date;
-
 
568
		
-
 
569
		if(dateEstDansIntervalle(t_obs)) {
-
 
570
			nom_stade ='';
-
 
571
			if(infos_obs[i].code_bbch != '') {
-
 
572
				nom_stade = ' stade '+infos_obs[i].code_bbch;
-
 
573
			}
-
 
574
			
-
 
575
			contenu_fenetre += '<div class="fenetre_infos">';
-
 
576
			contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
-
 
577
			contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
-
 
578
			contenu_fenetre += '<div class="date_obs"> Observ&eacute; le : '+infos_obs[i].date+' </div>';
-
 
579
			contenu_fenetre += construireUrlProfilParticipant(infos_obs[i].participant);
-
 
580
			contenu_fenetre += '</div><br />';
-
 
581
		}
-
 
582
	}
-
 
583
	
-
 
584
	return contenu_fenetre;
-
 
585
}
-
 
586
 
-
 
587
function construireUrlProfilParticipant(id) {
-
 
588
	return '<a class="lien_vers_profil" href="http://obs-saisons.fr/user/'+id+'"> Voir l\'auteur </a>';
-
 
589
}
-
 
590
	
-
 
591
 
-
 
592
$('#map_canvas').ready(function() {
-
 
593
	initialiserCarte();
-
 
594
});
-
 
595
143
}
-
 
144
596
145