Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 428 Rev 474
Line 23... Line 23...
23
	/**
23
	/**
24
	 * Méthode appelée avec une requête de type GET.
24
	 * Méthode appelée avec une requête de type GET.
25
	 */
25
	 */
26
	public function getElement($params) {
26
	public function getElement($params) {
27
		$retour = null;
27
		$retour = null;
28
		$parametres = $this->traiterParametres(array('carte', 'utilisateur', 'projet'), $params, false);
28
		$parametres = $this->traiterParametres(array('carte'), $params, false);
29
		extract($parametres);
29
		extract($parametres);
Line 30... Line 30...
30
 
30
 
31
		if (isset($carte)) {
31
		if (isset($carte)) {
32
			$methode = $this->traiterNomMethodeGet($carte);
32
			$methode = $this->traiterNomMethodeGet($carte);
-
 
33
			if (method_exists($this, $methode)) {
33
			if (method_exists($this, $methode)) {
34
				array_shift($params);
34
				$retour = $this->$methode($parametres);
35
				$retour = $this->$methode($params);
35
			} else {
36
			} else {
36
				$this->messages[] = "Ce type de carte '$methode' n'est pas disponible.";
37
				$this->messages[] = "Ce type de carte '$methode' n'est pas disponible.";
37
			}
38
			}
38
		} else {
39
		} else {
39
			$this->messages[] = "Vous devez indiquer le type de carte.";
40
			$this->messages[] = "Vous devez indiquer le type de carte.";
Line 40... Line 41...
40
		}
41
		}
41
 
42
 
42
		if (is_null($retour)) {
43
		if (is_null($retour)) {
43
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
-
 
44
			$this->envoyer($info);
-
 
45
		} else if ($retour['type'] == 'widget') {
-
 
46
			$squelette = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR.$retour['squelette'].'.tpl.html';
-
 
47
			$html = $this->traiterSquelettePhp($squelette, $retour['donnees']);
44
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
48
			$this->envoyer($html);
45
			$this->envoyer($info);
-
 
46
		} else if ($retour['type'] == 'json') {
-
 
47
			$this->envoyerJson($retour['variable_js'], $retour['donnees']);
49
		} else if ($retour['type'] == 'json') {
48
		} else {
50
			$this->envoyerJson($retour['variable_js'], $retour['donnees']);
49
			$this->envoyer($retour, null, null, true);
Line 51... Line 50...
51
		}
50
		}
52
	}
51
	}
53
 
52
 
54
	/**
53
	/**
55
	 * Données de la carte par défaut
54
	 * Données de la carte par défaut
-
 
55
	 */
56
	 */
56
	public function getCarteDefautJson($params) {
Line 57... Line 57...
57
	public function getCarteDefautJson($parametres) {
57
		$json = null;
58
		$json = null;
58
		$parametres = $this->traiterParametres(array('utilisateur', 'projet'), $params, false);
59
		extract($parametres);
59
		extract($parametres);
Line 68... Line 68...
68
 
68
 
69
		// Traitement des résultats
69
		// Traitement des résultats
70
		$mm = array('min_x' => 0,'max_x' => 0,'min_y' => 0,'max_y' => 0);
70
		$mm = array('min_x' => 0,'max_x' => 0,'min_y' => 0,'max_y' => 0);
71
		$points = array();
71
		$points = array();
-
 
72
		foreach ($resultats as $enrg) {
72
		foreach ($resultats as $enrg) {
73
			$enrg['id'] = 'LngLat:'.$enrg['coord_y'].'-'.$enrg['coord_x'];
-
 
74
			if ($enrg['coord_x'] == '' && $enrg['coord_y'] == '' && $enrg['x_utm'] != '' && $enrg['y_utm'] != '') {
-
 
75
				$enrg['id'] = 'UTM:'.$enrg['x_utm'].'-'.$enrg['y_utm'].'-'.$enrg['sector'];
73
			if ($enrg['coord_x'] == '' && $enrg['coord_y'] == '' && $enrg['x_utm'] != '' && $enrg['y_utm'] != '') {
76
				
74
				$convertisseur = new gPoint();
77
				$convertisseur = new gPoint();
75
				$convertisseur->setUTM($enrg['x_utm'], $enrg['y_utm'], $enrg['sector']);
78
				$convertisseur->setUTM($enrg['x_utm'], $enrg['y_utm'], $enrg['sector']);
76
				$convertisseur->convertTMtoLL();
79
				$convertisseur->convertTMtoLL();
77
				$enrg['coord_x'] = $convertisseur->Lat();
80
				$enrg['coord_x'] = $convertisseur->Lat();
Line 109... Line 112...
109
 
112
 
110
 
113
 
111
		//echo '<pre>'.print_r($json, true).'</pre>';
114
		//echo '<pre>'.print_r($json, true).'</pre>';
-
 
115
		return $json;
-
 
116
	}
-
 
117
	
-
 
118
	/**
-
 
119
	 * Données pour l'affichage des obs d'une station
-
 
120
	 */
-
 
121
	public function getObservations($params) {
-
 
122
		$json = null;
-
 
123
		$parametres = $this->traiterParametres(array('station'), $params, false);
-
 
124
		extract($parametres);
-
 
125
		
-
 
126
		//$this->debug[] = $station;
-
 
127
		list($type, $coord) = explode(':', $station);
-
 
128
		if ($type == 'UTM') {
-
 
129
			list($x_utm, $y_utm, $secteur) = explode('-', $coord);
-
 
130
		} else if ($type == 'LngLat') {
-
 
131
			list($coord_y, $coord_x) = explode('-', $coord);
-
 
132
		}
-
 
133
 
-
 
134
		$requete = 	'SELECT identifiant, nom_sel, nom_ret, num_nom_sel, num_nom_ret, num_taxon, famille, '.
-
 
135
					'	lieudit, location, date_observation, milieu, commentaire, '.
-
 
136
					'	sector, x_utm, y_utm, coord_x, coord_y, ref_geo '.
-
 
137
					'FROM cel_inventory AS i '.
-
 
138
					'	LEFT JOIN locations AS l '.
-
 
139
					'		ON (l.name = i.location AND l.code = i.id_location) '.
-
 
140
					"WHERE transmission = '1' ".
-
 
141
					(($type == 'UTM') ? "	AND (sector = '$secteur' AND x_utm = '$x_utm' AND y_utm = '$y_utm' ) " : '').
-
 
142
					(($type == 'LngLat') ? "	AND (coord_x = '$coord_x' AND coord_y = '$coord_y' ) " : '').
-
 
143
					(isset($utilisateur) ? " AND identifiant = '$utilisateur' " : '');
-
 
144
		//$this->debug[] = $requete;
-
 
145
		$resultats = $this->executerRequete($requete);
-
 
146
		
-
 
147
		// Post-traitement
-
 
148
		$resultats = $this->nettoyerTableau($resultats);
-
 
149
		
112
		return $json;
150
		return $resultats;
113
	}
151
	}