Line 1... |
Line 1... |
1 |
<?php
|
1 |
<?php
|
Line -... |
Line 2... |
- |
|
2 |
|
- |
|
3 |
/**
|
- |
|
4 |
* Classe unique du web service nasa-srtm qui détermine l'altitude d'un point à partir de ses coordonnees
|
- |
|
5 |
* Les coordonnees sont definies dans des fichiers au format HGT dans un dossier specifique
|
- |
|
6 |
* (dont le chemin est defini dans le fichier de configuration propre au web service).
|
- |
|
7 |
* Les ressources utilisees sont les donnees issues du programme SRTM-3 de la NASA qui couvre
|
- |
|
8 |
* l'ensemble terrestre du monde. La precision des points dont on renvoie l'altitude est de 90 metres.
|
- |
|
9 |
* Chaque fichier couvre un secteur de 1 degre sur 1 degre et contient un tableau de 1201 lignes
|
- |
|
10 |
* (axe des latitudes) sur 1201 colonnes (axe des longitudes) contenant l'altitude en metres
|
- |
|
11 |
* correspondant a des point precis. L'ecart entre chaque entree des tableaux est constant, ce qui
|
- |
|
12 |
* permet de calculer la latitude et la longitude de chaque point. L'altitude du point le plus proche
|
- |
|
13 |
* de celui passe en parametres sera renvoyee au client.
|
- |
|
14 |
*
|
- |
|
15 |
* Parametres du web service :
|
- |
|
16 |
* - latitude : latitude du point dont on recherche les coordonnees
|
- |
|
17 |
* - longitude : longitude du point dont on recherche les coordonnees
|
- |
|
18 |
*
|
- |
|
19 |
* @package framework-0.4
|
- |
|
20 |
* @author Alexandre GALIBERT <alexandre.galibert@tela-botanica.org>
|
- |
|
21 |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
|
- |
|
22 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
- |
|
23 |
* @version $Id$
|
- |
|
24 |
* @copyright 2013 Tela Botanica (accueil@tela-botanica.org)
|
- |
|
25 |
*
|
- |
|
26 |
*/
|
- |
|
27 |
|
2 |
|
28 |
|
Line 3... |
Line 29... |
3 |
class Altitude {
|
29 |
class Altitude {
|
4 |
|
30 |
|
5 |
private $parametres = array();
|
31 |
private $parametres = array();
|
Line 25... |
Line 51... |
25 |
}
|
51 |
}
|
26 |
return $retour;
|
52 |
return $retour;
|
27 |
}
|
53 |
}
|
Line 28... |
Line 54... |
28 |
|
54 |
|
29 |
private function traiterCoordonnees() {
|
55 |
private function traiterCoordonnees() {
|
30 |
if ($this->estParametreExistant('latitude') && $this->estParametreExistant('longitude')) {
|
56 |
if ($this->estParametreExistant('lat') && $this->estParametreExistant('lon')) {
|
31 |
$longitude = $this->parametres['longitude'];
|
57 |
$longitude = $this->parametres['lon'];
|
32 |
$latitude = $this->parametres['latitude'];
|
58 |
$latitude = $this->parametres['lat'];
|
33 |
if ($this->estUnFloat($longitude) && $this->estUnFloat($latitude)) {
|
59 |
if ($this->estUnFloat($longitude) && $this->estUnFloat($latitude)) {
|
34 |
$this->verifierValiditeCoordonnees($longitude, $latitude);
|
60 |
$this->verifierValiditeCoordonnees($longitude, $latitude);
|
35 |
} else {
|
61 |
} else {
|
36 |
$message = "La valeur des coordonnées longitude ou latitude n'est pas correcte. ".
|
62 |
$message = "La valeur des coordonnées longitude ou latitude n'est pas correcte. ".
|