Changeset 56086 in spip-zone
- Timestamp:
- Dec 28, 2011, 6:25:33 PM (12 years ago)
- Location:
- _plugins_/gis/branches/v2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/gis/branches/v2/gis_fonctions.php
r54170 r56086 68 68 69 69 /** 70 * Critere {gis distance<XX} pour filtrer une liste de points par rapport à la distance du point de l'env 70 * Critère {gis} sur les boucles autres que GIS pour forcer la jointure sur la table GIS 71 * Critère {gis distance<XX} sur une boucle GIS pour filtrer une liste de points par rapport à la distance du point de l'env 71 72 * 72 73 * @param unknown_type $idb … … 77 78 78 79 $boucle = &$boucles[$idb]; 79 $id = $boucle->primary; 80 81 // exclure l'élément en cours des résultats 82 $id_gis = calculer_argument_precedent($idb,$id, $boucles); 83 $boucle->where[]= array("'!='", "'$boucle->id_table." . "$id'", $id_gis); 84 85 // récupérer les paramètres du critère 86 $op=''; 87 $params = $crit->param; 88 $type = array_shift($params); 89 $type = $type[0]->texte; 90 if(preg_match(',^(\w+)([<>=]+)([0-9]+)$,',$type,$r)){ 91 $type=$r[1]; 92 $op=$r[2]; 93 $op_val=$r[3]; 94 } 95 if ($op) 96 $boucle->having[]= array("'".$op."'", "'".$type."'",$op_val); 97 98 // récupérer lat/lon du point de la boucle englobante 99 $lat = calculer_argument_precedent($idb,'lat', $boucles); 100 $lon = calculer_argument_precedent($idb,'lon', $boucles); 101 102 // http://www.awelty.fr/developpement-web/php/ 103 // http://www.movable-type.co.uk/scripts/latlong-db.html 104 // http://code.google.com/intl/fr/apis/maps/articles/geospatial.html#geospatial 105 $select = "(6371 * acos( cos( radians(\".$lat.\") ) * cos( radians( gis.lat ) ) * cos( radians( gis.lon ) - radians(\".$lon.\") ) + sin( radians(\".$lat.\") ) * sin( radians( gis.lat ) ) ) ) AS distance"; 106 $order = "'distance'"; 107 108 $boucle->select[]= $select; 109 $boucle->order[]= $order; 80 $id_table = $boucle->id_table; // articles 81 $primary = $boucle->primary; // id_article 82 $objet = objet_type($id_table); // article 83 84 if ($id_table == 'gis') { 85 // exclure l'élément en cours des résultats 86 $id_gis = calculer_argument_precedent($idb,$primary, $boucles); 87 $boucle->where[]= array("'!='", "'$boucle->id_table." . "$primary'", $id_gis); 88 89 // récupérer les paramètres du critère 90 $op=''; 91 $params = $crit->param; 92 $type = array_shift($params); 93 $type = $type[0]->texte; 94 if(preg_match(',^(\w+)([<>=]+)([0-9]+)$,',$type,$r)){ 95 $type=$r[1]; 96 $op=$r[2]; 97 $op_val=$r[3]; 98 } 99 if ($op) 100 $boucle->having[]= array("'".$op."'", "'".$type."'",$op_val); 101 102 // récupérer lat/lon du point de la boucle englobante 103 $lat = calculer_argument_precedent($idb,'lat', $boucles); 104 $lon = calculer_argument_precedent($idb,'lon', $boucles); 105 106 // http://www.awelty.fr/developpement-web/php/ 107 // http://www.movable-type.co.uk/scripts/latlong-db.html 108 // http://code.google.com/intl/fr/apis/maps/articles/geospatial.html#geospatial 109 $select = "(6371 * acos( cos( radians(\".$lat.\") ) * cos( radians( gis.lat ) ) * cos( radians( gis.lon ) - radians(\".$lon.\") ) + sin( radians(\".$lat.\") ) * sin( radians( gis.lat ) ) ) ) AS distance"; 110 $order = "'distance'"; 111 112 $boucle->select[]= $select; 113 $boucle->order[]= $order; 114 } else { 115 // ajouter le titre et le descriptif du point au select 116 $boucle->select[]= 'gis.titre AS titre_gis'; 117 $boucle->select[]= 'gis.descriptif AS descriptif_gis'; 118 // jointure sur spip_gis_liens/spip_gis 119 // cf plugin notation 120 // $boucle->join["surnom (as) table de liaison"] = array("surnom de la table a lier", "cle primaire de la table de liaison", "identifiant a lier", "type d'objet de l'identifiant"); 121 $boucle->from['gis_liens'] = 'spip_gis_liens'; 122 $boucle->join['gis_liens']= array("'$id_table'","'id_objet'","'$primary'","'gis_liens.objet='.sql_quote('$objet')"); 123 $boucle->from['gis'] = 'spip_gis'; 124 $boucle->join['gis']= array("'gis_liens'","'id_gis'"); 125 // bien renvoyer tous les points son attachés à l'objet 126 $boucle->group[] = 'gis_liens.id_gis'; 127 // ajouter gis aux jointures et spécifier les jointures explicites pour pouvoir utiliser les balises de la table de jointure 128 // permet de passer dans trouver_champ_exterieur() depuis index_tables_en_pile() 129 // cf http://article.gmane.org/gmane.comp.web.spip.zone/6628 130 $boucle->jointures[] = 'gis'; 131 $boucle->jointures_explicites = 'gis_liens gis'; 132 } 110 133 111 134 } … … 119 142 function balise_distance_dist($p) { 120 143 return rindex_pile($p, 'distance', 'gis'); 144 } 145 146 /** 147 * Balise #TITRE_GIS : retourne le titre du point 148 * Necessite le critere {gis} sur la boucle 149 * 150 * @param unknown_type $p 151 */ 152 function balise_titre_gis_dist($p) { 153 return rindex_pile($p, 'titre_gis', 'gis'); 154 } 155 156 /** 157 * Balise #DESCRIPTIF_GIS : retourne le descriptif du point 158 * Necessite le critere {gis} sur la boucle 159 * 160 * @param unknown_type $p 161 */ 162 function balise_descriptif_gis_dist($p) { 163 return rindex_pile($p, 'descriptif_gis', 'gis'); 121 164 } 122 165 -
_plugins_/gis/branches/v2/json/gis_articles.html
r55738 r56086 1 <BOUCLE_art(ARTICLES){ id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_article}{","}>1 <BOUCLE_art(ARTICLES){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}> 2 2 {"type": "Feature", 3 3 "geometry": {"type": "Point", "coordinates": [#LON, #LAT]}, 4 4 "id":"#ID_GIS", 5 "title":[(#TITRE *|sinon{#_art:TITRE*}|supprimer_numero|json_encode)],6 "description":[(#DESCRIPTIF |sinon{#_art:DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]5 "title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)], 6 "description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})] 7 7 [(#LOGO_GIS|oui) 8 8 [(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]] … … 18 18 "icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)], 19 19 "icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)] 20 ]}</BOUCLE_ gis></BOUCLE_art>20 ]}</BOUCLE_art> -
_plugins_/gis/branches/v2/json/gis_auteurs.html
r55738 r56086 1 <BOUCLE_auteurs(AUTEURS){ id_article ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_auteur}{","}>1 <BOUCLE_auteurs(AUTEURS){gis}{id_article ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}> 2 2 {"type": "Feature", 3 3 "geometry": {"type": "Point", "coordinates": [#LON, #LAT]}, 4 4 "id":"#ID_GIS", 5 "title":[(#TITRE *|sinon{#_auteurs:NOM*}|supprimer_numero|json_encode)],6 "description":[(#DESCRIPTIF |sinon{#_auteurs:BIO}|json_encode)][(#SET{logo_doc,''})]5 "title":[(#TITRE_GIS*|sinon{#NOM*}|supprimer_numero|json_encode)], 6 "description":[(#DESCRIPTIF_GIS|sinon{#BIO}|json_encode)][(#SET{logo_doc,''})] 7 7 [(#LOGO_GIS|oui) 8 8 [(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]] … … 18 18 "icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)], 19 19 "icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)] 20 ]}</BOUCLE_ gis></BOUCLE_auteurs>20 ]}</BOUCLE_auteurs> -
_plugins_/gis/branches/v2/json/gis_mots.html
r55738 r56086 1 <BOUCLE_mots(MOTS){ id_mot ?}{id_groupe ?}{id_article ?}{id_rubrique ?}{id_breve ?}{id_syndic ?}{id_forum ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_mot}{","}>1 <BOUCLE_mots(MOTS){gis}{id_mot ?}{id_groupe ?}{id_article ?}{id_rubrique ?}{id_breve ?}{id_syndic ?}{id_forum ?}{recherche ?}{0, #ENV{limit}}{","}> 2 2 {"type": "Feature", 3 3 "geometry": {"type": "Point", "coordinates": [#LON, #LAT]}, 4 4 "id":"#ID_GIS", 5 "title":[(#TITRE *|sinon{#_mots:TITRE*}|supprimer_numero|json_encode)],6 "description":[(#DESCRIPTIF |sinon{#_mots:DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]5 "title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)], 6 "description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})] 7 7 [(#LOGO_GIS|oui) 8 8 [(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]] … … 18 18 "icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)], 19 19 "icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)] 20 ]}</BOUCLE_ gis></BOUCLE_mots>20 ]}</BOUCLE_mots> -
_plugins_/gis/branches/v2/json/gis_rubriques.html
r55738 r56086 1 <BOUCLE_rub(RUBRIQUES){ id_rubrique ?}{id_secteur ?}{id_parent?=#ENV{id_parent}}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_rubrique}{","}>1 <BOUCLE_rub(RUBRIQUES){gis}{id_rubrique ?}{id_secteur ?}{id_parent?=#ENV{id_parent}}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}> 2 2 {"type": "Feature", 3 3 "geometry": {"type": "Point", "coordinates": [#LON, #LAT]}, 4 4 "id":"#ID_GIS", 5 "title":[(#TITRE *|sinon{#_rub:TITRE*}|supprimer_numero|json_encode)],6 "description":[(#DESCRIPTIF |sinon{#_rub:DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]5 "title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)], 6 "description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})] 7 7 [(#LOGO_GIS|oui) 8 8 [(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]] … … 18 18 "icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)], 19 19 "icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)] 20 ]}</BOUCLE_ gis></BOUCLE_rub>20 ]}</BOUCLE_rub> -
_plugins_/gis/branches/v2/json/gis_sites.html
r55738 r56086 1 <BOUCLE_sit(SITES){ id_syndic ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_syndic}{","}>1 <BOUCLE_sit(SITES){gis}{id_syndic ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}> 2 2 {"type": "Feature", 3 3 "geometry": {"type": "Point", "coordinates": [#LON, #LAT]}, 4 4 "id":"#ID_GIS", 5 "title":[(#TITRE *|sinon{#_sit:NOM_SITE*}|supprimer_numero|json_encode)],6 "description":[(#DESCRIPTIF |sinon{#_sit:DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]5 "title":[(#TITRE_GIS*|sinon{#NOM_SITE*}|supprimer_numero|json_encode)], 6 "description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})] 7 7 [(#LOGO_GIS|oui) 8 8 [(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]] … … 18 18 "icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)], 19 19 "icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)] 20 ]}</BOUCLE_ gis></BOUCLE_sit>20 ]}</BOUCLE_sit> -
_plugins_/gis/branches/v2/plugin.xml
r55738 r56086 2 2 <nom>GIS</nom> 3 3 <auteur>b_b, kent1</auteur> 4 <version>2. 1.4</version>4 <version>2.2.0</version> 5 5 <version_base>2.0.2</version_base> 6 6 <licence>GNU/GPL</licence>
Note: See TracChangeset
for help on using the changeset viewer.