Subversion Repositories Sites.obs-saisons.fr

Rev

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