Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3420 → Rev 3422

/trunk/jrest/services/CoordSearch.php
34,7 → 34,10
$informations_zones = $recherche_zones_geo->obtenirInfosPourCoordonnees($coordonnees);
$header = 'Content-Type: application/json; charset=UTF-8';
$retour = json_encode($informations_zones);
} elseif ($this->estUneRequeteGeocodingCodeInseeCommune($params)) {
$informations_coord = $recherche_zones_geo->obtenirInfosPourCodeInseeCommune($params['code']);
$header = 'Content-Type: application/json; charset=UTF-8';
$retour = json_encode($informations_coord);
} elseif ($this->estUneRequeteGeocoding($params)) {
$informations_coord = $recherche_zones_geo->obtenirInfosPourNom($params['zone'], $params['pays'], $params['code']);
$header = 'Content-Type: application/json; charset=UTF-8';
49,7 → 52,7
} else {
$header = 'HTTP/1.0 400 Bad Request';
$retour = 'zone ou Coordonnées non spécifiées';
$retour = 'zone ou Coordonnées ou code INSEE non spécifié.e';
}
header($header);
79,7 → 82,11
return ($params['zone'] != '');
}
 
protected function estUneRequeteGeocodingCodeInseeCommune($params) {
return ($params['code'] != '' && 5 === strlen($params['code']));
}
 
protected function estUneRequeteGeocodingGroupe($params) {
return ($params['groupe_zones'] != '');
}
}
}
/trunk/jrest/bibliotheque/RechercheInfosZoneGeo.php
102,6 → 102,14
return $retour;
}
 
public function obtenirInfosPourCodeInseeCommune($code_insee) {
$code_insee = trim($code_insee);
 
$retour = $this->chercherCentroideCommuneInseeBdd($code_insee);
 
return $retour;
}
 
/**
* Renvoie tous les codes de zones pour le groupe $groupe
*/
352,7 → 360,36
}
return $retour;
}
 
/**
* Renvoie les infos d'une commune, incluant les coordonnées du centroïde,
* en fonction du code insee (plus fiable)
*/
protected function chercherCentroideCommuneInseeBdd($code_insee) {
$code_insee = trim($code_insee);
$commune_coordonnees = array();
if ($code_insee != null) {
$requete = 'SELECT `wgs84_latitude`, `wgs84_longitude`, `nom` FROM `cel_zones_geo` '
. 'WHERE `code`=' .Cel::db()->proteger($code_insee)
. ' -- '.__FILE__.':'.__LINE__;
 
$commune_coordonnees = Cel::db()->requeter($requete);
}
 
$retour = false;
if ($commune_coordonnees && is_array($commune_coordonnees) && count($commune_coordonnees) > 0) {
$retour = array(
'lat' => (float) $commune_coordonnees[0]['wgs84_latitude'],
'lng' => (float) $commune_coordonnees[0]['wgs84_longitude'],
'nom' => $commune_coordonnees[0]['nom'],
'code_zone' => $code_insee,
'code_pays' => 'FR',
'type' => 'france'
);
}
 
return $retour;
}
public function obtenirListeInfosPourNom($lieu) {
$lieux_retour = $this->obtenirListeCommunes($lieu);
514,4 → 551,4
$lieu = str_replace(['+', ' ', '-'], '_', $lieu);
return $lieu;
}
}
}