Subversion Repositories eFlore/Applications.coel-consultation

Rev

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

Rev 25 Rev 30
Line 27... Line 27...
27
	 * @return string la vue correspondante
27
	 * @return string la vue correspondante
28
	 */
28
	 */
29
	public function cartographier() {
29
	public function cartographier() {
30
		// Initialisation de variable
30
		// Initialisation de variable
31
		$donnees = array();
31
		$donnees = array();
32
		$structureDao = $this->getModele('StructureDao');
-
 
33
		
-
 
34
		// Construction des données à passer à la cartographie
-
 
35
		$zones = $this->chargerZonesGeo(Config::get('carte_base_nom'));
-
 
36
		$zones_infos = $structureDao->getStructureParZoneGeo('FRD');
-
 
37
		$zones = $this->chargerZonesNbre($zones, $zones_infos);
-
 
38
		$zones = $this->chargerZonesUrls($zones);
-
 
39
		Debug::printr($zones);
-
 
Line 40... Line 32...
40
		
32
		
41
		// Création de la carte
33
		// Création de la carte
42
		$options = array(
34
		$options = array(
43
			'carte_nom' => 'france',	
35
			'carte_nom' => 'col_str_dep',	
-
 
36
			'formule' => Cartographie::FORMULE_PROPORTIONNEL,
-
 
37
			'couleur_claire' => Config::get('carte_couleur_claire'),
44
			'formule' => Cartographie::FORMULE_PROPORTIONNEL, 
38
			'couleur_foncee' => Config::get('carte_couleur_foncee'), 
45
			'fond_fichier' => Config::get('carte_base_nom'),
39
			'fond_fichier' => Config::get('carte_base_nom'),
46
			'fond_dossier' => Application::getChemin().Config::get('carte_chemin_fonds'),
40
			'fond_dossier' => Application::getChemin().Config::get('carte_fonds_chemin'),
-
 
41
			'stock_dossier' => Config::get('carte_sotckage_chemin'),
47
			'stock_dossier' => Config::get('carte_chemin_sotckage'),
42
			'stock_url' => Config::get('carte_sotckage_url'),
48
			'infos' => $zones);
43
			'debug' => Config::get('carte_mode_debug'));
-
 
44
		$cartographie = Composant::fabrique('cartographie', $options);
-
 
45
		// Construction des données nécessaires à la cartographie
-
 
46
		$zones = $cartographie->getCarteZones();
-
 
47
		$this->chargerZonesNbre($zones);
-
 
48
		$this->chargerZonesUrls($zones);
-
 
49
		$cartographie->setCarteZones($zones);
-
 
50
		//Debug::printr($zones);
49
		$cartographie = Composant::fabrique('cartographie', $options);
51
		
50
		$cartographie->creerCarte();
52
		$cartographie->creerCarte();
Line 51... Line 53...
51
		$donnees['map'] = $cartographie->getImageMap();
53
		$donnees['map'] = $cartographie->getImageMap();
52
		
54
		
53
		$resultat = $this->getVue('carte', $donnees);
55
		$resultat = $this->getVue('carte', $donnees);
Line 54... Line 56...
54
		$this->setSortie(self::RENDU_CORPS, $resultat);
56
		$this->setSortie(self::RENDU_CORPS, $resultat);
-
 
57
	}
-
 
58
	
55
	}
59
	private function chargerZonesNbre(&$zones) {
56
	
60
		$structureDao = $this->getModele('StructureDao');
57
	private function chargerZonesNbre($zones, $zones_infos) {
61
		$zones_infos = $structureDao->getStructureParZoneGeo('FRD');
58
		foreach ($zones as $id => &$infos) {
62
		foreach ($zones as $id => &$infos) {
59
			if (isset($zones_infos[$id])) {
63
			if (isset($zones_infos[$id])) {
60
				$nbre = $zones_infos[$id];
64
				$nbre = $zones_infos[$id];
61
				$infos['info_nbre'] = $nbre;
65
				$infos['info_nombre'] = $nbre;
62
			} else {
66
			} else {
63
				$infos['info_nbre'] = 0;
-
 
64
			}
67
				$infos['info_nombre'] = 0;
Line 65... Line 68...
65
		}
68
			}
66
		return $zones;
69
		}
67
	}
70
	}
68
	
71
	
69
	private function chargerZonesUrls($zones) {
72
	private function chargerZonesUrls(&$zones) {
70
		$this->url->setVariableRequete('module', 'Recherche');
73
		$this->url->setVariableRequete('module', 'Recherche');
71
		$this->url->setVariableRequete('action', 'rechercher');
74
		$this->url->setVariableRequete('action', 'rechercher');
72
		$this->url->setVariableRequete('recherche', 'd:%s');
75
		$this->url->setVariableRequete('recherche', 'str-d:%s');
73
		$url = $this->url->getURL();
76
		$url = $this->url->getURL();
74
		foreach ($zones as $id => &$infos) {
-
 
75
			$infos['url'] = sprintf($url, $id);
-
 
76
		}
-
 
77
		$this->url->unsetVariablesRequete(array('module', 'action', 'recherche'));
-
 
78
		return $zones;
-
 
79
	}
-
 
80
	
-
 
81
	/**
-
 
82
	 * Charge le fichier csv des zones géographique de la carte
-
 
83
	 */
-
 
84
	private function chargerZonesGeo($nom_carte) {
-
 
85
		$fichier_csv = Application::getChemin().Config::get('carte_chemin_fonds').$nom_carte.'.csv';
-
 
86
		$zones = array();
-
 
87
		if (($handle = fopen($fichier_csv, 'r')) !== false) {
-
 
88
			$ligne = 1;
-
 
89
			$cles = array();
-
 
90
			while (($donnees = fgetcsv($handle, 1000, ',')) !== false) {
-
 
91
				$cle = array_shift($donnees);
-
 
92
				if ($ligne == 1) {
-
 
93
					// Ligne 1 : les noms des champs
-
 
94
					$cles = $donnees;
-
 
95
				} else {
-
 
96
					// Ligne > 1 : traitements des données
-
 
97
					$zones[$cle] = array_combine($cles, $donnees);
-
 
98
				}
-
 
99
				$ligne++;
-
 
100
			}
77
		foreach ($zones as $id => &$infos) {
101
			fclose($handle);
78
			$infos['url'] = sprintf($url, $id);
102
		}
79
		}
103
		return $zones;
80
		$this->url->unsetVariablesRequete(array('module', 'action', 'recherche'));