Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 206 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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