Subversion Repositories eFlore/Applications.cel

Rev

Rev 1580 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1580 Rev 1587
Line 42... Line 42...
42
	$(selecteur).fadeIn('slow').delay(DUREE_MESSAGE).fadeOut('slow');
42
	$(selecteur).fadeIn('slow').delay(DUREE_MESSAGE).fadeOut('slow');
43
}
43
}
Line 44... Line 44...
44
 
44
 
45
//+----------------------------------------------------------------------------------------------------------+
45
//+----------------------------------------------------------------------------------------------------------+
-
 
46
// PRÉCHARGEMENT DU FORMULAIRE
-
 
47
var latLngDebPre = {lat: null, lng: null},
-
 
48
	latLngFinPre = {lat: null, lng: null},
-
 
49
	okPourChargementCarte = 2;
46
// PRÉCHARGEMENT DU FORMULAIRE
50
 
47
$(document).ready(function() {
51
$(document).ready(function() {
48
	if (OBS_ID != '') {
52
	if (OBS_ID != '') {
49
		chargerInfoObs();
53
		chargerInfoObs();
50
	}
54
	}
Line 69... Line 73...
69
}
73
}
Line 70... Line 74...
70
 
74
 
71
function prechargerForm(infos) {
75
function prechargerForm(infos) {
Line 72... Line 76...
72
	$('input[name="station"]').val(infos.station);
76
	$('input[name="station"]').val(infos.station);
73
	
-
 
74
	var dateParts = infos.dateObservation.split('-');
-
 
75
	var dateObs = new Date(dateParts[0], dateParts[1] - 1, dateParts[2]);
-
 
76
	var dateObsStr = ('0' + dateObs.getDate()).slice(-2) + '/' +
77
	
77
		('0' + (dateObs.getMonth()+1)).slice(-2) + '/' + 
78
	//console.log(infos.extension);
78
		dateObs.getFullYear();
-
 
79
	$('input[name="date"]').val(dateObsStr);
79
	if (infos.extension) {
80
	
80
		var ext = infos.extension;
81
	$.each(infos.extension, function(index, value) {
81
		if (ext.latitudeDebutRue && ext.longitudeDebutRue && ext.latitudeFinRue && ext.longitudeFinRue) {
82
		if ($('[name="' + index + '"]').hasClass('slider')) {
82
			okPourChargementCarte--;
83
			console.log('select[name="' + index + '"] option[value="' + value.valeur + '"]');
83
			latLngDebPre.lat = parseFloat(ext.latitudeDebutRue.valeur);
84
			$('select[name="' + index + '"] option[value="' + value.valeur + '"]')
-
 
85
				.attr('selected', 'selected');
84
			latLngDebPre.lng = parseFloat(ext.longitudeDebutRue.valeur);
86
			var selectedIndexOptions = $('select[name="' + index + '"]').prop('selectedIndex') + 1;
-
 
87
			console.log(selectedIndexOptions);
85
			latLngFinPre.lat = parseFloat(ext.latitudeFinRue.valeur);
88
			$('[name="' + index + '"]').parent().find('.horizontal-slider').slider('value', selectedIndexOptions);
-
 
89
		} else {
86
			latLngFinPre.lng = parseFloat(ext.longitudeFinRue.valeur);
-
 
87
			prechargerRue();
-
 
88
		}
-
 
89
		
-
 
90
		var chpsARemplir = ['adresse', 'typoUrbaine', 'revetementSol', 'presenceZoneVegetalise', 'hauteurBatimentAvoisinant',
-
 
91
			'intensiteGestion', 'periodiciteTraitementPhyto', 'dateArretTraitementPhyto', 'itineraireGestion'];
-
 
92
		$.each(infos.extension, function(nomDuChp, value) {
-
 
93
			if (chpsARemplir.indexOf(nomDuChp) >= 0) {
-
 
94
				if ($('[name="' + nomDuChp + '"]').hasClass('slider')) {
-
 
95
					$('select[name="' + nomDuChp + '"] option[value="' + value.valeur + '"]')
-
 
96
						.attr('selected', 'selected');
-
 
97
					var selectedIndexOptions = $('select[name="' + nomDuChp + '"]').prop('selectedIndex') + 1;
-
 
98
					$('[name="' + nomDuChp + '"]').parent().find('.horizontal-slider').slider('value', selectedIndexOptions);
-
 
99
					
-
 
100
					if (nomDuChp == 'periodiciteTraitementPhyto') {
-
 
101
						$('[name="periodiciteTraitementPhyto"]').trigger('change');
-
 
102
					}
-
 
103
				} else {
-
 
104
					$('[name="' + nomDuChp + '"]').val(value.valeur);
90
			$('[name="' + index + '"]').val(value.valeur);
105
				}
-
 
106
			}
91
		}
107
		});
Line -... Line 108...
-
 
108
	}
-
 
109
}
-
 
110
 
-
 
111
function prechargerRue() {
-
 
112
	//console.log('okPourChargementCarte : '+okPourChargementCarte);
-
 
113
	if (okPourChargementCarte == 0) {
-
 
114
		latLngDeb = new google.maps.LatLng(latLngDebPre.lat, latLngDebPre.lng);
-
 
115
		markerDeb = undefined;
-
 
116
		initialiserMarkerDeb();
-
 
117
		deplacerMarkerDeb(latLngDeb);
-
 
118
		premierDeplacement = false;
-
 
119
		markerFin = undefined;
-
 
120
		latLngFin = new google.maps.LatLng(latLngFinPre.lat, latLngFinPre.lng);
-
 
121
		initialiserMarkerFin();
-
 
122
		deplacerMakerFin(latLngFin)
-
 
123
		surDeplacementMarkerFin();
Line 92... Line 124...
92
	});
124
		map.setZoom(16);
93
}
125
	}
Line 94... Line 126...
94
 
126
}
Line 221... Line 253...
221
				}
253
				}
222
			});
254
			});
223
		},
255
		},
224
		// Cette partie est executee a la selection d'une adresse
256
		// Cette partie est executee a la selection d'une adresse
225
		select: function(event, ui) {
257
		select: function(event, ui) {
226
			var latLng = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
258
			var nouvellePosition = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
-
 
259
			initialiserMarkerDeb();
227
			deplacerMarker(latLng);
260
			deplacerMarkerDeb(nouvellePosition);
228
			map.setZoom(16);
261
			map.setZoom(16);
-
 
262
			afficherEtapeGeolocalisation(2);
229
		}
263
		}
230
	});
264
	});
Line 231... Line 265...
231
	
265
	
232
	$('#geolocaliser').on('click', geolocaliser);
-
 
233
	
-
 
234
	google.maps.event.addListener(markerDeb, 'dragend', surDeplacementMarkerDeb);
-
 
235
	
-
 
236
	google.maps.event.addListener(map, 'click', surClickDansCarte);
266
	$('#geolocaliser').on('click', geolocaliser);
Line 237... Line 267...
237
});
267
});
238
 
268
 
239
function initialiserGoogleMap(){
269
function initialiserGoogleMap(){
Line 264... Line 294...
264
	
294
	
265
	// Création de la carte Google
295
	// Création de la carte Google
266
	map = new google.maps.Map(document.getElementById('map-canvas'), options); //affiche la google map dans la div map_canvas
296
	map = new google.maps.Map(document.getElementById('map-canvas'), options); //affiche la google map dans la div map_canvas
Line 267... Line 297...
267
	map.mapTypes.set('OSM', osmMapType);
297
	map.mapTypes.set('OSM', osmMapType);
268
	
298
	
Line 269... Line 299...
269
	// Création du Geocoder
299
	// Ajout de l'évènment sur click dans Carte
270
	geocoder = new google.maps.Geocoder();
300
	google.maps.event.addListener(map, 'click', surClickDansCarte);
271
	
301
	
-
 
302
	// Lorsque la carte est chargée, on vérifie si on peut précharger des données
272
	// Marqueur de début de Rue
303
	google.maps.event.addListenerOnce(map, 'idle', function(){
273
	markerDeb = new google.maps.Marker({
304
		if (OBS_ID == '') {
274
		map: map,
305
			// Initialisation du marker de début de rue
275
		draggable: true,
306
			initialiserMarkerDeb();
-
 
307
			// Tentative de geocalisation si aucune obs à précharger
-
 
308
			if (OBS_ID == '') {
-
 
309
				tenterGeolocalisation();
-
 
310
			}
-
 
311
		} else {
276
		title: 'Début de la portion de rue étudiée',
312
			okPourChargementCarte--;
277
		icon: GOOGLE_MAP_MARQUEUR_DEBUT_URL,
-
 
Line 278... Line 313...
278
		position: latLngDeb
313
			prechargerRue();
279
	});
314
		}
280
	initialiserMarkerDeb(latLngDeb);
315
	});
Line 281... Line 316...
281
	
316
	
-
 
317
	// Création du Geocoder
282
	// Tentative de geocalisation
318
	geocoder = new google.maps.Geocoder();
-
 
319
}
283
	tenterGeolocalisation();
320
 
-
 
321
function initialiserMarkerDeb() {
284
}
322
	premierDeplacement = true;
285
 
323
	if (markerDeb == undefined) {
-
 
324
		// Marqueur de début de Rue
-
 
325
		markerDeb = new google.maps.Marker({
286
function afficherErreurGoogleMap(status) {
326
			map: map,
-
 
327
			draggable: true,
-
 
328
			title: 'Début de la portion de rue étudiée',
-
 
329
			icon: GOOGLE_MAP_MARQUEUR_DEBUT_URL,
-
 
330
			position: latLngDeb
-
 
331
		});
287
	if (DEBUG) {
332
		google.maps.event.addListener(markerDeb, 'dragend', surDeplacementMarkerDeb);
-
 
333
	}
-
 
334
	
-
 
335
	latLngFin = latLngDeb;
-
 
336
	if (markerFin != undefined) {
288
		$('#dialogue-google-map .contenu').empty().append(
337
		markerFin.setMap(null);
289
			'<pre class="msg-erreur">'+
-
 
290
			"Le service de Géocodage de Google Map a échoué à cause de l'erreur : "+status+
-
 
291
			'</pre>');
-
 
292
		afficherPanneau('#dialogue-google-map');
-
 
293
	}
-
 
294
}
-
 
295
 
-
 
296
function geolocaliser(event) {
-
 
297
	var latitude = $('#latitude').val(),
-
 
298
		longitude = $('#longitude').val();
-
 
299
	latLng = new google.maps.LatLng(latitude, longitude);
338
	}
Line 300... Line 339...
300
	deplacerMarker(latLng);
339
	latLngCentre = latLngDeb;
301
	afficherEtapeGeolocalisation(2);
-
 
302
	map.setZoom(16);
-
 
303
	arreter(event);
340
	if (ligneRue != undefined) {
304
}
341
		ligneRue.setMap(null);
Line 305... Line 342...
305
 
342
	}
-
 
343
}
-
 
344
 
306
function surDeplacementMarkerDeb() {
345
function surDeplacementMarkerDeb() {
307
	trouverCommune(markerDeb.getPosition());
-
 
-
 
346
	deplacerMarkerDeb(markerDeb.getPosition());
-
 
347
}
Line -... Line 348...
-
 
348
 
308
	mettreAJourMarkerPosition(markerDeb.getPosition());
349
function deplacerMarkerDeb(nouvellePosition) {
309
	deplacerMarker(markerDeb.getPosition());
350
	latLngDeb = nouvellePosition;
-
 
351
	markerDeb.setPosition(latLngDeb);
310
}
352
	map.setCenter(latLngDeb);
311
 
353
	mettreAJourStationPosition(latLngDeb);
312
function surClickDansCarte(event) {
354
	trouverCommune(latLngDeb);
313
	deplacerMarker(event.latLng);
355
 
314
}
356
	if (premierDeplacement) {
315
 
357
		initialiserMarkerDeb();
Line 316... Line 358...
316
function initialiserMarkerDeb(latLng) {
358
		premierDeplacement = false;
317
	if (markerDeb != undefined) {
359
	} else {
318
		markerDeb.setPosition(latLng);
-
 
319
		map.setCenter(latLng);
360
		var nouvellePositionFin = new google.maps.LatLng(latLngDeb.lat(), latLngDeb.lng() + 0.0010);
320
		mettreAJourMarkerPosition(latLng);
361
		initialiserMarkerFin();
321
		trouverCommune(latLng);
-
 
322
	}
362
		deplacerMakerFin(nouvellePositionFin)
323
}
-
 
324
 
363
		afficherEtapeGeolocalisation(3);
325
function tenterGeolocalisation() {
364
	}
326
	if (navigator.geolocation) {
365
}
327
		navigator.geolocation.getCurrentPosition(function(position) {
366
 
-
 
367
function initialiserMarkerFin() {
-
 
368
	if (markerFin == undefined) {
-
 
369
		markerFin = new google.maps.Marker({
328
			var latitude = position.coords.latitude,
370
			map: map,
329
				longitude = position.coords.longitude;
371
			draggable: true,
Line 330... Line 372...
330
			latLngDeb = new google.maps.LatLng(latitude, longitude);
372
			title: 'Fin de la portion de rue étudiée',
331
			latLngFin = latLngDeb;
-
 
332
			// si l'utilisateur géolocalise sa ville alors le premier déplacement doit être réinitialisé
373
			icon: GOOGLE_MAP_MARQUEUR_FIN_URL,
333
			premierDeplacement = true;
374
			position: latLngFin
334
			deplacerMarker(latLngDeb);
375
		});
335
			map.setZoom(16);
376
		google.maps.event.addListener(markerFin, 'dragend', surDeplacementMarkerFin);
336
		});
377
	} else {
337
	}
-
 
338
}
-
 
339
 
-
 
340
function deplacerMarker(latLng) {
-
 
341
	if (markerDeb != undefined) {
378
		markerFin.setMap(null);
342
		latLngDeb = latLng;
-
 
343
		markerDeb.setPosition(latLngDeb);
379
	}
344
		map.setCenter(latLngDeb);
-
 
345
		trouverCommune(latLngDeb);
-
 
346
		
-
 
347
		if (!premierDeplacement) {
-
 
348
			if (markerFin != undefined) {
-
 
349
				markerFin.setMap(null);
-
 
350
			}
-
 
351
			
380
}
352
			latLngFin = new google.maps.LatLng(latLngDeb.lat(), latLngDeb.lng() + 0.0010);
-
 
353
			markerFin = new google.maps.Marker({
-
 
354
				map: map,
-
 
355
				draggable: true,
-
 
356
				title: 'Fin de la portion de rue étudiée',
381
 
357
				icon: GOOGLE_MAP_MARQUEUR_FIN_URL,
-
 
358
				position: latLngFin
-
 
359
			});
-
 
360
			google.maps.event.addListener(markerFin, 'dragend', function() {
-
 
361
				dessinerLigneRue(markerDeb.getPosition(), markerFin.getPosition());
-
 
362
				latLngDeb = markerDeb.getPosition();
-
 
363
				latLngFin = markerFin.getPosition();
382
function deplacerMakerFin(nouvellePosition) {
364
				latLngCentre = new google.maps.LatLng((latLngFin.lat() + latLngDeb.lat())/2, (latLngFin.lng() + latLngDeb.lng())/2); 
-
 
365
				mettreAJourMarkerPosition(latLngCentre);
-
 
366
				afficherEtapeGeolocalisation(4);
-
 
367
			});
-
 
368
			
-
 
369
			dessinerLigneRue(latLngDeb, latLngFin);
383
	latLngFin = nouvellePosition;
Line 370... Line 384...
370
			
384
	markerFin.setMap(map);
371
			latLngCentre = new google.maps.LatLng((latLngFin.lat() + latLngDeb.lat())/2, (latLngFin.lng() + latLngDeb.lng())/2); 
385
	markerFin.setPosition(latLngFin);
372
			mettreAJourMarkerPosition(latLngCentre);
386
	dessinerLigneRue(latLngDeb, latLngFin);
Line 391... Line 405...
391
	});
405
	});
Line 392... Line 406...
392
 
406
 
393
	ligneRue.setMap(map);
407
	ligneRue.setMap(map);
Line 394... Line 408...
394
}
408
}
-
 
409
 
395
 
410
function afficherCentreRue() {
-
 
411
	latLngDeb = markerDeb.getPosition();
396
function afficherEtapeGeolocalisation(numEtape) {
412
	latLngFin = markerFin.getPosition();
397
	$('.liste_indication_geolocalisation').children().hide();
413
	latLngCentre = new google.maps.LatLng((latLngFin.lat() + latLngDeb.lat())/2, (latLngFin.lng() + latLngDeb.lng())/2); 
Line 398... Line 414...
398
	$('.liste_indication_geolocalisation :nth-child('+numEtape+')').show();
414
	mettreAJourStationPosition(latLngCentre);
399
}
415
}
400
 
416
 
401
function mettreAJourMarkerPosition(latLng) {
417
function mettreAJourStationPosition(latLng) {
402
	var lat = latLng.lat().toFixed(5),
418
	var lat = latLng.lat().toFixed(5),
403
		lng = latLng.lng().toFixed(5); 
419
		lng = latLng.lng().toFixed(5); 
Line 479... Line 495...
479
			}
495
			}
480
		});
496
		});
481
	});
497
	});
482
}
498
}
Line -... Line 499...
-
 
499
 
-
 
500
function afficherEtapeGeolocalisation(numEtape) {
-
 
501
	$('.liste_indication_geolocalisation').children().hide();
-
 
502
	$('.liste_indication_geolocalisation :nth-child('+numEtape+')').show();
-
 
503
}
-
 
504
 
-
 
505
function afficherErreurGoogleMap(status) {
-
 
506
	if (DEBUG) {
-
 
507
		$('#dialogue-google-map .contenu').empty().append(
-
 
508
			'<pre class="msg-erreur">'+
-
 
509
			"Le service de Géocodage de Google Map a échoué à cause de l'erreur : "+status+
-
 
510
			'</pre>');
-
 
511
		afficherPanneau('#dialogue-google-map');
-
 
512
	}
-
 
513
}
-
 
514
 
-
 
515
function geolocaliser(event) {
-
 
516
	var latitude = $('#latitude').val(),
-
 
517
		longitude = $('#longitude').val(),
-
 
518
		nouvellePosition = new google.maps.LatLng(latitude, longitude);
-
 
519
	initialiserMarkerDeb();
-
 
520
	deplacerMarkerDeb(nouvellePosition);
-
 
521
	afficherEtapeGeolocalisation(2);
-
 
522
	map.setZoom(16);
-
 
523
	arreter(event);
-
 
524
}
-
 
525
 
-
 
526
function tenterGeolocalisation() {
-
 
527
	if (navigator.geolocation) {
-
 
528
		navigator.geolocation.getCurrentPosition(function(position) {
-
 
529
			var latitude = position.coords.latitude,
-
 
530
				longitude = position.coords.longitude,
-
 
531
				nouvellePosition = new google.maps.LatLng(latitude, longitude);
-
 
532
			initialiserMarkerDeb();
-
 
533
			deplacerMarkerDeb(nouvellePosition);
-
 
534
			map.setZoom(16);
-
 
535
		});
-
 
536
	}
-
 
537
}
-
 
538
 
-
 
539
function surClickDansCarte(event) {
-
 
540
	deplacerMarkerDeb(event.latLng);
-
 
541
}
Line 483... Line 542...
483
 
542
 
484
 
543
 
Line 485... Line 544...
485
//+---------------------------------------------------------------------------------------------------------+
544
//+---------------------------------------------------------------------------------------------------------+
Line 677... Line 736...
677
	transformerEnSlider('#periodicite-traitement-phyto');
736
	transformerEnSlider('#periodicite-traitement-phyto');
678
	transformerEnSlider('#resistance-traitement-phyto');
737
	transformerEnSlider('#resistance-traitement-phyto');
679
	transformerEnSlider('#vitesse-croissance');
738
	transformerEnSlider('#vitesse-croissance');
Line 680... Line 739...
680
	
739
	
681
	// Afficher/Cacher champs cachés par défaut
740
	// Afficher/Cacher champs cachés par défaut
682
	$('#periodicite-traitement-phyto').on('change', function() {
-
 
683
		if ($(this).val() === 'jamais') {
-
 
684
			$('#datp-zone').removeClass('hidden');
-
 
685
		} else {
-
 
686
			$('#datp-zone').addClass('hidden');
-
 
687
		}
-
 
688
	});
741
	$('#periodicite-traitement-phyto').on('change', surChangementPeriodiciteTraitementPhyto);
689
	$('#taxon-liste').on('change', function() {
-
 
690
		if ($(this).val() === '?') {
-
 
691
			$('#taxon-input-groupe').removeClass('hidden');
-
 
692
		} else {
-
 
693
			$('#taxon-input-groupe').addClass('hidden');
-
 
694
		}
-
 
Line 695... Line 742...
695
	});
742
	$('#taxon-liste').on('change', surChangementTaxonListe);
Line 696... Line 743...
696
	
743
	
697
	$('.alert .close').on('click', fermerPanneauAlert);
744
	$('.alert .close').on('click', fermerPanneauAlert);
Line 801... Line 848...
801
			slider.parent().find('.slider-legend p');//.css('text-indent', '200%');
848
			slider.parent().find('.slider-legend p');//.css('text-indent', '200%');
802
		}
849
		}
803
	});
850
	});
804
}
851
}
Line -... Line 852...
-
 
852
 
-
 
853
function surChangementPeriodiciteTraitementPhyto() {
-
 
854
	if ($('#periodicite-traitement-phyto').val() === 'jamais') {
-
 
855
		$('#datp-zone').removeClass('hidden');
-
 
856
	} else {
-
 
857
		$('#datp-zone').addClass('hidden');
-
 
858
	}
-
 
859
}
-
 
860
 
-
 
861
function surChangementTaxonListe() {
-
 
862
	if ($('#taxon-liste').val() === '?') {
-
 
863
		$('#taxon-input-groupe').removeClass('hidden');
-
 
864
	} else {
-
 
865
		$('#taxon-input-groupe').addClass('hidden');
-
 
866
	}
-
 
867
}
805
 
868
 
806
function configurerDatePicker(selector) {
869
function configurerDatePicker(selector) {
807
	$.datepicker.setDefaults($.datepicker.regional['fr']);
870
	$.datepicker.setDefaults($.datepicker.regional['fr']);
808
	$(selector).datepicker({
871
	$(selector).datepicker({
809
		dateFormat: 'dd/mm/yy',
872
		dateFormat: 'dd/mm/yy',