Blame | Last modification | View Log | RSS feed
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 = '1';
function getUrlBaseJrest() {
url_page_courante = document.URL;
if(url_page_courante.indexOf('http://www.') != -1) {
return urlBaseJrest;
} else {
return urlBaseJrest.replace('http://www.','http://');
}
}
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()
mois = date.getMonth() + 1;
}
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 initialiserSliderDates() {
dates = new Array("jan","fev","mar","avr","mai","jun","jui","aou","sep","oct","nov","dec");
$("#slider_date").slider({
min: 1,
max: 13,
value: mois
});
taille_criteres = Math.round($("#slider_date").width()/(dates.length));
valeurs_slider = '<table id="table_dates"><tbody><tr>';
for (i in dates) {
valeurs_slider += '<td class="conteneur_date">'+dates[i]+'</td>';
}
valeurs_slider += '</tr></tbody></table>';
$("conteneur_date").css(".conteneur_date{ width:"+taille_criteres+"px;}");
$("#valeurs_date").html(valeurs_slider);
$("#slider_date").bind("slide", function(event, ui) {
mois = $("#slider_date").slider("value");
obtenirObservations();
return true;
});
$(window).bind("resize", resizeWindow);
function resizeWindow( e ) {
taille_criteres = Math.round($("#slider_date").width()/(dates.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];
chaine_elements_liste = '';
chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> toutes les espèces </option>';
for(i in $elements_liste) {
chaine_elements_liste += '<option value='+i+'>'+$elements_liste[i]+'</option>';
}
$('#selecteur_especes').html(chaine_elements_liste);
}
function initialiserListeEspeces() {
$('#selecteur_especes').change(function() {
espece = $('select#selecteur_especes option:selected').val();
modifierTableauEvenements();
obtenirObservations();
});
}
function modifierTableauEvenements() {
id_espece = $('select#selecteur_especes option:selected').val();
$elements_liste = tableau_evenements_especes[id_espece];
$elements_liste = $elements_liste.split(',');
chaine_elements_liste = '';
chaine_elements_liste = '<option value="0" class="espece_type_0" selected="selected"> tous les evè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();
});
}
$('#slider_date').ready(function() {
initialiserSliderDates();
initialiserListeTypesEspeces();
initialiserListeEspeces();
initialiserListeEvenements();
initialiserListeAnnees();
obtenirObservations();
});
/**
************************************************************************************************
************************************************************************************************
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:""
});
}
function obtenirObservations() {
requete = '?annee='+annee+'&mois='+mois;
if(type_espece != '0' && espece == '0') {
requete += '&type_espece='+type_espece;
}
if(espece != '0') {
requete += '&espece='+espece;
}
if(evenement != '0') {
requete += '&evenement='+evenement;
}
$.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]);
}
});
}
function creerEtAjouterMarqueur(id_marqueur, infos_obs) {
latlng = new google.maps.LatLng(infos_obs['latitude'],infos_obs['longitude']);
tableau_marqueurs[id_marqueur] = new google.maps.Marker({
position: latlng,
title:infos_obs.evenenement
});
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 formaterContenuFenetre(infos_obs) {
contenu_fenetre = '';
for(i in infos_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é le : '+infos_obs[i].date+' </div>';
contenu_fenetre += '</div><br />';
}
return contenu_fenetre;
}
$('#map_canvas').ready(function() {
initialiserCarte();
});