Changeset 96464 in spip-zone


Ignore:
Timestamp:
Apr 5, 2016, 10:53:21 AM (3 years ago)
Author:
brunobergot@…
Message:

version 1.8.0 : suite de r96463, permettre l'édition et l'affichage des styles des geometries

Location:
_plugins_/gis_geometries
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/gis_geometries/gisgeom_fonctions.php

    r81663 r96464  
    1111function balise_geometry_dist($p) {
    1212        $p->code = '$Pile[$SP][\'geometry\']';
     13        return $p;
     14}
     15
     16/**
     17 * Balise GEOMETRY_STYLES pour afficher la représentation JSON des styles
     18 *
     19 * @param $p
     20 * @return mixed
     21 */
     22function balise_geometry_styles_dist($p) {
     23        $p->code = '$Pile[$SP][\'geometry_styles\']';
    1324        return $p;
    1425}
     
    6980}
    7081
     82/**
     83 * Filtre geometry_styles_to_json converti une chaine de valeurs séparées par des virugles au format JSON
     84 *
     85 * @param string $geometry_styles
     86 * @return string
     87 */
     88function geometry_styles_to_json($geometry_styles) {
     89        $values = explode(',', $geometry_styles);
     90        if (count(array_filter($values)) < 1) {
     91                return false;
     92        }
     93        $styles = array();
     94        $keys = array('color', 'weight', 'opacity', 'fillColor', 'fillOpacity');
     95        foreach ($keys as $index => $key) {
     96                if (strlen($values[$index])) {
     97                        $styles[$key] = $values[$index];
     98                }
     99        }
     100        return json_encode($styles);
     101}
     102
    71103?>
  • _plugins_/gis_geometries/gisgeom_pipelines.php

    r95146 r96464  
    198198 * Surcharger les boucles GIS et celles qui comportent le critère gis
    199199 * pour permettre d'accéder à la valeur du champ geo au format WKT (voir balise #GEOMETRY)
     200 * et aux valeurs des styles concaténées (voir balise #GEOMETRY_STYLES)
    200201 *
    201202 * @param $boucle
     
    205206        if ($boucle->type_requete == 'gis' OR in_array('gis',$boucle->jointures)) {
    206207                $boucle->select[]= 'AsText(gis.geo) AS geometry';
     208                $boucle->select[]= "CONCAT_WS(',', gis.color, gis.weight, gis.opacity, gis.fillcolor, gis.fillopacity) AS geometry_styles";
    207209        }
    208210        return $boucle;
  • _plugins_/gis_geometries/modeles/carte_gis_preview.html

    r96413 r96464  
    3030                                                "title":[(#TITRE|supprimer_numero|json_encode)],
    3131                                                "description":[(#DESCRIPTIF|json_encode)][(#TYPE|=={Point}|oui)[
    32                                                 (#LOGO_GIS|gis_icon_properties)]]
     32                                                (#LOGO_GIS|gis_icon_properties)]][,
     33                                                "styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]
    3334                                        }
    3435                                }
     
    4849                                                "title":[(#TITRE|supprimer_numero|json_encode)],
    4950                                                "description":[(#DESCRIPTIF|json_encode)][(#TYPE|=={Point}|oui)[
    50                                                 (#LOGO_GIS|gis_icon_properties)]]
     51                                                (#LOGO_GIS|gis_icon_properties)]][,
     52                                                "styles": (#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]
    5153                                        }
    5254                                }]
     
    5658                if (data) {
    5759                        var geojson = new L.geoJson('', {
     60                                style: function (feature) {
     61                                        return feature.properties.styles;
     62                                },
    5863                                onEachFeature: function (feature, layer) {
    5964                                        if (feature.properties && feature.properties.icon){
  • _plugins_/gis_geometries/paquet.xml

    r96440 r96464  
    22        prefix="gisgeom"
    33        categorie="divers"
    4         version="1.7.7"
     4        version="1.8.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.1.*]"
     
    2828        <pipeline nom="pre_boucle" inclure="gisgeom_pipelines.php" />
    2929
    30         <necessite nom="gis" compatibilite="[4.32.6;[" />
     30        <necessite nom="gis" compatibilite="[4.33.0;[" />
    3131        <lib nom="geoPHP-1.1" lien="https://github.com/phayes/geoPHP/archive/1.1.zip" />
    3232</paquet>
  • _plugins_/gis_geometries/saisies/carte.html

    r96343 r96464  
    174174                }
    175175                var geojson = new L.geoJson('', {[
    176                         style: (#ENV*{path_styles}|json_encode),
     176                        style: (#ENV*{path_styles}|?{[(#ENV*{path_styles}|json_encode)],[(#GEOMETRY_STYLES|appliquer_filtre{geometry_styles_to_json})]}),
    177177                        ]onEachFeature: function (feature, layer) {
    178178                                if (feature.geometry.type == 'Polygon' || feature.geometry.type == 'LineString') {
Note: See TracChangeset for help on using the changeset viewer.