Subversion Repositories Sites.obs-saisons.fr

Rev

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

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