/trunk/applications/jrest/services/OdsExport.php |
---|
36,6 → 36,72 |
$this->envoyer($info,$this->type_mime); |
} |
public function getExportStationJson() { |
$donnees = $this->getExportStation(); |
$donnees_formatees = $this->formaterListeStationPourExportJson($donnees); |
$this->type_mime = 'application/json'; |
return $donnees_formatees; |
} |
public function getExportStation($start = null,$limit = null, $order_by = 'oo_date') { |
$requete_selection_stations = 'SELECT * FROM ods_stations '; |
$res_selection_stations = $this->executerRequete($requete_selection_stations); |
return $res_selection_stations; |
} |
public function formaterListeStationPourExportJson($tableau_stations_infos) { |
$gestionnaire_especes = new OdsEspece($this->config); |
$gestionnaire_communes = new OdsCommune($this->config); |
$gestionnaire_utilisateurs = new OdsUtilisateur($this->config); |
$especes = $gestionnaire_especes->getToutesEspeces(); |
$evenements = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_EVENEMENTS); |
$milieux = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_MILIEUX); |
$utilisateurs = $gestionnaire_utilisateurs->getListeUtilisateurAvecInfosComplementairesFormateeId(); |
$communes = $gestionnaire_communes->obtenirCommunesLieesAStationIndexeesCodeInsee(); |
$resultats_formates = array(); |
$stats = array('total' => count($tableau_stations_infos)); |
foreach($tableau_stations_infos as $stations_infos) { |
$commune = isset($communes[$stations_infos['os_ce_commune']]['oc_nom']) ? $communes[$stations_infos['os_ce_commune']]['oc_nom'] : ''; |
$id_station = $stations_infos['os_id_station']; |
$resultats_formates[$id_station]['nom'] = $stations_infos['os_nom']; |
$resultats_formates[$id_station]['code_commune'] = is_numeric($stations_infos['os_ce_commune']) ? substr($stations_infos['os_ce_commune'], 0, 2) : ''; |
$resultats_formates[$id_station]['nom_commune'] = $commune; |
$resultats_formates[$id_station]['latitude'] = $stations_infos['os_latitude']; |
$resultats_formates[$id_station]['longitude'] = $stations_infos['os_longitude']; |
$resultats_formates[$id_station]['altitude'] = $stations_infos['os_altitude']; |
$resultats_formates[$id_station]['type_participant'] = 'Particulier'; |
if(isset($utilisateurs[$stations_infos['os_ce_participant']])) { |
$participant = $utilisateurs[$stations_infos['os_ce_participant']]; |
$resultats_formates[$id_station]['participant']['id'] = $participant['uid']; |
$resultats_formates[$id_station]['participant']['nom'] = $participant['name']; |
$resultats_formates[$id_station]['type_participant'] = isset($participant['profile_type']) ? $participant['profile_type'] : 'Particulier'; |
} else { |
$resultats_formates[$id_station]['participant']['id'] = null; |
$resultats_formates[$id_station]['participant']['nom'] = 'Anonyme'; |
$resultats_formates[$id_station]['type_participant'] = 'Particulier'; |
} |
if(isset($stats[$resultats_formates[$id_station]['type_participant']])) { |
$stats[$resultats_formates[$id_station]['type_participant']]++; |
} else { |
$stats[$resultats_formates[$id_station]['type_participant']] = 1; |
} |
} |
$resultat = array('stats' => $stats, 'stations' => $resultats_formates); |
return $resultat; |
} |
public function getExportObservation($start = null,$limit = null, $order_by = 'oo_date') { |
$requete_selection_observations = 'SELECT * FROM ods_observations '. |
141,7 → 207,7 |
public function getExportObservationPlat() { |
$donnees = $this->getExportObservation(); |
$donnees_formatees = $this->formaterPourExportCSV($donnees); |
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees); |
return $donnees_formatees ; |
} |
149,7 → 215,7 |
public function getExportObservationJson() { |
$donnees = $this->getExportObservation(); |
$donnees_formatees = $this->formaterPourExportJson($donnees); |
$donnees_formatees = $this->formaterListeObservationPourExportJson($donnees); |
$this->type_mime = 'application/json'; |
156,7 → 222,7 |
return $donnees_formatees; |
} |
public function formaterPourExportJson($tableau_observations_infos) { |
public function formaterListeObservationPourExportJson($tableau_observations_infos) { |
$gestionnaire_especes = new OdsEspece($this->config); |
$gestionnaire_communes = new OdsCommune($this->config); |
211,13 → 277,13 |
public function getFichierExportObservationCsv() { |
$donnees = $this->getExportObservation(); |
$donnees_formatees = $this->formaterPourExportCSV($donnees); |
$donnees_formatees = $this->formaterListeObservationPourExportCSV($donnees); |
$chaine_csv = $this->convertirTableauAssocVersCSV($donnees_formatees); |
$this->envoyerFichier($chaine_csv); |
} |
public function formaterPourExportCSV($tableau_observations_infos) { |
public function formaterListeObservationPourExportCSV($tableau_observations_infos) { |
$gestionnaire_especes = new OdsEspece($this->config); |
$gestionnaire_communes = new OdsCommune($this->config); |
/trunk/applications/jrest/services/OdsCommune.php |
---|
228,5 → 228,27 |
return ''; |
} |
} |
public function obtenirCommunesLieesAStationIndexeesCodeInsee() { |
$communes = $this->obtenirCommunesLieesAStation(); |
$communes_assoc = array(); |
foreach($communes as $commune) { |
$communes_assoc[$commune['oc_code_insee']] = $commune; |
} |
return $communes_assoc; |
} |
private function obtenirCommunesLieesAStation() { |
$requete = 'SELECT * FROM ods_communes '. |
'INNER JOIN ods_stations '. |
'ON oc_code_insee = os_ce_commune '; |
$resultat_requete = $this->executerRequete($requete); |
return $resultat_requete; |
} |
} |
?> |
/trunk/applications/jrest/services/OdsUtilisateur.php |
---|
73,6 → 73,8 |
foreach ($liste_infos_complementaires_formatee[$utilisateur['uid']] as &$infos_complementaires_formatee_utilisateur) { |
$liste_utilisateurs_formatee[$utilisateur['uid']][$infos_complementaires_formatee_utilisateur['name']] = $infos_complementaires_formatee_utilisateur['value']; |
} |
} else { |
$liste_utilisateurs_formatee[$utilisateur['uid']] = $utilisateur; |
} |
} |
} |
/trunk/applications/stations/index.php |
---|
30,6 → 30,8 |
</div> |
</div> |
<div id="conteneur_nb_stations"> |
</div> |
<div class="conteneur_carte"> |
<div id="map_canvas" style="width:600px;height:600px"> |
/trunk/applications/stations/stations.js |
---|
5,7 → 5,7 |
var infowindow = new google.maps.InfoWindow(); |
function getUrlBaseJrest() { |
return 'http://162.38.234.9/obs_saisons/applications/jrest/'; |
return 'http://localhost/obs_saisons/applications/jrest/'; |
} |
function initialiserCarte() { |
37,11 → 37,13 |
$.get(getUrlBaseJrest()+'OdsExport/ExportStationJson/', function(data) { |
infos_stations = data; |
var infos_stations = data.stations; |
var stats = data.stats; |
for(i in infos_stations) { |
creerEtAjouterMarqueur(i, infos_stations[i]); |
} |
mettreAJourStats(stats); |
}); |
} |
53,24 → 55,31 |
return image; |
} |
function mettreAJourStats(stats) { |
for(i in stats) { |
if(i != 'total') { |
var id_legende = '#type_'+i.removeDiacritics().replace(' ','_'); |
var legende = $(id_legende).text(); |
$(id_legende).text(legende+' ('+stats[i]+')'); |
} else { |
$('#conteneur_nb_stations').text(stats[i]+' stations au total'); |
} |
} |
} |
function creerEtAjouterMarqueur(id_marqueur, infos_station) { |
latlng = new google.maps.LatLng(infos_station['latitude'],infos_station['longitude']); |
var chaine_couleur = tableau_couleurs[infos_station['type_participant']]; |
for(i in infos_stations.especes) { |
} |
var image = obtenirImagePourChaineCouleur(chaine_couleur); |
var nom_station = infos_station['nom']; |
var marqueur_station = new google.maps.Marker({ |
position: latlng, |
icon:image, |
title:infos_station.station, |
optimized: false |
title:nom_station, |
optimized: true |
}); |
google.maps.event.addListener(marqueur_station, 'click', function() { |
90,41 → 99,20 |
function formaterContenuFenetre(infos_station) { |
var contenu_fenetre = ""; |
contenu_fenetre = "<h3> "+infos_station.station+"</h3>"; |
contenu_fenetre += '<div class="infos_participant"> Participant : '+construireUrlProfilParticipant(infos_station.id_participant,infos_station.pseudo_participant)+'</div>'; |
contenu_fenetre = "<h3> "+infos_station['nom']+"</h3>"; |
contenu_fenetre += '<div class="infos_participant"> Participant : '+construireUrlProfilParticipant(infos_station['participant'])+'</div>'; |
contenu_fenetre += '<div class="infos_commune"> '; |
if(infos_station.nom_commune != null && infos_station.nom_commune != "") { |
contenu_fenetre += 'Commune : '+infos_station.nom_commune; |
if(infos_station['nom_commune'] != null && infos_station['nom_commune'] != "") { |
contenu_fenetre += 'Commune : '+infos_station['nom_commune']; |
} |
if(infos_station.code_commune != null && infos_station.code_commune != "") { |
contenu_fenetre += ' ('+infos_station.code_commune+')'; |
if(infos_station['code_commune'] != null && infos_station['code_commune'] != "") { |
contenu_fenetre += ' ('+infos_station['code_commune']+')'; |
} |
contenu_fenetre += '</div>'; |
contenu_fenetre += '<div class="infos_altitude"> Altitude : '+infos_station['altitude']+' m</div>'; |
contenu_fenetre += '<div class="infos_altitude"> Altitude : '+infos_station.altitude+' m</div>'; |
console.log(infos_station.especes); |
contenu_fenetre_espece = ''; |
if(infos_station.especes != null) { |
for(var i in infos_station.especes) { |
contenu_fenetre_espece += '<li>'+infos_station.especes[i].nom_vernaculaire+'</li>'; |
} |
} |
if(contenu_fenetre_espece != '') { |
contenu_fenetre += '<div class="infos_especes"> Especes observées :'; |
contenu_fenetre += '<ul>'+contenu_fenetre_espece+'</ul>'; |
contenu_fenetre += '</div>'; |
} |
return contenu_fenetre; |
} |
134,7 → 122,7 |
for(i in tableau_couleurs) { |
chaine_legende += '<span class="legende" style="background-color:'+tableau_couleurs[i]+'"></span>'; |
chaine_legende += '<label for="type_'+i+'">'+i+'</label><br />'; |
chaine_legende += '<label id="type_'+i.removeDiacritics().replace(' ','_')+'">'+i+'</label><br />'; |
} |
chaine_legende += '</div>'; |
150,14 → 138,18 |
return image; |
} |
function construireUrlProfilParticipant(id, pseudo) { |
function construireUrlProfilParticipant(participant) { |
if(id == null && pseudo == null) { |
if(participant['id'] == null && participant['nom'] == null) { |
return "anonyme"; |
} |
if(pseudo == null || pseudo == "null") { |
pseudo = id; |
var id = participant['id']; |
if(participant['nom'] == null || participant['nom'] == "null") { |
var pseudo = participant['id']; |
} else { |
var pseudo = participant['nom']; |
} |
return '<a class="lien_vers_profil" href="http://obs-saisons.fr/user/'+id+'"> '+pseudo+' </a>'; |
166,4 → 158,28 |
$('#map_canvas').ready(function() { |
initialiserCarte(); |
genererLegende(); |
}); |
}); |
String.prototype.removeDiacritics = function() { |
var diacritics = [ |
[/[\300-\306]/g, 'A'], |
[/[\340-\346]/g, 'a'], |
[/[\310-\313]/g, 'E'], |
[/[\350-\353]/g, 'e'], |
[/[\314-\317]/g, 'I'], |
[/[\354-\357]/g, 'i'], |
[/[\322-\330]/g, 'O'], |
[/[\362-\370]/g, 'o'], |
[/[\331-\334]/g, 'U'], |
[/[\371-\374]/g, 'u'], |
[/[\321]/g, 'N'], |
[/[\361]/g, 'n'], |
[/[\307]/g, 'C'], |
[/[\347]/g, 'c'], |
]; |
var s = this; |
for (var i = 0; i < diacritics.length; i++) { |
s = s.replace(diacritics[i][0], diacritics[i][1]); |
} |
return s; |
} |