Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 727 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
727 alex 1
<?php
2
 
3
final class DonneesMoissonnage extends SourceDonnees {
4
 
5
	public function __construct($limitesCarte, $taxon, $source) {
6
		parent::__construct($limitesCarte, $taxon, $source);
7
	}
8
 
9
	final public function recupererStations() {
10
		$bdd = new Bdd();
11
		$bdd->requeter("USE ".Config::get('bdd_nom'));
12
		$requete =
13
		"SELECT Floor(lieu_station_latitude*10)/10 AS lat, Floor(lieu_station_longitude*10)/10 AS lng, ".
14
		"COUNT(guid) AS nb_observations FROM {$this->source}_tapir WHERE ".$this->construireWhereTaxon()." ".
15
		"AND lieu_station_longitude BETWEEN ".$this->limitesCarte['ouest']." AND ".$this->limitesCarte['est']." ".
16
		"AND lieu_station_latitude BETWEEN ".$this->limitesCarte['sud']." AND ".$this->limitesCarte['nord']." ".
17
		"GROUP BY Floor(lieu_station_latitude*10)/10, Floor(lieu_station_longitude*10)/10 ".
18
		"ORDER BY lat DESC, lng ASC";
19
		return $bdd->recupererTous($requete);
20
	}
21
 
22
	final protected function construireWhereTaxon() {
23
		$nomRang = $this->obtenirNomRang();
24
		$criteres = array();
25
		$criteres[] = "nom_scientifique_complet LIKE ".$this->bdd->proteger($this->taxon['nom_sci']."%");
26
		if ($nomRang == 'espece') {
27
			$sousTaxons = $this->recupererSynonymesEtSousEspeces();
28
			foreach ($sousTaxons as $sousTaxon) {
29
				$criteres[] = "nom_scientifique_complet LIKE ".$this->bdd->proteger($sousTaxon['nom_sci']."%");
30
			}
31
		} elseif ($nomRang == 'famille') {
32
			$sousTaxons = $this->recupererGenres();
33
			foreach ($sousTaxons as $sousTaxon) {
34
				$criteres[] = "nom_scientifique_complet LIKE ".$this->bdd->proteger($sousTaxon['nom_sci']."%");
35
			}
36
		}
37
		return "(".implode(' OR ',array_unique($criteres)).")";
38
	}
39
 
40
}
41
 
42
?>