Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 237 | Rev 267 | 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 286... Line 96...
286
		clearInterval(timerSlider);
96
		clearInterval(timerSlider);
287
		$('#demarrer_slider').removeAttr('disabled');
97
		$('#demarrer_slider').removeAttr('disabled');
288
	}
98
	}
289
}
99
}
Line 290... Line -...
290
 
-
 
291
function initialiserBoutonsSlider() {
-
 
292
	
-
 
293
	$('#demarrer_slider').click(function() {
-
 
294
		
-
 
295
		if($('#slider_date').slider("value") == $('#slider_date').slider("option","max")) {
-
 
296
			min_slider = $('#slider_date').slider("option","min");
-
 
297
			$('#slider_date').slider("value",min_slider);
-
 
298
		}
-
 
299
		
-
 
300
		timerSlider = setInterval("incrementerValeurSlider()",150);
-
 
301
		$('#demarrer_slider').attr('disabled', 'disabled');
-
 
302
	});
-
 
303
	
-
 
304
	$('#arreter_slider').click(function() {
-
 
305
		if(timerSlider != null) {
-
 
306
			clearInterval(timerSlider);
-
 
307
			$('#demarrer_slider').removeAttr('disabled');
-
 
308
		}
-
 
309
	});
-
 
310
	
-
 
311
}
-
 
312
 
-
 
313
function initialiserValeursParDefaut() {
-
 
314
	id_type_espece = $('select#selecteur_liste_types_especes').val("2");
-
 
315
	modifierTableauEspeces();
-
 
316
	obtenirObservations();
-
 
317
}
-
 
318
 
-
 
319
$('#slider_date').ready(function() {
-
 
320
	initialiserSliderDates();
-
 
321
	initialiserBoutonsSlider();
-
 
322
	initialiserListeTypesEspeces();
-
 
323
	initialiserListeEspeces();
-
 
324
	initialiserListeEvenements();
-
 
325
	initialiserListeAnnees();
-
 
326
	initialiserValeursParDefaut();
-
 
327
});
-
 
328
 
-
 
329
 
-
 
330
/** 
-
 
331
	************************************************************************************************
-
 
332
	************************************************************************************************
-
 
333
	
-
 
334
	    Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des observation
-
 
335
	
-
 
336
	************************************************************************************************
-
 
337
	************************************************************************************************
-
 
338
**/ 
-
 
339
 
-
 
340
function initialiserCarte() {
-
 
341
 
-
 
342
	if($('#map_canvas').length == 0) {
-
 
343
		return;
-
 
344
	}
-
 
345
 
-
 
346
	var latlng = new google.maps.LatLng(47.0504, 2.2347);
-
 
347
	var myOptions = {
-
 
348
		zoom: 5,
-
 
349
		center: latlng,
-
 
350
		mapTypeId: google.maps.MapTypeId.HYBRID
-
 
351
	};
-
 
352
 
-
 
353
	map = new google.maps.Map(document.getElementById("map_canvas"),
-
 
354
    	myOptions);
-
 
355
	
-
 
356
	marker = new google.maps.Marker({
-
 
357
	      position: latlng,
-
 
358
	      title:""
-
 
359
	});
-
 
360
	
-
 
361
	$('.lien_vers_profil').live('click', function(event) {
-
 
362
		event.preventDefault();
-
 
363
		window.open($(this).attr('href'));
-
 
364
		return false;
-
 
365
	});
-
 
366
}
-
 
367
 
-
 
368
function obtenirObservations() {
-
 
369
		
-
 
370
	requete = '?annee='+annee;
-
 
371
	
-
 
372
	if(type_espece != '0' && espece == '0') { 
-
 
373
		requete += '&type_espece='+type_espece; 
-
 
374
	}
-
 
375
	
-
 
376
	if(espece != '0') { 
-
 
377
		requete += '&espece='+espece; 
-
 
378
	}
-
 
379
	
-
 
380
	if(evenement != '0') { 
-
 
381
		requete += '&evenement='+evenement;
-
 
382
	}
-
 
383
	
-
 
384
	if(departement != '0') { 
-
 
385
		requete += '&departement='+departement;
-
 
386
	}
-
 
387
	
-
 
388
	$.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) {	
-
 
389
				
-
 
390
		infos_observations = jQuery.parseJSON(data);
-
 
391
		
-
 
392
		if(tableau_marqueurs.length > 0) {
-
 
393
			viderMarqueurs();
-
 
394
		}
-
 
395
		
-
 
396
		for(i in infos_observations) {
-
 
397
			creerEtAjouterMarqueur(i, infos_observations[i]);
-
 
398
		}
-
 
399
		
-
 
400
		afficherObservations();
-
 
401
	});
-
 
402
}
-
 
403
 
-
 
404
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
-
 
405
	
-
 
406
	latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
-
 
407
	
-
 
408
	var chaine_couleur = '';
-
 
409
	
-
 
410
	for(i in infos_obs.obs) {
-
 
411
		var observation = infos_obs.obs[i];
-
 
412
		
-
 
413
		if(typeof(tableau_couleurs_en_cours[observation.id_espece]) != 'undefined') {		
-
 
414
			chaine_couleur += tableau_couleurs_en_cours[observation.id_espece]+",";
-
 
415
		}
-
 
416
	}
-
 
417
	
-
 
418
	chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
-
 
419
    var image = obtenirImagePourChaineCouleur(chaine_couleur);
-
 
420
     
-
 
421
 	tableau_marqueurs[id_marqueur] = new google.maps.Marker({
-
 
422
	      position: latlng,
-
 
423
	      title:infos_obs.evenenement,
-
 
424
	      icon:image,
-
 
425
	      optimized: false
-
 
426
	});
-
 
427
 
-
 
428
	google.maps.event.addListener(tableau_marqueurs[id_marqueur], 'click', function() {
-
 
429
		
-
 
430
		contenu_fenetre = formaterContenuFenetre(infos_obs.obs);
-
 
431
		infowindow.close();
-
 
432
		infowindow.content = contenu_fenetre;
-
 
433
		infowindow.open(map,this);
-
 
434
	});
-
 
435
	
-
 
436
	tableau_marqueurs[id_marqueur].setDraggable(false);
-
 
437
	tableau_marqueurs[id_marqueur].setClickable(true);
-
 
438
		
-
 
439
	tableau_marqueurs[id_marqueur].setMap(map); 
-
 
440
 
-
 
441
}
-
 
442
 
-
 
443
function viderMarqueurs() {
-
 
444
	
-
 
445
	infowindow.close();
-
 
446
	for(i in tableau_marqueurs) {
-
 
447
		tableau_marqueurs[i].setMap(null);
-
 
448
	}
-
 
449
	
-
 
450
	tableau_marqueurs = new Array();
-
 
451
}
-
 
452
 
100
 
Line 453... Line 101...
453
function afficherObservations() {
101
function afficherObservations() {
Line 454... Line 102...
454
	
102
	
Line 483... Line 131...
483
			}
131
			}
484
		} else {
132
		} else {
485
			tableau_marqueurs[i].setVisible(false);
133
			tableau_marqueurs[i].setVisible(false);
486
		}
134
		}
487
	}
135
	}
488
}
-
 
489
 
-
 
490
function obtenirImagePourChaineCouleur(chaine_couleur) {
-
 
491
					
-
 
492
	chaine_couleur = encodeURIComponent(chaine_couleur);
-
 
493
	var image = getUrlBaseJrest()+"OdsMarqueur/point?couleurs="+chaine_couleur;
-
 
494
    
-
 
495
    return image;
-
 
496
}
-
 
497
 
-
 
498
function convertirDateObsVersJs(chaine_date) {
-
 
499
	
-
 
500
	tableau_date = chaine_date.split('/');
-
 
501
	date_obs = new Date();
-
 
502
	
-
 
503
	date_obs.setDate(tableau_date[0]);
-
 
504
	date_obs.setMonth(tableau_date[1]);
-
 
505
	date_obs.setFullYear(tableau_date[2]);
-
 
506
	
-
 
507
	return date_obs;
-
 
508
}
-
 
509
 
-
 
510
function dateEstDansIntervalle(t_obs) {
-
 
511
	
-
 
512
	date_obs = convertirDateObsVersJs(t_obs);
-
 
513
	
-
 
514
	dans_intervalle = false;
-
 
515
	
-
 
516
	var dateDebutAnnee = new Date();
-
 
517
	dateDebutAnnee.setDate(1);
-
 
518
	dateDebutAnnee.setMonth(1);
-
 
519
	dateDebutAnnee.setFullYear(date_obs.getFullYear());
-
 
520
	var quantieme = (date_obs.getTime() - dateDebutAnnee.getTime()) / (24 * 3600 * 1000)+1;
-
 
521
	
-
 
522
	if($('#slider_date').slider("value") >= quantieme) {
-
 
523
		dans_intervalle = true;
-
 
524
	}
-
 
525
		
-
 
526
	return dans_intervalle;
-
 
527
}
-
 
528
	
-
 
529
function comparerDates(date_1, date_2){
-
 
530
	diff = date_1.getTime()-date_2.getTime();
-
 
531
	return (diff==0?diff:diff/Math.abs(diff));
-
 
532
}
-
 
533
 
-
 
534
function obtenirMarqueurPourStade(stade) {
-
 
535
		
-
 
536
	iconeStade = '../images/marqueur_'+stade+'.png';
-
 
537
 
-
 
538
	return iconeStade;
-
 
539
}
-
 
540
 
-
 
541
function formaterContenuFenetre(infos_obs) {
-
 
542
	
-
 
543
	contenu_fenetre = '';
-
 
544
	date_courante = new Date(annee,mois,jour);
-
 
545
	
-
 
546
	for(i in infos_obs) {
-
 
547
		
-
 
548
		t_obs = infos_obs[i].date;
-
 
549
		
-
 
550
		if(dateEstDansIntervalle(t_obs)) {
-
 
551
			nom_stade ='';
-
 
552
			if(infos_obs[i].code_bbch != '') {
-
 
553
				nom_stade = ' stade '+infos_obs[i].code_bbch;
-
 
554
			}
-
 
555
			
-
 
556
			contenu_fenetre += '<div class="fenetre_infos">';
-
 
557
			contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
-
 
558
			contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
-
 
559
			contenu_fenetre += '<div class="date_obs"> Observ&eacute; le : '+infos_obs[i].date+' </div>';
-
 
560
			contenu_fenetre += construireUrlProfilParticipant(infos_obs[i].participant);
-
 
561
			contenu_fenetre += '</div><br />';
-
 
562
		}
-
 
563
	}
-
 
564
	
-
 
565
	return contenu_fenetre;
-
 
566
}
-
 
567
 
-
 
568
function construireUrlProfilParticipant(id) {
-
 
569
	return '<a class="lien_vers_profil" href="http://obs-saisons.fr/user/'+id+'"> Voir l\'auteur </a>';
-
 
570
}
-
 
571
	
-
 
572
 
-
 
573
$('#map_canvas').ready(function() {
-
 
574
	initialiserCarte();
-
 
575
});
-
 
576
136
}
-
 
137
577
138