Rev 299 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
var map = null;var ctaLayer = null;var tableau_marqueurs = new Array();var infowindow = new google.maps.InfoWindow();var infos_observations = new Array();var nb_observations_par_espece = {};var nb_observations_par_annee = {};var type_espece = '0';var espece = '0';var evenement = '0';var annee = '0';var mois = '0';var jour = '0';var departement = '0';var region = '0';var valeur_slider_defaut = '0';/****/Date.prototype.getDOY = function() {var onejan = new Date(this.getFullYear(),0,1);return Math.ceil((this - onejan) / 86400000);}var tableau_couleurs = new Array("#ff0000", "#733d00", "#f2ffbf", "#00ccff", "#2e1a33", "#00ff66", "#ffe1bf", "#ff8800","#005266", "#be00cc", "#592d2d", "#ffcc00", "#336641", "#264599", "#80206c", "#bf7960","#665c33", "#bf0000", "#80a2ff", "#ff80c4", "#806c60", "#ccff00", "#00ffcc", "#090040","#bf004d", "#2a3326", "#668000", "#608079", "#3600cc", "#8c696e");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(annee == date.getFullYear()) {mois = date.getMonth();valeur_slider_defaut = date.getDOY();} else {mois = 11;date.setYear(annee);date.setMonth(mois);date.setDate(31);valeur_slider_defaut = date.getDOY();}}if(vars['departement'] != null) {departement = vars['departement'];$('#selecteur_liste_departement').val(annee);} else {if(vars['region'] != null) {region = vars['region'];$('#selecteur_liste_region').val(annee);}}if(vars['cacher_criteres'] != null && vars['cacher_criteres'] == '1') {$(".cacher_widget").hide();}}function obtenirCodeWidget() {var UrlBase = url_widget;UrlBase += '?';if(type_espece != '0') UrlBase += "type_espece="+type_espece;//TODO: décider si l'on peut garder l'espece et si le cas échéant on la cacheif(espece != '0') UrlBase += "&espece="+espece;if(evenement != '0') UrlBase += "&evenement="+evenement;if(annee != '0') UrlBase += "&annee="+annee;if(departement != '0') UrlBase += "&departement="+departement;if(region != '0') UrlBase += "®ion="+region;if(mois != '0') UrlBase += "&mois="+mois;UrlBase += "&cacher_criteres=1";UrlBase = UrlBase.replace('?&','?');code_widget = '<iframe src="'+UrlBase+'" width="735px" height="650px"><p>Votre navigateur ne supporte pas les iframes.</p></iframe>'return code_widget;}String.prototype.hashCode = function() {var hash = 0, i, chr;if (this.length === 0) return hash;for (i = 0; i < this.length; i++) {chr = this.charCodeAt(i);hash = ((hash << 5) - hash) + chr;hash |= 0; // Convert to 32bit integer}return hash;};function renverserTableauEtHashcoderIndex(trans) {var key, tmp_ar = {};for (key in trans){if (trans.hasOwnProperty(key)){tmp_ar[trans[key].hashCode()] = key;}}return tmp_ar;}function trierTableau(tableau) {if(!tableau) {return;}var tableau_trie = tableau.slice(0);tableau_trie.sort(function(a,b){return a.localeCompare(b);});return tableau_trie;}$('#lien_cette_recherche').ready(function() {$('#lien_cette_recherche').click(function() {window.alert(obtenirCodeWidget());return false;});});function selectionnerParametresDynamiquesParDefaut() {if($('.conteneur_selecteur_liste_annees').is(':visible')) {var annee_courante = (new Date()).getFullYear();$('#annee_numero_'+annee_courante).attr( "checked", true );}premier_chargement = false;}var premier_chargement = true;$(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 initialiserSliderDates() {date_min = 1;date_max = 365;$("#slider_date").slider({min: date_min,max: date_max,value: valeur_slider_defaut});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 initialiserListeRegion() {$('#selecteur_liste_region').change(function() {region = $('select#selecteur_liste_region option:selected').val();obtenirObservations();});}function initialiserListeDepartement() {$('#selecteur_liste_departement').change(function() {departement = $('select#selecteur_liste_departement option:selected').val();obtenirObservations();});}function initialiserListeTypesEspeces() {$('#selecteur_liste_types_especes').change(function() {type_espece = $('select#selecteur_liste_types_especes option:selected').val();modifierTableauEspeces();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() {type_espece = 0;$('select#selecteur_liste_types_especes').val("0");modifierTableauEspeces();obtenirObservations();}$('#slider_date').ready(function() {initialiserSliderDates();initialiserBoutonsSlider();initialiserListeTypesEspeces();initialiserListeEspeces();initialiserListeEvenements();initialiserListeAnnees();initialiserValeursParDefaut();initialiserListeRegion();initialiserListeDepartement()});/**************************************************************************************************************************************************************************************************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.ROADMAP,mapTypeControlOptions: {mapTypeIds: ['OSM',google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.HYBRID,google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.TERRAIN]}};var osmMapType = new google.maps.ImageMapType({getTileUrl: function(coord, zoom) {return "http://tile.openstreetmap.org/" +zoom + "/" + coord.x + "/" + coord.y + ".png";},tileSize: new google.maps.Size(256, 256),isPng: true,alt: "OpenStreetMap",name: "OSM",maxZoom: 19});map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);// Ajout de la couche OSM à la cartemap.mapTypes.set('OSM', osmMapType);marker = new google.maps.Marker({position: latlng,title:""});chargerLimitesCommunales();$('.lien_vers_profil').live('click', function(event) {event.preventDefault();window.open($(this).attr('href'));return false;});}function chargerLimitesCommunales() {if (urlsLimitesCommunales != null) {for (urlId in urlsLimitesCommunales) {var url = urlsLimitesCommunales[urlId];ctaLayer = new google.maps.KmlLayer(url, {preserveViewport: false});ctaLayer.setMap(map);}}}var obs_xhr = null;function obtenirObservations() {if(obs_xhr != null) {viderMarqueurs();console.log('annulation de la xhr');obs_xhr.abort();}annee = getAnneeSelectionnee();requete = '?annee='+annee;if(type_espece != '0') {requete += '&type_espece='+type_espece;}var espece = getEspeceSelectionnee();if(espece != '0') {requete += '&espece='+espece;}if(evenement != '0') {requete += '&evenement='+evenement;}if(departement != '0') {requete += '&departement='+departement;}if(region != '0') {requete += '®ion='+region;}$.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) {obs_xhr = null;infos_observations = data;nb_observations_par_espece = {};nb_observations_par_annee = {};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]+",";}if(!nb_observations_par_espece[observation.id_espece]) {nb_observations_par_espece[observation.id_espece] = 0;}nb_observations_par_espece[observation.id_espece]++;var annee_obs = observation.date.split('/')[2];if(!nb_observations_par_annee[annee_obs]) {nb_observations_par_annee[annee_obs] = 0;}nb_observations_par_annee[annee_obs]++;}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.setContent(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 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é 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();});