3,6 → 3,8 |
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'; |
15,14 → 17,14 |
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( |
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", |
51,12 → 53,12 |
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(); |
63,9 → 65,9 |
} |
espece = vars['espece']; |
$('#selecteur_especes').val(espece); |
|
|
} |
|
|
if(vars['evenement'] != null) { |
if(espece != 0) { |
modifierTableauEvenement() |
73,7 → 75,7 |
evenement = vars['evenement']; |
$('#selecteur_evenements').val(evenement); |
} |
|
|
if(vars['annee'] != null) { |
annee = vars['annee']; |
$('#selecteur_liste_annees').val(annee); |
82,7 → 84,7 |
annee = date.getFullYear(); |
$('#selecteur_liste_annees').val(annee); |
} |
|
|
if(vars['mois'] != null) { |
mois = vars['mois']; |
} else { |
98,7 → 100,7 |
valeur_slider_defaut = date.getDOY(); |
} |
} |
|
|
if(vars['departement'] != null) { |
departement = vars['departement']; |
$('#selecteur_liste_departement').val(annee); |
108,7 → 110,7 |
$('#selecteur_liste_region').val(annee); |
} |
} |
|
|
if(vars['cacher_criteres'] != null && vars['cacher_criteres'] == '1') { |
$(".cacher_widget").hide(); |
} |
115,7 → 117,7 |
} |
|
function obtenirCodeWidget() { |
|
|
var UrlBase = url_widget; |
UrlBase += '?'; |
if(type_espece != '0') UrlBase += "type_espece="+type_espece; |
127,14 → 129,52 |
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()); |
142,11 → 182,20 |
}); |
}); |
|
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(); |
}); |
|
/** |
/** |
************************************************************************************************ |
************************************************************************************************ |
|
154,48 → 203,48 |
|
************************************************************************************************ |
************************************************************************************************ |
**/ |
**/ |
|
function setDateSlider() { |
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(); |
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)); |
204,28 → 253,28 |
} |
|
function initialiserListeRegion() { |
|
|
$('#selecteur_liste_region').change(function() { |
region = $('select#selecteur_liste_region option:selected').val(); |
obtenirObservations(); |
obtenirObservations(); |
}); |
} |
|
function initialiserListeDepartement() { |
|
|
$('#selecteur_liste_departement').change(function() { |
departement = $('select#selecteur_liste_departement option:selected').val(); |
obtenirObservations(); |
obtenirObservations(); |
}); |
} |
|
|
function initialiserListeTypesEspeces() { |
|
|
$('#selecteur_liste_types_especes').change(function() { |
type_espece = $('select#selecteur_liste_types_especes option:selected').val(); |
modifierTableauEspeces(); |
obtenirObservations(); |
obtenirObservations(); |
}); |
} |
|
242,18 → 291,18 |
} |
|
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); |
260,12 → 309,12 |
$('#demarrer_slider').removeAttr('disabled'); |
} |
}); |
|
|
} |
|
function initialiserValeursParDefaut() { |
type_espece = 2; |
$('select#selecteur_liste_types_especes').val("2"); |
type_espece = 0; |
$('select#selecteur_liste_types_especes').val("0"); |
modifierTableauEspeces(); |
obtenirObservations(); |
} |
283,35 → 332,35 |
}); |
|
|
/** |
/** |
************************************************************************************************ |
************************************************************************************************ |
|
|
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, |
mapTypeId: google.maps.MapTypeId.ROADMAP, |
mapTypeControlOptions: { |
mapTypeIds: ['OSM', |
google.maps.MapTypeId.ROADMAP, |
google.maps.MapTypeId.HYBRID, |
google.maps.MapTypeId.SATELLITE, |
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/" + |
328,14 → 377,14 |
myOptions); |
// Ajout de la couche OSM à la carte |
map.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')); |
345,7 → 394,7 |
|
function chargerLimitesCommunales() { |
if (urlsLimitesCommunales != null) { |
for (urlId in urlsLimitesCommunales) { |
for (urlId in urlsLimitesCommunales) { |
var url = urlsLimitesCommunales[urlId]; |
ctaLayer = new google.maps.KmlLayer(url, {preserveViewport: false}); |
ctaLayer.setMap(map); |
353,63 → 402,88 |
} |
} |
|
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' && espece == '0') { |
requete += '&type_espece='+type_espece; |
|
if(type_espece != '0') { |
requete += '&type_espece='+type_espece; |
} |
|
if(espece != '0') { |
requete += '&espece='+espece; |
|
var espece = getEspeceSelectionnee(); |
if(espece != '0') { |
requete += '&espece='+espece; |
} |
|
if(evenement != '0') { |
|
if(evenement != '0') { |
requete += '&evenement='+evenement; |
} |
|
if(departement != '0') { |
|
if(departement != '0') { |
requete += '&departement='+departement; |
} |
|
if(region != '0') { |
|
if(region != '0') { |
requete += '®ion='+region; |
} |
|
$.get(getUrlBaseJrest()+'OdsExport/ExportObservationJson/'+requete, function(data) { |
|
|
$.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') { |
|
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); |
|
var image = obtenirImagePourChaineCouleur(chaine_couleur); |
|
tableau_marqueurs[id_marqueur] = new google.maps.Marker({ |
position: latlng, |
title:infos_obs.evenenement, |
423,64 → 497,64 |
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); |
|
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)); |
487,7 → 561,7 |
} |
|
function obtenirMarqueurPourStade(stade) { |
|
|
iconeStade = '../images/marqueur_'+stade+'.png'; |
|
return iconeStade; |
494,20 → 568,20 |
} |
|
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>'; |
516,7 → 590,7 |
contenu_fenetre += '</div><br />'; |
} |
} |
|
|
return contenu_fenetre; |
} |
|
523,8 → 597,8 |
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(); |
}); |
}); |