Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 206 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
206 aurelien 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 = '1';
207 aurelien 11
var departement = '0';
206 aurelien 12
 
13
function getUrlBaseJrest() {
14
 
15
	url_page_courante = document.URL;
16
 
17
	if(url_page_courante.indexOf('http://www.') != -1) {
18
		return urlBaseJrest;
19
	} else {
20
		return urlBaseJrest.replace('http://www.','http://');
21
	}
22
}
23
 
24
function traiterParametresUrl() {
25
 
26
	var vars = [], hash;
27
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
28
	for(var i = 0; i < hashes.length; i++)
29
	{
30
	    hash = hashes[i].split('=');
31
	    vars.push(hash[0]);
32
	    vars[hash[0]] = hash[1];
33
	}
34
 
35
	if(vars['type_espece'] != null) {
36
		type_espece = vars['type_espece'];
37
		$('#selecteur_liste_types_especes').val(type_espece);
38
	}
39
 
40
	if(vars['espece'] != null) {
41
		if(type_espece != '0') {
42
			modifierTableauEspeces();
43
		}
44
		espece = vars['espece'];
45
		$('#selecteur_especes').val(espece);
46
 
47
	}
48
 
49
	if(vars['evenement'] != null) {
50
		if(espece != 0) {
51
			modifierTableauEvenement()
52
		}
53
		evenement = vars['evenement'];
54
		$('#selecteur_evenements').val(evenement);
55
	}
56
 
57
	if(vars['annee'] != null) {
58
		annee = vars['annee'];
59
		$('#selecteur_liste_annees').val(annee);
60
	} else {
61
		date = new Date()
62
		annee = date.getFullYear();
63
		$('#selecteur_liste_annees').val(annee);
64
	}
65
 
66
	if(vars['mois'] != null) {
67
		mois = vars['mois'];
68
	} else {
69
		date = new Date()
70
		mois = date.getMonth() + 1;
71
	}
72
 
207 aurelien 73
	if(vars['departement'] != null) {
74
		departement = vars['departement'];
75
	}
76
 
206 aurelien 77
	if(vars['cacher_criteres'] != null && vars['cacher_criteres'] == '1') {
78
		$(".criteres").hide();
79
	}
80
}
81
 
82
function obtenirCodeWidget() {
83
 
84
	var UrlBase = window.location;
85
	UrlBase += '?';
86
	if(type_espece != '0') UrlBase += "type_espece="+type_espece;
87
	if(espece != '0') UrlBase += "&espece="+espece;
88
	if(evenement != '0') UrlBase += "&evenement="+evenement;
89
	if(annee != '0') UrlBase += "&annee="+annee;
90
	if(mois != '0') UrlBase += "&mois="+mois;
91
	UrlBase += "&cacher_criteres=1";
92
 
93
	code_widget = '<iframe src="'+UrlBase+'" width="375px" height="470px"><p>Votre navigateur ne supporte pas les iframes.</p></iframe>'
94
 
95
	return code_widget;
96
}
97
 
98
$('#lien_cette_recherche').ready(function() {
99
	$('#lien_cette_recherche').click(function() {
100
		window.alert(obtenirCodeWidget());
101
		return false;
102
	});
103
});
104
 
105
$(document).ready(function() {
106
	traiterParametresUrl();
107
});
108
 
109
/**
110
************************************************************************************************
111
************************************************************************************************
112
 
113
    Fonctions concernant les gestion des filtres sur la carte
114
 
115
************************************************************************************************
116
************************************************************************************************
117
**/
118
 
119
function initialiserSliderDates() {
120
 
121
	dates = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
122
 
123
	$("#slider_date").slider({
124
								min: 1,
125
								max: 13,
126
								value: mois
127
							});
128
 
129
	taille_criteres = Math.round($("#slider_date").width()/(dates.length));
130
 
131
	valeurs_slider = '<table id="table_dates"><tbody><tr>';
132
 
133
	for (i in dates) {
134
		valeurs_slider += '<td class="conteneur_date">'+dates[i]+'</td>';
135
	}
136
 
137
	valeurs_slider += '</tr></tbody></table>';
138
 
139
	$("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
140
 
141
	$("#valeurs_date").html(valeurs_slider);
142
 
143
	$("#slider_date").bind("slide", function(event, ui) {
144
 
145
		mois = $("#slider_date").slider("value");
146
		obtenirObservations();
147
		return true;
148
	});
149
 
150
	$(window).bind("resize", resizeWindow);
151
	function resizeWindow( e ) {
152
		taille_criteres = Math.round($("#slider_date").width()/(dates.length));
153
		$("#css_slider").html(".conteneur_date{ width:"+taille_criteres+"px;}");
154
	}
155
}
156
 
157
function initialiserListeTypesEspeces() {
158
 
159
	$('#selecteur_liste_types_especes').change(function() {
160
		type_espece = $('select#selecteur_liste_types_especes option:selected').val();
161
		modifierTableauEspeces();
162
		obtenirObservations();
163
	});
164
}
165
 
166
function modifierTableauEspeces() {
167
 
168
	id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
169
 
170
	$elements_liste = tableau_especes[id_type_espece];
171
 
172
	chaine_elements_liste = '';
173
	chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> toutes les esp&egrave;ces </option>';
174
	for(i in $elements_liste) {
175
		chaine_elements_liste += '<option value='+i+'>'+$elements_liste[i]+'</option>';
176
	}
177
 
178
	$('#selecteur_especes').html(chaine_elements_liste);
179
}
180
 
181
function initialiserListeEspeces() {
182
 
183
	$('#selecteur_especes').change(function() {
184
		espece = $('select#selecteur_especes option:selected').val();
185
		modifierTableauEvenements();
186
		obtenirObservations();
187
	});
188
}
189
 
190
function modifierTableauEvenements() {
191
 
192
	id_espece = $('select#selecteur_especes option:selected').val();
193
 
194
	$elements_liste = tableau_evenements_especes[id_espece];
195
	$elements_liste = $elements_liste.split(',');
196
 
197
	chaine_elements_liste = '';
198
	chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> tous les ev&egrave;nements </option>';
199
	for(i in $elements_liste) {
200
		chaine_elements_liste += '<option value='+$elements_liste[i]+'>'+tableau_evenements[$elements_liste[i]]+'</option>';
201
	}
202
 
203
	$('#selecteur_evenements').html(chaine_elements_liste);
204
}
205
 
206
function initialiserListeEvenements() {
207
 
208
	$('#selecteur_evenements').change(function() {
209
		evenement = $('select#selecteur_evenements option:selected').val();
210
		obtenirObservations();
211
	});
212
}
213
 
214
function initialiserListeAnnees() {
215
 
216
	$('#selecteur_liste_annees').change(function() {
217
		annee = $('select#selecteur_liste_annees option:selected').val();
218
		obtenirObservations();
219
	});
220
}
221
 
222
$('#slider_date').ready(function() {
223
	initialiserSliderDates();
224
	initialiserListeTypesEspeces();
225
	initialiserListeEspeces();
226
	initialiserListeEvenements();
227
	initialiserListeAnnees();
228
	obtenirObservations();
229
});
230
 
231
 
232
/**
233
	************************************************************************************************
234
	************************************************************************************************
235
 
236
	    Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des observation
237
 
238
	************************************************************************************************
239
	************************************************************************************************
240
**/
241
 
242
function initialiserCarte() {
243
 
244
	if($('#map_canvas').length == 0) {
245
		return;
246
	}
247
 
248
	var latlng = new google.maps.LatLng(47.0504, 2.2347);
249
	var myOptions = {
250
		zoom: 5,
251
		center: latlng,
252
		mapTypeId: google.maps.MapTypeId.HYBRID
253
	};
254
 
255
	map = new google.maps.Map(document.getElementById("map_canvas"),
256
    	myOptions);
257
 
258
	marker = new google.maps.Marker({
259
	      position: latlng,
260
	      title:""
261
	});
262
}
263
 
264
function obtenirObservations() {
265
 
266
	requete = '?annee='+annee+'&mois='+mois;
267
 
268
	if(type_espece != '0' && espece == '0') {
269
		requete += '&type_espece='+type_espece;
270
	}
271
 
272
	if(espece != '0') {
273
		requete += '&espece='+espece;
274
	}
275
 
276
	if(evenement != '0') {
277
		requete += '&evenement='+evenement;
278
	}
279
 
207 aurelien 280
	if(departement != '0') {
281
		requete += '&departement='+departement;
282
	}
283
 
206 aurelien 284
	$.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) {
285
 
286
		infos_observations = jQuery.parseJSON(data);
287
 
288
		if(tableau_marqueurs.length > 0) {
289
			viderMarqueurs();
290
		}
291
 
292
		for(i in infos_observations) {
293
			creerEtAjouterMarqueur(i, infos_observations[i]);
294
		}
295
	});
296
}
297
 
298
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
299
 
300
	latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
301
 
302
	tableau_marqueurs[id_marqueur] = new google.maps.Marker({
303
	      position: latlng,
304
	      title:infos_obs.evenenement
305
	});
306
 
307
	google.maps.event.addListener(tableau_marqueurs[id_marqueur], 'click', function() {
308
 
309
		contenu_fenetre = formaterContenuFenetre(infos_obs.obs);
310
		infowindow.close();
311
		infowindow.content = contenu_fenetre;
312
		infowindow.open(map,this);
313
	});
314
 
315
	tableau_marqueurs[id_marqueur].setDraggable(false);
316
	tableau_marqueurs[id_marqueur].setClickable(true);
317
 
318
	tableau_marqueurs[id_marqueur].setMap(map);
319
 
320
}
321
 
322
function viderMarqueurs() {
323
 
324
	infowindow.close();
325
	for(i in tableau_marqueurs) {
326
		tableau_marqueurs[i].setMap(null);
327
	}
328
 
329
	tableau_marqueurs = new Array();
330
}
331
 
332
function formaterContenuFenetre(infos_obs) {
333
 
334
	contenu_fenetre = '';
335
 
336
	for(i in infos_obs) {
337
 
338
		nom_stade ='';
339
		if(infos_obs[i].code_bbch != '') {
340
			nom_stade = ' stade '+infos_obs[i].code_bbch;
341
		}
342
 
343
		contenu_fenetre += '<div class="fenetre_infos">';
344
		contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
345
		contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
346
		contenu_fenetre += '<div class="date_obs"> Observ&eacute; le : '+infos_obs[i].date+' </div>';
347
		contenu_fenetre += '</div><br />';
348
	}
349
 
350
	return contenu_fenetre;
351
}
352
 
353
 
354
$('#map_canvas').ready(function() {
355
	initialiserCarte();
356
});