Subversion Repositories eFlore/Applications.cel

Rev

Rev 2557 | Rev 2565 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2557 Rev 2564
Line 71... Line 71...
71
		}
71
		}
72
		return $infos_coord;
72
		return $infos_coord;
73
	}
73
	}
Line 74... Line 74...
74
	
74
	
-
 
75
	public function obtenirInfosPourNoms($nom, $pays, $code) {
-
 
76
		
-
 
77
		$nom = trim($nom);
-
 
78
		$pays = trim($pays);
-
 
79
		$code = trim($code);
75
	public function obtenirInfosPourNoms($nom, $pays, $code) {
80
		
76
		$retour = false;
81
		$retour = false;
77
		// Dans le cas de la france on possède directement une table 
82
		// Dans le cas de la france on possède directement une table 
78
		// avec les centroïdes des communes
83
		// avec les centroïdes des communes
79
		if($pays == 'FR' || $code != "*") {
84
		if($pays == 'FR' || $code != "") {
80
			$retour = $this->chercherCentroideCommuneBdd($nom, $code);
85
			$retour = $this->chercherCentroideCommuneBdd($nom, $code);
81
		} else {
86
		} else {
-
 
87
			// Sinon méthode habituelle, un test simple suivi d'un test plus complexe
-
 
88
			// On cherche donc d'abord en France
82
			// Sinon méthode habituelle, un test simple suivi d'un test plus complexe
89
			if($pays == "") {
-
 
90
				$retour = $this->chercherCentroideCommuneBdd($nom, $code);
-
 
91
			}
-
 
92
			
83
			$retour = $this->chercherCentroideCommuneBdd($nom, $code);
93
			// Si on ne trouve rien on teste dans le monde entier
84
			if(!$retour) {
94
			if($retour == false) {
85
				$retour = $this->effectuerRequeteGeocodingMondiale($nom);
95
				$retour = $this->effectuerRequeteGeocodingMondiale($nom, '2,3,4,5,6,7,8', 1, $pays);
86
			}
96
			}
Line 87... Line 97...
87
		}
97
		}
88
		
98
		
Line 190... Line 200...
190
					);
200
					);
191
		}
201
		}
192
		return $retour;
202
		return $retour;
193
	}
203
	}
Line 194... Line 204...
194
	
204
	
195
	private function effectuerRequeteGeocodingMondiale($nom, $niveau = '2,3,4,5,6,7,8', $limite = 1) {
205
	private function effectuerRequeteGeocodingMondiale($nom, $niveau = '2,3,4,5,6,7,8', $limite = 1, $pays = null) {
-
 
206
		$url_sans_pays = $this->config['cel']['url_service_geo_mondial'].'?masque='.urlencode($nom).'&niveau='.$niveau.'&limite='.$limite;
-
 
207
		$url = $url_sans_pays.(!empty($pays) ? '&pays='.urlencode($pays) : '');
196
		$url = $this->config['cel']['url_service_geo_mondial'].'?masque='.urlencode($nom).'&niveau='.$niveau.'&limite='.$limite;
208
 
Line 197... Line 209...
197
		$res = @json_decode(file_get_contents($url), true);
209
		$res = @json_decode(file_get_contents($url), true);
Line 198... Line 210...
198
 
210
 
Line 209... Line 221...
209
					$ligne_decodee = $this->traiterLigneResultatRequeteGeocodingMondiale($ligne);
221
					$ligne_decodee = $this->traiterLigneResultatRequeteGeocodingMondiale($ligne);
210
					$param = array('nom' => $ligne_decodee['nom'], 'code' => $ligne_decodee['code_pays']);
222
					$param = array('nom' => $ligne_decodee['nom'], 'code' => $ligne_decodee['code_pays']);
211
					$retour[] = $this->formaterLigneResultat($param);
223
					$retour[] = $this->formaterLigneResultat($param);
212
				}
224
				}
213
			}
225
			}
-
 
226
		} else if($limite == 1) {
-
 
227
			// Dans le cas où un pays a été demandé mais pas de résultat, on rentente la recherche sans
-
 
228
			// préciser de pays
-
 
229
			$res = @json_decode(file_get_contents($url_sans_pays), true);
-
 
230
			
-
 
231
			if(!empty($res)) {
-
 
232
				$retour = $this->traiterLigneResultatRequeteGeocodingMondiale($res);
-
 
233
			}				
214
		}
234
		}
Line 215... Line 235...
215
	
235
	
216
		return $retour;
236
		return $retour;