Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1121 → Rev 1122

/branches/v1.5-cisaille/jrest/services/CelWidgetMapPoint.php
141,24 → 141,26
public function getTout($params) {
 
$emplacements = null;
$requete = 'SELECT DISTINCT location AS nom, '.
"IF ((coord_x != '000null' AND coord_x != '' ".
" AND coord_y != '000null' AND coord_y != ''), ".
$coordonnees_nulles = "coord_x = '000null' OR coord_x = '' ".
" OR coord_y = '000null' OR coord_y = ''";
$coordonnees_non_nulles = "coord_x != '000null' AND coord_x != '' ".
" AND coord_y != '000null' AND coord_y != ''";
$coordonnees_non_nulles_pas_sensible = "(".$coordonnees_non_nulles." AND mots_cles_texte NOT LIKE '%sensible%')";
$requete = 'SELECT DISTINCT *, location AS nom, '.
"IF (".$coordonnees_non_nulles_pas_sensible.", ".
"'stations', ".
"'communes' ".
") as type_emplacement, ".
"IF ((coord_x != '000null' AND coord_x != '' ".
" AND coord_y != '000null' AND coord_y != ''), ".
"IF (".$coordonnees_non_nulles_pas_sensible.", ".
"coord_x, ".
"wgs84_latitude ".
") as lat, ".
"IF ((coord_x != '000null' AND coord_x != '' ".
" AND coord_y != '000null' AND coord_y != ''), ".
"IF (".$coordonnees_non_nulles_pas_sensible.", ".
"coord_y, ".
"wgs84_longitude ".
") as lng, ".
"IF ((coord_x != '000null' AND coord_x != '' ".
" AND coord_y != '000null' AND coord_y != ''), ".
"IF (".$coordonnees_non_nulles_pas_sensible.", ".
'CONCAT("'.self::MARQUEUR_STATION.':",coord_x,"|",coord_y), '.
'CONCAT("'.self::MARQUEUR_COMMUNE.':",wgs84_latitude,"|",wgs84_longitude) '.
") as id ".
172,8 → 174,8
")".
" OR ".
" ( ".
"(".($this->construireWhereRectangleCommuneOR() != null ? $this->construireWhereRectangleCommuneOR().' Or ' : '').
" mots_cles_texte LIKE '%sensible%' ".
"(".($this->construireWhereRectangleCommuneOR() != null ? $this->construireWhereRectangleCommuneOR().' AND ' : '').
"(".$coordonnees_nulles.")".
")".
" ) ".
") ".
185,13 → 187,19
$this->construireWhereDate().
$this->construireWhereCommentaire().
$this->construireWhereProjet().
$this->construireWhereTag();
 
$this->construireWhereTag().' LIMIT 0,20000';
$resultats_emplacements = $this->executerRequete($requete);
$emplacements = $this->traiterEmplacements($resultats_emplacements, $this->compterObservations($params));
 
return $emplacements;
}
private function afficherRequeteFormatee($requete) {
$requete = str_replace(')',')<br />',$requete);
$requete = str_replace('(',' <br /> (',$requete);
echo '<pre>'.$requete.'</pre>';
exit;
}
 
private $nb_obs = 0;
 
243,7 → 251,8
// laisser la classe cartoGroupage compter les élements simplifie le comptage
// et permet de ne pas reparser le tableau pour compter les différents éléments
$nb_elements = CartoGroupage::getNbElements();
 
$marqueurs['stats']['coordmax'] = CartoGroupage::getBornes();
$marqueurs['stats']['stations'] = $nb_elements['stations'];
$marqueurs['stats']['communes'] = $nb_elements['communes'];
$marqueurs['stats']['observations'] = (int)$nb_total_observation;
384,7 → 393,7
' LEFT JOIN locations AS l '.
" ON (l.name = i.location AND l.code = i.id_location) ".
"WHERE transmission = '1' ".
$this->construireWhereCoordonnees().
((!$this->etreNull($this->parametres['commune'])) ? $this->construireWhereCommuneSansCoordonneesAvecSensibles() : $this->construireWhereCoordonneesSansSensibles()).
$this->construireWhereUtilisateur().
$this->construireWhereNumTaxon().
$this->construireWhereNomTaxon().
488,8 → 497,10
private function ajouterImagesAuxObs($observations) {
$images = $this->chargerImages(array_keys($observations['observations']));
foreach ($observations['observations'] as $id => $infos) {
$infos['images'] = $images[$id];
$observations['observations'][$id] = $infos;
if(isset($images[$id])) {
$infos['images'] = $images[$id];
$observations['observations'][$id] = $infos;
}
}
return $observations;
}
586,6 → 597,25
}
return $sql;
}
private function construireWhereCoordonneesSansSensibles() {
$sql = '(';
// Récupération des coordonnées depuis l'id station
extract($this->decomposerParametreStation());
if (isset($type)) {
if ($type == self::MARQUEUR_COMMUNE) {
$lat = $this->proteger($lat);
$lng = $this->proteger($lng);
$sql = " AND (ROUND(wgs84_latitude,5) = ROUND($lat,5) AND ROUND(wgs84_longitude,5) = ROUND($lng,5)) ";
} else if ($type == self::MARQUEUR_STATION) {
$lat = $this->proteger($lat);
$lng = $this->proteger($lng);
$sql = " AND (coord_x = $lat AND coord_y = $lng) ";
}
}
$sql .= ' AND mots_cles_texte NOT LIKE %sensible%';
return $sql;
}
 
private function construireWhereCommentaire() {
$sql = '';
920,6 → 950,24
return $sql;
}
 
private function construireWhereCommuneSansCoordonneesAvecSensibles() {
$sql = '';
// Récupération des coordonnées depuis l'id station
extract($this->parametres);
if (!$this->etreNull($commune)) {
$commune = $this->proteger($commune);
$sql = " AND location LIKE $commune ";
$sql .= " AND (
(
(coord_x = '000null' OR coord_x = '') ".
" AND (coord_y = '000null' OR coord_y = '')".
')'.
' OR mots_cles_texte LIKE "%sensible%"'.
') ';
}
return $sql;
}
 
private function construireWhereUtilisateur() {
$sql = '';