Line 5... |
Line 5... |
5 |
* Encodage en sortie : utf8
|
5 |
* Encodage en sortie : utf8
|
6 |
*
|
6 |
*
|
7 |
* Cas d'utilisation :
|
7 |
* Cas d'utilisation :
|
8 |
* /CelWidgetMap/Carte/Utilisateur : carte des observations publiques d'un utilisateur.
|
8 |
* /CelWidgetMap/Carte/Utilisateur : carte des observations publiques d'un utilisateur.
|
9 |
* /CelWidgetMap/Carte/Utilisateur/Projet : carte des observations publiques d'un utilisateur pour un projet.
|
9 |
* /CelWidgetMap/Carte/Utilisateur/Projet : carte des observations publiques d'un utilisateur pour un projet.
|
- |
|
10 |
* /CelWidgetMap/Carte/Utilisateur/Projet/dept : carte des observations publiques d'un utilisateur pour un projet sur un département.
|
- |
|
11 |
* /CelWidgetMap/Carte/Utilisateur/Projet/dept/num_taxon : carte des observations publiques d'un utilisateur pour un projet sur un département pour un taxon.
|
10 |
*
|
12 |
*
|
11 |
* Carte = Type de carte. Valeurs possible : defaut,
|
13 |
* Carte = Type de carte. Valeurs possible : defaut,
|
12 |
* Utilisateur = identifiant (= courriel) de l'utilisateur ou * pour tous les utilisateurs.
|
14 |
* Utilisateur = identifiant (= courriel) de l'utilisateur ou * pour tous les utilisateurs.
|
13 |
* Projet = mot-clé du projet
|
15 |
* Projet = mot-clé du projet
|
14 |
*
|
16 |
*
|
Line 17... |
Line 19... |
17 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
19 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
18 |
* @version $Id$
|
20 |
* @version $Id$
|
19 |
* @copyright © 2010, Jean-Pascal MILCENT
|
21 |
* @copyright © 2010, Jean-Pascal MILCENT
|
20 |
*/
|
22 |
*/
|
21 |
class CelWidgetMap extends Cel {
|
23 |
class CelWidgetMap extends Cel {
|
22 |
|
24 |
|
23 |
/**
|
25 |
/**
|
24 |
* Méthode appelée avec une requête de type GET.
|
26 |
* Méthode appelée avec une requête de type GET.
|
25 |
*/
|
27 |
*/
|
26 |
public function getElement($params) {
|
28 |
public function getElement($params) {
|
27 |
$retour = null;
|
29 |
$retour = null;
|
28 |
$parametres = $this->traiterParametres(array('carte'), $params, false);
|
30 |
$parametres = $this->traiterParametres(array('carte'), $params, false);
|
29 |
extract($parametres);
|
31 |
extract($parametres);
|
30 |
|
32 |
|
31 |
if (isset($carte)) {
|
33 |
if (isset($carte)) {
|
32 |
$methode = $this->traiterNomMethodeGet($carte);
|
34 |
$methode = $this->traiterNomMethodeGet($carte);
|
33 |
if (method_exists($this, $methode)) {
|
35 |
if (method_exists($this, $methode)) {
|
34 |
array_shift($params);
|
36 |
array_shift($params);
|
35 |
$retour = $this->$methode($params);
|
37 |
$retour = $this->$methode($params);
|
Line 53... |
Line 55... |
53 |
/**
|
55 |
/**
|
54 |
* Données de la carte par défaut
|
56 |
* Données de la carte par défaut
|
55 |
*/
|
57 |
*/
|
56 |
public function getCarteDefautJson($params) {
|
58 |
public function getCarteDefautJson($params) {
|
57 |
$json = null;
|
59 |
$json = null;
|
58 |
$parametres = $this->traiterParametres(array('utilisateur', 'projet'), $params, false);
|
60 |
$parametres = $this->traiterParametres(array('utilisateur','projet','dept','num_taxon'), $params, false);
|
59 |
extract($parametres);
|
61 |
extract($parametres);
|
60 |
|
62 |
|
- |
|
63 |
// Traitement de $projet pour construction de filtre dans la requête
|
- |
|
64 |
if (isset($projet)) {
|
- |
|
65 |
$mot_cle_encode = $this->bdd->quote($this->encoderMotCle($projet));
|
- |
|
66 |
// Construction de la requête
|
- |
|
67 |
$requete = 'SELECT * '.
|
- |
|
68 |
'FROM cel_mots_cles_obs '.
|
- |
|
69 |
"WHERE cmc_id_mot_cle_general = $mot_cle_encode ";
|
- |
|
70 |
$elements_projet = $this->executerRequete($requete);
|
- |
|
71 |
|
- |
|
72 |
if ($elements_projet != false && count($elements_projet) > 0) {
|
- |
|
73 |
// Pré-construction du where de la requête
|
- |
|
74 |
$tpl_where = '(mots_cles LIKE "%%%s%%" AND identifiant = %s )';
|
- |
|
75 |
$requete_projet = array();
|
- |
|
76 |
foreach ($elements_projet as $occurence) {
|
- |
|
77 |
$requete_projet[] = sprintf($tpl_where, $occurence['cmc_id_mot_cle_utilisateur'], $this->bdd->quote($occurence['cmc_id_proprietaire']));
|
- |
|
78 |
}
|
- |
|
79 |
} else {
|
- |
|
80 |
$this->messages[] = "Aucune observation ne correspond à ce mot clé.";
|
- |
|
81 |
}
|
- |
|
82 |
}
|
- |
|
83 |
|
- |
|
84 |
|
61 |
$requete = 'SELECT sector, x_utm, y_utm, coord_x, coord_y, ref_geo '.
|
85 |
$requete = 'SELECT sector, x_utm, y_utm, coord_x, coord_y, ref_geo '.
|
62 |
'FROM cel_inventory AS i '.
|
86 |
'FROM cel_inventory AS i '.
|
63 |
' LEFT JOIN locations AS l '.
|
87 |
' LEFT JOIN locations AS l '.
|
64 |
' ON (l.name = i.location AND l.code = i.id_location) '.
|
88 |
' ON (l.name = i.location AND l.code = i.id_location) '.
|
65 |
"WHERE transmission = '1' ".
|
89 |
"WHERE transmission = '1' ".
|
66 |
(isset($utilisateur) ? " AND identifiant = '$utilisateur' " : '');
|
90 |
(isset($utilisateur) ? " AND identifiant = '$utilisateur' " : '' ).
|
- |
|
91 |
(isset($dept) ? " AND l.insee_code LIKE '$dept%' " : '').
|
- |
|
92 |
(isset($num_taxon) ? " AND num_taxon = '$num_taxon' " : '' ).
|
- |
|
93 |
(isset($projet) ? ' AND '.implode(" \nOR ", $requete_projet) : '' );
|
67 |
$resultats = $this->executerRequete($requete);
|
94 |
$resultats = $this->executerRequete($requete);
|
68 |
|
95 |
|
69 |
// Traitement des résultats
|
96 |
// Traitement des résultats
|
70 |
$mm = array('min_x' => 0,'max_x' => 0,'min_y' => 0,'max_y' => 0);
|
97 |
$mm = array('min_x' => 0,'max_x' => 0,'min_y' => 0,'max_y' => 0);
|
71 |
$points = array();
|
98 |
$points = array();
|
72 |
foreach ($resultats as $enrg) {
|
99 |
foreach ($resultats as $enrg) {
|
73 |
$enrg['id'] = 'LngLat:'.$enrg['coord_y'].'-'.$enrg['coord_x'];
|
100 |
$enrg['id'] = 'LngLat:'.$enrg['coord_y'].'-'.$enrg['coord_x'];
|