73,18 → 73,28 |
} |
|
public function obtenirInfosPourNoms($nom, $pays, $code) { |
|
$nom = trim($nom); |
$pays = trim($pays); |
$code = trim($code); |
|
$retour = false; |
// Dans le cas de la france on possède directement une table |
// avec les centroïdes des communes |
if($pays == 'FR' || $code != "*") { |
if($pays == 'FR' || $code != "") { |
$retour = $this->chercherCentroideCommuneBdd($nom, $code); |
} else { |
// Sinon méthode habituelle, un test simple suivi d'un test plus complexe |
// On cherche donc d'abord en France |
if($pays == "") { |
$retour = $this->chercherCentroideCommuneBdd($nom, $code); |
if(!$retour) { |
$retour = $this->effectuerRequeteGeocodingMondiale($nom); |
} |
|
// Si on ne trouve rien on teste dans le monde entier |
if($retour == false) { |
$retour = $this->effectuerRequeteGeocodingMondiale($nom, '2,3,4,5,6,7,8', 1, $pays); |
} |
} |
|
return $retour; |
} |
192,8 → 202,10 |
return $retour; |
} |
|
private function effectuerRequeteGeocodingMondiale($nom, $niveau = '2,3,4,5,6,7,8', $limite = 1) { |
$url = $this->config['cel']['url_service_geo_mondial'].'?masque='.urlencode($nom).'&niveau='.$niveau.'&limite='.$limite; |
private function effectuerRequeteGeocodingMondiale($nom, $niveau = '2,3,4,5,6,7,8', $limite = 1, $pays = null) { |
$url_sans_pays = $this->config['cel']['url_service_geo_mondial'].'?masque='.urlencode($nom).'&niveau='.$niveau.'&limite='.$limite; |
$url = $url_sans_pays.(!empty($pays) ? '&pays='.urlencode($pays) : ''); |
|
$res = @json_decode(file_get_contents($url), true); |
|
$retour = array(); |
211,7 → 223,15 |
$retour[] = $this->formaterLigneResultat($param); |
} |
} |
} else if($limite == 1) { |
// Dans le cas où un pays a été demandé mais pas de résultat, on rentente la recherche sans |
// préciser de pays |
$res = @json_decode(file_get_contents($url_sans_pays), true); |
|
if(!empty($res)) { |
$retour = $this->traiterLigneResultatRequeteGeocodingMondiale($res); |
} |
} |
|
return $retour; |
} |