Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php//declare(encoding='UTF-8');/*** Exemple de lancement du script : :* 1. Création de la base de données :* /opt/lampp/bin/php cli.php osm -a chargerStructureSql -m manuel -v 3** 2. Analyse du fichir OSM :* /opt/lampp/bin/php cli.php osm -a analyser -f "../donnees/osm/fr_communes_new.osm" -m manuel -v 3** 3. Traitement de l'ordre :* /opt/lampp/bin/php cli.php osm -a ordre -m manuel -v 3** 4. Remplissage des polygones :* /opt/lampp/bin/php cli.php osm -a polygone -m manuel -v 3** Définition des centroïdes pour les polygones déjà complets:* /opt/lampp/bin/php cli.php osm -a centre -m manuel -v 3** 5. Remise de l'ordre à zéro :* /opt/lampp/bin/php cli.php osm -a zero -m manuel -v 3** 6. Traitement de l'ordre des polygones incomplets :* /opt/lampp/bin/php cli.php osm -a ordonnerPolygoneInc -m manuel -v 3** 7. Remplissage des polygones incomplets :* /opt/lampp/bin/php cli.php osm -a remplirPolygoneInc -m manuel -v 3** 8. Renommage des polygones incomplets :* /opt/lampp/bin/php cli.php osm -a renommer -m manuel -v 3** 9. Définition des centroïdes :* /opt/lampp/bin/php cli.php osm -a centre -m manuel -v 3** @category php 5.4* @package DEL* @subpackage Scripts* @author Aurélien PERONNET <aurelien@tela-botanica.org>* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)* @license CeCILL v2 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt* @license GNU-GPL http://www.gnu.org/licenses/gpl.html*/// TODO : Améliorer la gestion de l'ordre des chemins pour éviter de prendre en compte des chemins inexistantsclass Osm extends EfloreScript {const PROJET_NOM = 'osm';protected $parametres_autorises = array('-f' => array(true, null, 'Chemin du fichier osm à analyser'),'-m' => array(false, 'auto', 'Mode «auto» ou «manuel». En manuel, les compteurs dans les boucles sont affichés.'));public function executer() {try {$this->initialiserProjet(self::PROJET_NOM);// Lancement de l'action demandée$cmd = $this->getParametre('a');switch ($cmd) {case 'chargerStructureSql' :$this->chargerStructureSql();break;case 'analyser' :$script = $this->chargerClasse('ParseurOsm');$script->executer();break;case 'ordre' :$script = $this->chargerClasse('OrdonneurDeChemins');$script->executer();break;case 'polygone' :case 'centre' :case 'zero' :$script = $this->chargerClasse('PolygoneCreateur');$script->executer();break;case 'ordonnerPolygoneInc' :case 'remplirPolygoneInc' :case 'renommer' :$script = $this->chargerClasse('PolygoneReparateur');$script->executer();break;case 'maj' :$script = $this->chargerClasse('MiseAJour');$script->executer();break;default :throw new Exception("Erreur : la commande '$cmd' n'existe pas!");}} catch (Exception $e) {$this->traiterErreur($e->getMessage());}print "\n";// Pour ramener à la ligne en fin de script}protected function initialiserProjet($projetNom) {$this->projetNom = $projetNom;}private function chargerClasse($classe) {require_once $classe.'.php';$conteneur = new Conteneur($this->parametres);return new $classe($conteneur);}}