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 = ''; |