Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 1046 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1046 Rev 1056
1
<?php
1
<?php
2
//declare(encoding='UTF-8');
2
//declare(encoding='UTF-8');
3
/**
3
/**
4
 * Exemple de lancement du script : :
4
 * Exemple de lancement du script : :
5
 * 1. Création de la base de données :
5
 * 1. Création de la base de données :
6
 * /opt/lampp/bin/php cli.php osm -a chargerStructureSql -m manuel -v 3
-
 
7
 *
-
 
8
 * 2. Analyse du fichir OSM :
-
 
9
 * /opt/lampp/bin/php cli.php osm -a analyser -f "../donnees/osm/fr_communes_new.osm" -m manuel -v 3
-
 
10
 *
-
 
11
 * 3. Traitement de l'ordre :
-
 
12
 * /opt/lampp/bin/php cli.php osm -a ordre -m manuel -v 3
-
 
13
 *
-
 
14
 * 4. Remplissage des polygones :
-
 
15
 * /opt/lampp/bin/php cli.php osm -a polygone -m manuel -v 3
6
 * /opt/lampp/bin/php cli.php osm -a communes -m manuel -v 3
16
 *
-
 
17
 * Définition des centroïdes pour les polygones déjà complets:
-
 
18
 * /opt/lampp/bin/php cli.php osm -a centre -m manuel -v 3
-
 
19
 *
-
 
20
 * 5. Remise de l'ordre à zéro :
-
 
21
 * /opt/lampp/bin/php cli.php osm -a zero -m manuel -v 3
-
 
22
 *
-
 
23
 * 6. Traitement de l'ordre des polygones incomplets :
-
 
24
 * /opt/lampp/bin/php cli.php osm -a ordonnerPolygoneInc -m manuel -v 3
-
 
25
 *
-
 
26
 * 7. Remplissage des polygones incomplets :
-
 
27
 * /opt/lampp/bin/php cli.php osm -a remplirPolygoneInc -m manuel -v 3
-
 
28
 *
-
 
29
 * 8. Renommage des polygones incomplets :
-
 
30
 * /opt/lampp/bin/php cli.php osm -a renommer -m manuel -v 3
-
 
31
 *
-
 
32
 * 9. Définition des centroïdes :
-
 
33
 * /opt/lampp/bin/php cli.php osm -a centre -m manuel -v 3
-
 
34
 *
7
 *
35
 * @category	php 5.4
8
 * @category	php 5.4
36
 * @package		DEL
9
 * @package		DEL
37
 * @subpackage	Scripts
10
 * @subpackage	Scripts
38
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
11
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
39
 * @copyright	Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
12
 * @copyright	Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
40
* @license		CeCILL v2 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt
13
* @license		CeCILL v2 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt
41
 * @license		GNU-GPL http://www.gnu.org/licenses/gpl.html
14
 * @license		GNU-GPL http://www.gnu.org/licenses/gpl.html
42
 */
15
 */
43
// TODO : Améliorer la gestion de l'ordre des chemins pour éviter de prendre en compte des chemins inexistants
-
 
44
class Osm extends EfloreScript {
16
class Osm extends EfloreScript {
45
 
17
 
46
	const PROJET_NOM = 'osm';
18
	const PROJET_NOM = 'osm';
47
 
19
 
48
	protected $parametres_autorises = array(
20
	protected $parametres_autorises = array(
49
		'-f' => array(true, null, 'Chemin du fichier osm à analyser'),
-
 
50
		'-m' => array(false, 'auto', 'Mode «auto» ou «manuel». En manuel, les compteurs dans les boucles sont affichés.'));
21
		'-m' => array(false, 'auto', 'Mode «auto» ou «manuel». En manuel, les compteurs dans les boucles sont affichés.'));
51
 
22
 
52
	public function executer() {
23
	public function executer() {
53
		try {
24
		try {
54
			$this->initialiserProjet(self::PROJET_NOM);
25
			$this->initialiserProjet(self::PROJET_NOM);
55
 
26
 
56
			// Lancement de l'action demandée
27
			// Lancement de l'action demandée
57
			$cmd = $this->getParametre('a');
28
			$cmd = $this->getParametre('a');
58
			switch ($cmd) {
29
			switch ($cmd) {
59
				case 'chargerStructureSql' :
30
				case 'chargerStructureSql' :
60
					$this->chargerStructureSql();
31
					$this->chargerStructureSql();
61
					break;
32
					break;
62
				case 'analyser' :
-
 
63
					$script = $this->chargerClasse('ParseurOsm');
-
 
64
					$script->executer();
-
 
65
					break;
-
 
66
				case 'ordre' :
-
 
67
					$script = $this->chargerClasse('OrdonneurDeChemins');
-
 
68
					$script->executer();
-
 
69
					break;
-
 
70
				case 'polygone' :
-
 
71
				case 'centre' :
-
 
72
				case 'zero' :
33
				case 'cm' :
73
					$script = $this->chargerClasse('PolygoneCreateur');
-
 
74
					$script->executer();
-
 
75
					break;
-
 
76
				case 'ordonnerPolygoneInc' :
-
 
77
				case 'remplirPolygoneInc' :
-
 
78
				case 'renommer' :
34
				case 'cmSupprimer' :
79
					$script = $this->chargerClasse('PolygoneReparateur');
35
					$script = $this->chargerClasse('FranceCommunes');
80
					$script->executer();
36
					$script->executer();
81
					break;
37
					break;
82
				case 'maj' :
38
				case 'za' :
-
 
39
				case 'zaCorriger' :
-
 
40
				case 'zaMajIdZG' :
-
 
41
				case 'zaSupprimer' :
83
					$script = $this->chargerClasse('MiseAJour');
42
					$script = $this->chargerClasse('ZonesAdmin');
84
					$script->executer();
43
					$script->executer();
85
					break;
44
					break;
86
				default :
45
				default :
87
					throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
46
					throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
88
			}
47
			}
89
		} catch (Exception $e) {
48
		} catch (Exception $e) {
90
			$this->traiterErreur($e->getMessage());
49
			$this->traiterErreur($e->getMessage());
91
		}
50
		}
92
		print "\n";// Pour ramener à la ligne en fin de script
51
		print "\n";// Pour ramener à la ligne en fin de script
93
	}
52
	}
94
 
53
 
95
	protected function initialiserProjet($projetNom) {
54
	protected function initialiserProjet($projetNom) {
96
		$this->projetNom = $projetNom;
55
		$this->projetNom = $projetNom;
97
	}
56
	}
98
 
57
 
99
	private function chargerClasse($classe) {
58
	private function chargerClasse($classe) {
100
		require_once $classe.'.php';
59
		require_once $classe.'.php';
101
		$conteneur = new Conteneur($this->parametres);
60
		$conteneur = new Conteneur($this->parametres);
102
		return new $classe($conteneur);
61
		return new $classe($conteneur);
103
	}
62
	}
104
}
63
}