Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 236 → Rev 237

/trunk/applications/rendu/squelettes/js/rendu_especes.js
New file
0,0 → 1,575
var map = null;
var tableau_marqueurs = new Array();
var infowindow = new google.maps.InfoWindow();
var infos_observations = new Array();
 
var type_espece = '0';
var espece = '0';
var evenement = '0';
var annee = '0';
var mois = '0';
var jour = '0';
var departement = '0';
 
var tableau_couleurs = new Array("#A9582B", "#8DC7B8","#ED9355","#A7BD5B",
"#FFC730","#0000FF","#CC4369","#9CA6A2",
"#F7E4A2","#DC574E","#3F6CA9","#DC6C4B",
"#E8A794","#9B5F95","#E78EDE","#45808A",
"#168F47","#C9A838","#F2EAD8","#1A5561",
"#6D883A");
 
liste_mois = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
 
evenements_debut_annee = new Array("")
 
var tableau_couleurs_en_cours = new Array();
 
var timerSlider = null;
 
function getUrlBaseJrest() {
return urlBaseJrest;
}
 
function traiterParametresUrl() {
 
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
if(vars['type_espece'] != null) {
type_espece = vars['type_espece'];
$('#selecteur_liste_types_especes').val(type_espece);
}
if(vars['espece'] != null) {
if(type_espece != '0') {
modifierTableauEspeces();
}
espece = vars['espece'];
$('#selecteur_especes').val(espece);
}
if(vars['evenement'] != null) {
if(espece != 0) {
modifierTableauEvenement()
}
evenement = vars['evenement'];
$('#selecteur_evenements').val(evenement);
}
if(vars['annee'] != null) {
annee = vars['annee'];
$('#selecteur_liste_annees').val(annee);
} else {
date = new Date()
annee = date.getFullYear();
$('#selecteur_liste_annees').val(annee);
}
if(vars['mois'] != null) {
mois = vars['mois'];
} else {
date = new Date()
}
if(vars['departement'] != null) {
departement = vars['departement'];
}
if(vars['cacher_criteres'] != null && vars['cacher_criteres'] == '1') {
$(".criteres").hide();
}
}
 
function obtenirCodeWidget() {
var UrlBase = window.location;
UrlBase += '?';
if(type_espece != '0') UrlBase += "type_espece="+type_espece;
if(espece != '0') UrlBase += "&espece="+espece;
if(evenement != '0') UrlBase += "&evenement="+evenement;
if(annee != '0') UrlBase += "&annee="+annee;
if(mois != '0') UrlBase += "&mois="+mois;
UrlBase += "&cacher_criteres=1";
code_widget = '<iframe src="'+UrlBase+'" width="375px" height="470px"><p>Votre navigateur ne supporte pas les iframes.</p></iframe>'
return code_widget;
}
 
$('#lien_cette_recherche').ready(function() {
$('#lien_cette_recherche').click(function() {
window.alert(obtenirCodeWidget());
return false;
});
});
 
$(document).ready(function() {
traiterParametresUrl();
});
 
/**
************************************************************************************************
************************************************************************************************
 
Fonctions concernant les gestion des filtres sur la carte
 
************************************************************************************************
************************************************************************************************
**/
 
function setDateSlider() {
numeroJour = $("#slider_date").slider("value");
dateObs = new Date(annee,0,0);
dateObs.setDate(dateObs.getDate()+numeroJour);
mois = dateObs.getMonth();
jour = dateObs.getDay();
afficherObservations();
}
 
function InitialiserIntervalleDateSlider() {
}
 
/*function est une anneeBissextile(
return eval(an%4)==0 && !(eval(an%100)== 0 && eval(an%400)==0));
}*/
 
function initialiserSliderDates() {
date_min = 1;
date_max = 365;
$("#slider_date").slider({
min: date_min,
max: date_max,
value: mois
});
taille_criteres = Math.round($("#slider_date").width()/(liste_mois.length));
valeurs_slider = '<table id="table_dates"><tbody><tr>';
for (i in liste_mois) {
valeurs_slider += '<td class="conteneur_date">'+liste_mois[i]+'</td>';
}
valeurs_slider += '</tr></tbody></table>';
$("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
$("#valeurs_date").html(valeurs_slider);
$("#slider_date").bind("slidestop", function(event, ui) {
setDateSlider();
return true;
});
$(window).bind("resize", resizeWindow);
function resizeWindow( e ) {
taille_criteres = Math.round($("#slider_date").width()/(liste_mois.length));
$("#css_slider").html(".conteneur_date{ width:"+taille_criteres+"px;}");
}
}
 
function initialiserListeTypesEspeces() {
$('#selecteur_liste_types_especes').change(function() {
type_espece = $('select#selecteur_liste_types_especes option:selected').val();
modifierTableauEspeces();
obtenirObservations();
});
}
 
function modifierTableauEspeces() {
 
id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
elements_liste = tableau_especes[id_type_espece];
var nb_couleur = 0;
 
chaine_elements_liste = '';
for(i in elements_liste) {
chaine_elements_liste += '<span class="legende" style="background-color:'+tableau_couleurs[nb_couleur]+'"></span><input class="selecteur_espece" type="checkbox" id="espece_numero_'+i+'" name="selecteur_especes" value="'+i+'" />';
chaine_elements_liste += '<label for="espece_numero_'+i+'">'+elements_liste[i]+'</label><br />';
tableau_couleurs_en_cours[i] = tableau_couleurs[nb_couleur];
nb_couleur++;
}
$('#conteneur_selecteur_liste_especes').html(chaine_elements_liste);
}
 
function initialiserListeEspeces() {
$('.selecteur_espece').live('change', function() {
modifierTableauEvenements();
obtenirObservations();
});
}
 
function getEspecesSelectionnees() {
especes_selectionnees = $('.selecteur_espece');
tab_id_especes = new Array();
especes_selectionnees.each(function (index, espece) {
if($(espece).attr('checked') == true) {
tab_id_especes.push($(espece).val());
}
});
return tab_id_especes;
}
 
function modifierTableauEvenements() {
especes_selectionnees = getEspecesSelectionnees();
elements_liste = new Array();
if(especes_selectionnees.length > 0) {
espece = especes_selectionnees.concat(',');
espece = espece.slice(0, -1);
} else {
espece = '0';
}
 
for(i in especes_selectionnees) {
evenements_especes = tableau_evenements_especes[especes_selectionnees[i]];
liste_evenements_cette_espece = evenements_especes.split(',');
for(j in liste_evenements_cette_espece) {
elements_liste[j] = liste_evenements_cette_espece[j];
}
}
chaine_elements_liste = '';
chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> tous les ev&egrave;nements </option>';
for(i in elements_liste) {
chaine_elements_liste += '<option value='+elements_liste[i]+'>'+tableau_evenements[elements_liste[i]]+'</option>';
}
$('#selecteur_evenements').html(chaine_elements_liste);
}
 
function initialiserListeEvenements() {
$('#selecteur_evenements').change(function() {
evenement = $('select#selecteur_evenements option:selected').val();
obtenirObservations();
});
}
 
function initialiserListeAnnees() {
$('#selecteur_liste_annees').change(function() {
annee = $('select#selecteur_liste_annees option:selected').val();
obtenirObservations();
});
}
 
function incrementerValeurSlider() {
var valeur_en_cours = $('#slider_date').slider("value");
if($('#slider_date').slider("value") < $('#slider_date').slider("option", "max")) {
valeur_en_cours++;
$('#slider_date').slider("value",valeur_en_cours);
setDateSlider();
} else {
clearInterval(timerSlider);
$('#demarrer_slider').removeAttr('disabled');
}
}
 
function initialiserBoutonsSlider() {
$('#demarrer_slider').click(function() {
if($('#slider_date').slider("value") == $('#slider_date').slider("option","max")) {
min_slider = $('#slider_date').slider("option","min");
$('#slider_date').slider("value",min_slider);
}
timerSlider = setInterval("incrementerValeurSlider()",150);
$('#demarrer_slider').attr('disabled', 'disabled');
});
$('#arreter_slider').click(function() {
if(timerSlider != null) {
clearInterval(timerSlider);
$('#demarrer_slider').removeAttr('disabled');
}
});
}
 
function initialiserValeursParDefaut() {
id_type_espece = $('select#selecteur_liste_types_especes').val("2");
modifierTableauEspeces();
obtenirObservations();
}
 
$('#slider_date').ready(function() {
initialiserSliderDates();
initialiserBoutonsSlider();
initialiserListeTypesEspeces();
initialiserListeEspeces();
initialiserListeEvenements();
initialiserListeAnnees();
initialiserValeursParDefaut();
});
 
 
/**
************************************************************************************************
************************************************************************************************
Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des observation
************************************************************************************************
************************************************************************************************
**/
 
function initialiserCarte() {
 
if($('#map_canvas').length == 0) {
return;
}
 
var latlng = new google.maps.LatLng(47.0504, 2.2347);
var myOptions = {
zoom: 5,
center: latlng,
mapTypeId: google.maps.MapTypeId.HYBRID
};
 
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
marker = new google.maps.Marker({
position: latlng,
title:""
});
$('.lien_vers_profil').live('click', function(event) {
event.preventDefault();
window.open($(this).attr('href'));
return false;
});
}
 
function obtenirObservations() {
requete = '?annee='+annee;
if(type_espece != '0' && espece == '0') {
requete += '&type_espece='+type_espece;
}
if(espece != '0') {
requete += '&espece='+espece;
}
if(evenement != '0') {
requete += '&evenement='+evenement;
}
if(departement != '0') {
requete += '&departement='+departement;
}
$.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) {
infos_observations = jQuery.parseJSON(data);
if(tableau_marqueurs.length > 0) {
viderMarqueurs();
}
for(i in infos_observations) {
creerEtAjouterMarqueur(i, infos_observations[i]);
}
afficherObservations();
});
}
 
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
var chaine_couleur = '';
for(i in infos_obs.obs) {
var observation = infos_obs.obs[i];
if(typeof(tableau_couleurs_en_cours[observation.id_espece]) != 'undefined') {
chaine_couleur += tableau_couleurs_en_cours[observation.id_espece]+",";
}
}
chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
var image = obtenirImagePourChaineCouleur(chaine_couleur);
tableau_marqueurs[id_marqueur] = new google.maps.Marker({
position: latlng,
title:infos_obs.evenenement,
icon:image,
optimized: false
});
 
google.maps.event.addListener(tableau_marqueurs[id_marqueur], 'click', function() {
contenu_fenetre = formaterContenuFenetre(infos_obs.obs);
infowindow.close();
infowindow.content = contenu_fenetre;
infowindow.open(map,this);
});
tableau_marqueurs[id_marqueur].setDraggable(false);
tableau_marqueurs[id_marqueur].setClickable(true);
tableau_marqueurs[id_marqueur].setMap(map);
 
}
 
function viderMarqueurs() {
infowindow.close();
for(i in tableau_marqueurs) {
tableau_marqueurs[i].setMap(null);
}
tableau_marqueurs = new Array();
}
 
function afficherObservations() {
var chaine_couleur = '';
for(i in tableau_marqueurs) {
id_obs = i;
obs_associees = infos_observations[id_obs];
afficher_marqueur = false;
chaine_couleur = '';
for(j in obs_associees.obs) {
date_obs = obs_associees.obs[j].date;
afficher_marqueur = dateEstDansIntervalle(date_obs);
if(afficher_marqueur) {
if(typeof(tableau_couleurs_en_cours[obs_associees.obs[j].id_espece]) != 'undefined') {
chaine_couleur += tableau_couleurs_en_cours[obs_associees.obs[j].id_espece]+",";
}
}
}
if(afficher_marqueur && chaine_couleur != '') {
chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
var image = obtenirImagePourChaineCouleur(chaine_couleur);
tableau_marqueurs[i].setIcon(image);
if(!tableau_marqueurs[i].getVisible()) {
tableau_marqueurs[i].setVisible(true);
}
} else {
tableau_marqueurs[i].setVisible(false);
}
}
}
 
function obtenirImagePourChaineCouleur(chaine_couleur) {
chaine_couleur = encodeURIComponent(chaine_couleur);
var image = getUrlBaseJrest()+"OdsMarqueur/point?couleurs="+chaine_couleur;
return image;
}
 
function convertirDateObsVersJs(chaine_date) {
tableau_date = chaine_date.split('/');
date_obs = new Date();
date_obs.setDate(tableau_date[0]);
date_obs.setMonth(tableau_date[1]);
date_obs.setFullYear(tableau_date[2]);
return date_obs;
}
 
function dateEstDansIntervalle(t_obs) {
date_obs = convertirDateObsVersJs(t_obs);
dans_intervalle = false;
var dateDebutAnnee = new Date();
dateDebutAnnee.setDate(1);
dateDebutAnnee.setMonth(1);
dateDebutAnnee.setFullYear(date_obs.getFullYear());
var quantieme = (date_obs.getTime() - dateDebutAnnee.getTime()) / (24 * 3600 * 1000)+1;
if($('#slider_date').slider("value") >= quantieme) {
dans_intervalle = true;
}
return dans_intervalle;
}
function comparerDates(date_1, date_2){
diff = date_1.getTime()-date_2.getTime();
return (diff==0?diff:diff/Math.abs(diff));
}
 
function obtenirMarqueurPourStade(stade) {
iconeStade = '../images/marqueur_'+stade+'.png';
 
return iconeStade;
}
 
function formaterContenuFenetre(infos_obs) {
contenu_fenetre = '';
date_courante = new Date(annee,mois,jour);
for(i in infos_obs) {
t_obs = infos_obs[i].date;
if(dateEstDansIntervalle(t_obs)) {
nom_stade ='';
if(infos_obs[i].code_bbch != '') {
nom_stade = ' stade '+infos_obs[i].code_bbch;
}
contenu_fenetre += '<div class="fenetre_infos">';
contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
contenu_fenetre += '<div class="date_obs"> Observ&eacute; le : '+infos_obs[i].date+' </div>';
contenu_fenetre += construireUrlProfilParticipant(infos_obs[i].participant);
contenu_fenetre += '</div><br />';
}
}
return contenu_fenetre;
}
 
function construireUrlProfilParticipant(id) {
return '<a class="lien_vers_profil" href="http://obs-saisons.fr/user/'+id+'"> Voir l\'auteur </a>';
}
 
$('#map_canvas').ready(function() {
initialiserCarte();
});
/trunk/applications/rendu/squelettes/js/rendu_annees.js
New file
0,0 → 1,594
var map = null;
var tableau_marqueurs = new Array();
var infowindow = new google.maps.InfoWindow();
var infos_observations = new Array();
 
var type_espece = '0';
var espece = '0';
var evenement = '0';
var annee = '0';
var mois = '0';
var jour = '0';
var departement = '0';
 
var tableau_couleurs = new Array("#A9582B", "#8DC7B8","#ED9355","#A7BD5B",
"#FFC730","#0000FF","#CC4369","#9CA6A2",
"#F7E4A2","#DC574E","#3F6CA9","#DC6C4B",
"#E8A794","#9B5F95","#E78EDE","#45808A",
"#168F47","#C9A838","#F2EAD8","#1A5561",
"#6D883A");
 
liste_mois = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
 
evenements_debut_annee = new Array("")
 
var tableau_couleurs_en_cours = new Array();
 
var timerSlider = null;
 
function getUrlBaseJrest() {
return urlBaseJrest;
}
 
function traiterParametresUrl() {
 
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
if(vars['type_espece'] != null) {
type_espece = vars['type_espece'];
$('#selecteur_liste_types_especes').val(type_espece);
}
if(vars['espece'] != null) {
if(type_espece != '0') {
modifierTableauEspeces();
}
espece = vars['espece'];
$('#selecteur_especes').val(espece);
}
if(vars['evenement'] != null) {
if(espece != 0) {
modifierTableauEvenement()
}
evenement = vars['evenement'];
$('#selecteur_evenements').val(evenement);
}
if(vars['annee'] != null) {
annee = vars['annee'];
$('#selecteur_liste_annees').val(annee);
} else {
date = new Date()
annee = date.getFullYear();
$('#selecteur_liste_annees').val(annee);
}
if(vars['mois'] != null) {
mois = vars['mois'];
} else {
date = new Date()
}
if(vars['departement'] != null) {
departement = vars['departement'];
}
if(vars['cacher_criteres'] != null && vars['cacher_criteres'] == '1') {
$(".criteres").hide();
}
}
 
function obtenirCodeWidget() {
var UrlBase = window.location;
UrlBase += '?';
if(type_espece != '0') UrlBase += "type_espece="+type_espece;
if(espece != '0') UrlBase += "&espece="+espece;
if(evenement != '0') UrlBase += "&evenement="+evenement;
if(annee != '0') UrlBase += "&annee="+annee;
if(mois != '0') UrlBase += "&mois="+mois;
UrlBase += "&cacher_criteres=1";
code_widget = '<iframe src="'+UrlBase+'" width="375px" height="470px"><p>Votre navigateur ne supporte pas les iframes.</p></iframe>'
return code_widget;
}
 
$('#lien_cette_recherche').ready(function() {
$('#lien_cette_recherche').click(function() {
window.alert(obtenirCodeWidget());
return false;
});
});
 
$(document).ready(function() {
traiterParametresUrl();
});
 
/**
************************************************************************************************
************************************************************************************************
 
Fonctions concernant les gestion des filtres sur la carte
 
************************************************************************************************
************************************************************************************************
**/
 
function setDateSlider() {
numeroJour = $("#slider_date").slider("value");
dateObs = new Date(annee,0,0);
dateObs.setDate(dateObs.getDate()+numeroJour);
mois = dateObs.getMonth();
jour = dateObs.getDay();
afficherObservations();
}
 
function InitialiserIntervalleDateSlider() {
}
 
/*function est une anneeBissextile(
return eval(an%4)==0 && !(eval(an%100)== 0 && eval(an%400)==0));
}*/
 
function initialiserSliderDates() {
date_min = 1;
date_max = 365;
$("#slider_date").slider({
min: date_min,
max: date_max,
value: mois
});
taille_criteres = Math.round($("#slider_date").width()/(liste_mois.length));
valeurs_slider = '<table id="table_dates"><tbody><tr>';
for (i in liste_mois) {
valeurs_slider += '<td class="conteneur_date">'+liste_mois[i]+'</td>';
}
valeurs_slider += '</tr></tbody></table>';
$("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
$("#valeurs_date").html(valeurs_slider);
$("#slider_date").bind("slidestop", function(event, ui) {
setDateSlider();
return true;
});
$(window).bind("resize", resizeWindow);
function resizeWindow( e ) {
taille_criteres = Math.round($("#slider_date").width()/(liste_mois.length));
$("#css_slider").html(".conteneur_date{ width:"+taille_criteres+"px;}");
}
}
 
function initialiserListeTypesEspeces() {
$('#selecteur_liste_types_especes').change(function() {
type_espece = $('select#selecteur_liste_types_especes option:selected').val();
modifierTableauEspeces();
obtenirObservations();
});
}
 
function modifierTableauEspeces() {
 
id_type_espece = $('select#selecteur_liste_types_especes option:selected').val();
elements_liste = tableau_especes[id_type_espece];
var nb_couleur = 0;
 
chaine_elements_liste = '';
chaine_elements_liste += '<select id="selecteur_liste_especes" name="selecteur_liste_especes">';
for(i in elements_liste) {
chaine_elements_liste += '<option class="option_espece" value="'+i+'"> '+elements_liste[i]+' </option>';
}
chaine_elements_liste += '</select>';
$('#conteneur_selecteur_liste_especes').html(chaine_elements_liste);
}
 
function initialiserListeEspeces() {
$('#selecteur_liste_especes').live('change', function() {
modifierTableauEvenements();
obtenirObservations();
});
}
 
function getEspeceSelectionnee() {
var espece_selectionnee = $('.option_espece:selected').val();
espece = espece_selectionnee;
return espece_selectionnee;
}
 
function modifierTableauEvenements() {
espece_selectionnee = getEspeceSelectionnee();
if(espece_selectionnee == null ) {
espece = '0';
}
evenements_especes = tableau_evenements_especes[espece_selectionnee];
liste_evenements_cette_espece = evenements_especes.split(',');
elements_liste = new Array();
for(j in liste_evenements_cette_espece) {
elements_liste[j] = liste_evenements_cette_espece[j];
}
chaine_elements_liste = '';
chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> tous les ev&egrave;nements </option>';
for(i in elements_liste) {
chaine_elements_liste += '<option value='+elements_liste[i]+'>'+tableau_evenements[elements_liste[i]]+'</option>';
}
$('#selecteur_evenements').html(chaine_elements_liste);
}
 
function initialiserListeEvenements() {
$('#selecteur_evenements').change(function() {
evenement = $('select#selecteur_evenements option:selected').val();
obtenirObservations();
});
}
 
function initialiserListeAnnees() {
var date = new Date();
var cette_annee = date.getFullYear();
var chaine_element_date = '';
var nb_couleur = 0;
chaine_element_date = '<div class="critere" id="selecteur_liste_annees">';
for(var i = cette_annee; i >= cette_annee - 5; i--) {
chaine_element_date += '<span class="legende" style="background-color:'+tableau_couleurs[nb_couleur]+'"></span>';
chaine_element_date += '<input class="selecteur_date" type="checkbox" id="annee_numero_'+i+'" name="selecteur_annees" value="'+i+'" />';
chaine_element_date += '<label for="annee_numero_'+i+'">'+i+'</label><br />';
tableau_couleurs_en_cours[i] = tableau_couleurs[nb_couleur];
nb_couleur++;
}
chaine_element_date += '</div>';
$('#conteneur_selecteur_liste_annees').html(chaine_element_date);
$('#selecteur_liste_annees').change(function() {
annee = '';
$('.selecteur_date:checked').each(function(){
annee += $(this).val()+',';
i++;
});
if(annee.lastIndexOf( "," ) == annee.length - 1) {
annee = annee.substring(0,annee.length - 1);
}
obtenirObservations();
});
}
 
function incrementerValeurSlider() {
var valeur_en_cours = $('#slider_date').slider("value");
if($('#slider_date').slider("value") < $('#slider_date').slider("option", "max")) {
valeur_en_cours++;
$('#slider_date').slider("value",valeur_en_cours);
setDateSlider();
} else {
clearInterval(timerSlider);
$('#demarrer_slider').removeAttr('disabled');
}
}
 
function initialiserBoutonsSlider() {
$('#demarrer_slider').click(function() {
if($('#slider_date').slider("value") == $('#slider_date').slider("option","max")) {
min_slider = $('#slider_date').slider("option","min");
$('#slider_date').slider("value",min_slider);
}
timerSlider = setInterval("incrementerValeurSlider()",150);
$('#demarrer_slider').attr('disabled', 'disabled');
});
$('#arreter_slider').click(function() {
if(timerSlider != null) {
clearInterval(timerSlider);
$('#demarrer_slider').removeAttr('disabled');
}
});
}
 
function initialiserValeursParDefaut() {
id_type_espece = $('select#selecteur_liste_types_especes').val("2");
modifierTableauEspeces();
obtenirObservations();
}
 
$('#slider_date').ready(function() {
initialiserSliderDates();
initialiserBoutonsSlider();
initialiserListeTypesEspeces();
initialiserListeEspeces();
initialiserListeEvenements();
initialiserListeAnnees();
initialiserValeursParDefaut();
});
 
 
/**
************************************************************************************************
************************************************************************************************
Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des observation
************************************************************************************************
************************************************************************************************
**/
 
function initialiserCarte() {
 
if($('#map_canvas').length == 0) {
return;
}
 
var latlng = new google.maps.LatLng(47.0504, 2.2347);
var myOptions = {
zoom: 5,
center: latlng,
mapTypeId: google.maps.MapTypeId.HYBRID
};
 
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
marker = new google.maps.Marker({
position: latlng,
title:""
});
$('.lien_vers_profil').live('click', function(event) {
event.preventDefault();
window.open($(this).attr('href'));
return false;
});
}
 
function obtenirObservations() {
requete = '?annee='+annee;
if(type_espece != '0' && espece == '0') {
requete += '&type_espece='+type_espece;
}
if(espece != '0') {
requete += '&espece='+espece;
}
if(evenement != '0') {
requete += '&evenement='+evenement;
}
if(departement != '0') {
requete += '&departement='+departement;
}
$.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) {
infos_observations = jQuery.parseJSON(data);
if(tableau_marqueurs.length > 0) {
viderMarqueurs();
}
for(i in infos_observations) {
creerEtAjouterMarqueur(i, infos_observations[i]);
}
afficherObservations();
});
}
 
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
var chaine_couleur = '';
for(i in infos_obs.obs) {
var observation = infos_obs.obs[i];
if(typeof(tableau_couleurs_en_cours[observation.id_espece]) != 'undefined') {
chaine_couleur += tableau_couleurs_en_cours[observation.id_espece]+",";
}
}
chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
var image = obtenirImagePourChaineCouleur(chaine_couleur);
tableau_marqueurs[id_marqueur] = new google.maps.Marker({
position: latlng,
title:infos_obs.evenenement,
icon:image,
optimized: false
});
 
google.maps.event.addListener(tableau_marqueurs[id_marqueur], 'click', function() {
contenu_fenetre = formaterContenuFenetre(infos_obs.obs);
infowindow.close();
infowindow.content = contenu_fenetre;
infowindow.open(map,this);
});
tableau_marqueurs[id_marqueur].setDraggable(false);
tableau_marqueurs[id_marqueur].setClickable(true);
tableau_marqueurs[id_marqueur].setMap(map);
 
}
 
function viderMarqueurs() {
infowindow.close();
for(i in tableau_marqueurs) {
tableau_marqueurs[i].setMap(null);
}
tableau_marqueurs = new Array();
}
 
function afficherObservations() {
var chaine_couleur = '';
for(i in tableau_marqueurs) {
id_obs = i;
obs_associees = infos_observations[id_obs];
afficher_marqueur = false;
chaine_couleur = '';
for(j in obs_associees.obs) {
date_obs = obs_associees.obs[j].date;
afficher_marqueur = dateEstDansIntervalle(date_obs);
if(afficher_marqueur) {
if(typeof(tableau_couleurs_en_cours[date_obs.getFullYear()]) != 'undefined') {
chaine_couleur += tableau_couleurs_en_cours[date_obs.getFullYear()]+",";
}
}
}
if(afficher_marqueur && chaine_couleur != '') {
chaine_couleur = chaine_couleur.slice(0,chaine_couleur.length - 1);
var image = obtenirImagePourChaineCouleur(chaine_couleur);
tableau_marqueurs[i].setIcon(image);
if(!tableau_marqueurs[i].getVisible()) {
tableau_marqueurs[i].setVisible(true);
}
} else {
tableau_marqueurs[i].setVisible(false);
}
}
}
 
function obtenirImagePourChaineCouleur(chaine_couleur) {
chaine_couleur = encodeURIComponent(chaine_couleur);
var image = getUrlBaseJrest()+"OdsMarqueur/point?couleurs="+chaine_couleur;
return image;
}
 
function convertirDateObsVersJs(chaine_date) {
tableau_date = chaine_date.split('/');
date_obs = new Date();
date_obs.setDate(tableau_date[0]);
date_obs.setMonth(tableau_date[1]);
date_obs.setFullYear(tableau_date[2]);
return date_obs;
}
 
function dateEstDansIntervalle(t_obs) {
date_obs = convertirDateObsVersJs(t_obs);
dans_intervalle = false;
var dateDebutAnnee = new Date();
dateDebutAnnee.setDate(1);
dateDebutAnnee.setMonth(1);
dateDebutAnnee.setFullYear(date_obs.getFullYear());
var quantieme = (date_obs.getTime() - dateDebutAnnee.getTime()) / (24 * 3600 * 1000)+1;
if($('#slider_date').slider("value") >= quantieme) {
dans_intervalle = true;
}
return dans_intervalle;
}
function comparerDates(date_1, date_2){
diff = date_1.getTime()-date_2.getTime();
return (diff==0?diff:diff/Math.abs(diff));
}
 
function obtenirMarqueurPourStade(stade) {
iconeStade = '../images/marqueur_'+stade+'.png';
 
return iconeStade;
}
 
function formaterContenuFenetre(infos_obs) {
contenu_fenetre = '';
date_courante = new Date(annee,mois,jour);
for(i in infos_obs) {
t_obs = infos_obs[i].date;
if(dateEstDansIntervalle(t_obs)) {
nom_stade ='';
if(infos_obs[i].code_bbch != '') {
nom_stade = ' stade '+infos_obs[i].code_bbch;
}
contenu_fenetre += '<div class="fenetre_infos">';
contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].nom_scientifique+'</div>';
contenu_fenetre += '<div class="nom_sci">'+infos_obs[i].evenenement+nom_stade+'</div>';
contenu_fenetre += '<div class="date_obs"> Observ&eacute; le : '+infos_obs[i].date+' </div>';
contenu_fenetre += construireUrlProfilParticipant(infos_obs[i].participant);
contenu_fenetre += '</div><br />';
}
}
return contenu_fenetre;
}
 
function construireUrlProfilParticipant(id) {
return '<a class="lien_vers_profil" href="http://obs-saisons.fr/user/'+id+'"> Voir l\'auteur </a>';
}
 
$('#map_canvas').ready(function() {
initialiserCarte();
});
/trunk/applications/rendu/squelettes/cartes/observations_especes.tpl.html
New file
0,0 → 1,61
<!-- ODS_RENDU - DEBUT CARTE OBS -->
<div id="contenu_application">
<?= $script; ?>
<div id="conteneur_slider_date" class="criteres">
<div id="slider_date"> </div>
<div id="valeurs_date"> </div>
</div>
<span class="conteneur_bouton_sliders">
<input type="button" id="demarrer_slider" value="Demarrer" />
<input type="button" id="arreter_slider" value="Arreter" />
</span>
<hr class="separation_invisible" />
<div class="separation_en_deux">
<div class="conteneur_carte" >
<div id="map_canvas" style="width:100%; height:100%"></div>
</div>
<div class="droite">
<div class="criteres">
<div class="selecteur_critere" id="conteneur_selecteur_liste_annees">
<select id="selecteur_liste_annees" name="selecteur_liste_annees">
<option value="<?= date('Y') ?>" selected="selected"> <?= date('Y') ?> </option>
<?php for($i = date('Y') - 1 ; $i >= date('Y') - 5; $i--) { ?>
<option value="<?= $i; ?>"> <?= $i; ?> </option>
<?php } ?>
</select>
</div>
</div>
<span class="selecteur_critere" id="conteneur_selecteur_liste_types_especes">
<select id="selecteur_liste_types_especes">
<option value="0" class="espece_type_0" selected="selected"> type d'esp&egrave;ce </option>
<?php foreach($especes as $id_type_espece => $type_espece) : ?>
<option value="<?= $id_type_espece; ?>"> <?= $type_espece['nom']; ?> </option>
<?php endforeach; ?>
</select>
</span>
<span class="selecteur_critere" id="conteneur_selecteur_liste_evenements">
<select id="selecteur_evenements">
<option value="0" class="espece_type_0" selected="selected"> tous les ev&egrave;nements </option>
</select>
</span>
<hr class="separation_invisible" />
<div class="selecteur_critere droite" id="conteneur_selecteur_liste_especes">
</div>
</div>
</div>
<hr class="separation_invisible" />
<div class="criteres" id="lien_cette_recherche"><a href="<?= $url; ?>">Obtenir le widget de cette recherche </a></div>
</div>
<!-- ODS_RENDU - FIN CARTE OBS -->
/trunk/applications/rendu/squelettes/cartes/observations_annees.tpl.html
New file
0,0 → 1,50
<!-- ODS_RENDU - DEBUT CARTE OBS -->
<div id="contenu_application">
<?= $script; ?>
<div id="conteneur_slider_date" class="criteres">
<div id="slider_date"> </div>
<div id="valeurs_date"> </div>
</div>
<span class="conteneur_bouton_sliders">
<input type="button" id="demarrer_slider" value="Demarrer" />
<input type="button" id="arreter_slider" value="Arreter" />
</span>
<hr class="separation_invisible" />
<div class="separation_en_deux">
<div class="conteneur_carte" >
<div id="map_canvas" style="width:100%; height:100%"></div>
</div>
<div class="droite">
<span class="selecteur_critere" id="conteneur_selecteur_liste_types_especes">
<select id="selecteur_liste_types_especes">
<option value="0" class="espece_type_0" selected="selected"> type d'esp&egrave;ce </option>
<?php foreach($especes as $id_type_espece => $type_espece) : ?>
<option value="<?= $id_type_espece; ?>"> <?= $type_espece['nom']; ?> </option>
<?php endforeach; ?>
</select>
</span>
<span class="selecteur_critere" id="conteneur_selecteur_liste_especes">
</span>
<span class="selecteur_critere" id="conteneur_selecteur_liste_evenements">
<select id="selecteur_evenements">
<option value="0" class="espece_type_0" selected="selected"> tous les ev&egrave;nements </option>
</select>
</span>
<hr class="separation_invisible" />
<div class="selecteur_critere" id="conteneur_selecteur_liste_annees">
</div>
</div>
</div>
<hr class="separation_invisible" />
<div class="criteres" id="lien_cette_recherche"><a href="<?= $url; ?>">Obtenir le widget de cette recherche </a></div>
</div>
<!-- ODS_RENDU - FIN CARTE OBS -->
/trunk/applications/rendu/controleurs/Liens.php
127,7 → 127,6
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery-1.4.4.min.js"></script>';
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'jquery_ui/jquery-ui-1.8.9.custom.min.js"></script>';
$scripts .= '<script> var urlBaseJrest = "'.Config::get('url_jrest').'";</script>';
$scripts .= '<script type="text/javascript" src="'.self::getUrlScript().'rendu.js"></script>';
return $scripts;
/trunk/applications/rendu/controleurs/Rendu.php
29,6 → 29,8
private function afficherCarte() {
$carte = $this->getCarteDemandee();
$espece_dao = new EspeceDao();
$especes = $espece_dao->getListeEspecesParType();
60,15 → 62,27
}
$chaine_variables_script .= '</script> ';
$chaine_variables_script .= '<script type="text/javascript" src="'.Liens::getUrlScript().'rendu_'.$carte.'.js"></script>';
$donnees = array();
$donnees['url'] = Liens::getUrlBaseComplete().'rendu_widget.php';
$donnees['url'] = Liens::getUrlBaseComplete().'rendu_widget.php?carte='.$carte;
$donnees['script'] = $chaine_variables_script;
$donnees['especes'] = $especes;
$donnees['evenements'] = $evenements;
$formulaire = $this->getVue('cartes/observations',$donnees);
$formulaire = $this->getVue('cartes/observations_'.$carte,$donnees);
$this->setSortie(self::RENDU_CORPS, $formulaire);
}
private function getCarteDemandee() {
$carte = 'especes';
if(isset($_GET['carte'])) {
$carte = $_GET['carte'];
}
return $carte;
}
}