New file |
0,0 → 1,104 |
<?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 inexistants |
class 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); |
} |
} |