Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 1071 → Rev 1072

/trunk/services/modules/0.1/osm/ZoneAdmin.php
32,6 → 32,7
 
private $lat = null;
private $lon = null;
private $zone = null;
 
public function __construct(Bdd $bdd) {
$this->bdd = $bdd;
42,6 → 43,7
$this->verifierParametres();
$this->lat = $this->parametres['lat'];
$this->lon = $this->parametres['lon'];
$this->zone = isset($this->parametres['zone']) ? $this->parametres['zone'] : null;
 
$zoneTrouveeInfos = $this->localiserPointLatLon();
$corps = $this->formaterResultats($zoneTrouveeInfos);
92,6 → 94,7
 
private function localiserPointLatLon() {
$osmIdsInClause = $this->getOsmIdsDesCentresAProximites();
$zone = isset($this->zone) ? $this->bdd->proteger($this->zone) : null;
 
$requete = 'SELECT id_zone_geo AS codeZoneGeo, intitule, code_iso_3166_1 AS codeIso31661, '.
'code_iso_3166_2 AS codeIso31662, code_insee AS codeInsee, code_nuts as codeNuts, '.
98,6 → 101,7
'nom_en AS nomEn, nom_es AS nomEs, wikipedia, niveau '.
'FROM osm_zones_admin '.
"WHERE st_within(GEOMFROMTEXT('POINT($this->lon $this->lat)'), polygone) = 1 ".
(isset($zone) ? "AND zone = $zone " : '').
"AND osm_id IN ($osmIdsInClause) ".
' -- '.__FILE__.' : '.__LINE__;
$resultat = $this->bdd->recupererTous($requete);
126,10 → 130,12
}
 
private function construireRequeteUnion() {
$zone = isset($this->zone) ? $this->bdd->proteger($this->zone) : null;
$requeteTpl = 'SELECT osm_id, '.
"(($this->lon - centre_lng) * ($this->lon -centre_lng) + ($this->lat - centre_lat) * ($this->lat - centre_lat)) AS distance ".
'FROM osm_zones_admin '.
'WHERE niveau = %s '.
(isset($zone) ? "AND zone = $zone " : '').
'ORDER BY distance ASC '.
"LIMIT %s ";
$niveaux = array(2,3,4,5,6,7,8);