Changeset 96688 in spip-zone


Ignore:
Timestamp:
Apr 19, 2016, 5:43:46 PM (3 years ago)
Author:
kent1@…
Message:

Pouvoir utiliser une couche topojson comme fond de carte (les fichiers doivent être dans un répertoire topojson_carte/ et avoir comme extension .topojson)

Location:
_plugins_/cartes/trunk
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cartes/trunk/base/cartes.php

    r96677 r96688  
    5050                        'texte_footer'       => 'text NOT NULL DEFAULT ""',
    5151                        'layer_defaut'       => 'text NOT NULL DEFAULT ""',
     52                        'layer_topojson'     => 'text NOT NULL DEFAULT ""',
    5253                        'zoom_defaut'            => 'int(6) NOT NULL DEFAULT 0',
    5354                        'zoom_min'           => 'int(6) NOT NULL DEFAULT 0',
     
    7778                'titre' => 'titre AS titre, lang AS lang',
    7879                'date' => 'date',
    79                 'champs_editables'  => array('titre', 'texte','layer_defaut', 'zoom_defaut', 'zoom_min', 'zoom_max', 'style_carte', 'footer_carte', 'texte_footer', 'bounds','controles', 'type','lat','lon','center_points','popup'),
    80                 'champs_versionnes' => array('titre', 'texte','layer_defaut', 'zoom_defaut', 'zoom_min', 'zoom_max', 'style_carte', 'footer_carte','texte_footer', 'bounds','controles', 'type','lat','lon','center_points','popup'),
     80                'champs_editables'  => array('titre', 'texte', 'layer_defaut', 'layer_topojson', 'zoom_defaut', 'zoom_min', 'zoom_max', 'style_carte', 'footer_carte', 'texte_footer', 'bounds', 'controles', 'type', 'lat', 'lon', 'center_points', 'popup'),
     81                'champs_versionnes' => array('titre', 'texte', 'layer_defaut', 'layer_topojson', 'zoom_defaut', 'zoom_min', 'zoom_max', 'style_carte', 'footer_carte', 'texte_footer', 'bounds', 'controles', 'type', 'lat', 'lon', 'center_points', 'popup'),
    8182                'rechercher_champs' => array("titre" => 5, "texte" => 7,"texte_footer" => 4),
    8283                'tables_jointures'  => array(),
  • _plugins_/cartes/trunk/cartes_administrations.php

    r96677 r96688  
    3030        $maj['1.0.3'] = array(array('maj_tables', array('spip_cartes')));
    3131        $maj['1.0.4'] = array(array('maj_tables', array('spip_cartes')));
     32        $maj['1.0.5'] = array(array('maj_tables', array('spip_cartes')));
    3233
    3334        include_spip('base/upgrade');
  • _plugins_/cartes/trunk/formulaires/editer_carte.html

    r96683 r96688  
    3838                                defaut=#GET{layer_defaut},
    3939                                datas=#GET{layers}})]
     40                               
     41                        #SET{layers_topojson,#ARRAY}
     42                        <BOUCLE_layers_topojson(DATA){source pregfiles, #EVAL{_DIR_RACINE}, .topojson$, 5}>
     43                        [(#VALEUR|match{topojson_carte}|oui)
     44                        #SET{layers_topojson,#GET{layers_topojson}|array_merge{#ARRAY{#VALEUR|replace{'\.\./',''},#VALEUR|basename}}}]
     45                        </BOUCLE_layers_topojson>
     46                        [(#SAISIE{selection,layer_topojson,
     47                                label=<:carte:champ_layer_topojson_label:>,
     48                                option_intro=<:carte:option_aucun_layer:>,
     49                                defaut='',
     50                                datas=#GET{layers_topojson}})]
     51
    4052                        [(#SAISIE{selection,popup,
    4153                                label=<:carte:champ_popup_label:>,
  • _plugins_/cartes/trunk/lang/carte_fr.php

    r96683 r96688  
    1515        'champ_controles_label' => 'Contrôles ajoutés à la carte par défaut',
    1616        'champ_footer_carte_label' => 'Pied de la carte',
     17        'champ_layer_topojson_label' => 'Couche TopoJSON',
    1718        'champ_popup_label' => 'Affichage du contenu des POIs',
    1819        'champ_style_carte_label' => 'Style de la carte',
  • _plugins_/cartes/trunk/paquet.xml

    r96677 r96688  
    77        logo="prive/themes/spip/images/cartes-64.png"
    88        documentation=""
    9         schema="1.0.4"
     9        schema="1.0.5"
    1010>
    1111        <nom>Création de cartes</nom>
  • _plugins_/cartes/trunk/prive/objets/contenu/carte.html

    r96677 r96688  
    2020        <span dir="#LANG_DIR" class="#EDIT{layer_defaut} layer_defaut">[(#EVAL{$GLOBALS\['gis_layers'\]}|table_valeur{[(#ENV{layer_defaut,[(#LAYER_DEFAUT|sinon{[(#CONFIG{gis/layer_defaut,openstreetmap_mapnik})]})]/nom})]})]</span>
    2121        [(#INCLURE{fond=modeles/carte_gis_preview,lat=[(#LAT|sinon{0})],lon=[(#LAT|sinon{0})],zoom=1,layer_defaut=[(#LAYER_DEFAUT|sinon{[(#CONFIG{gis/layer_defaut,openstreetmap_mapnik})]})],id_map=layer_defaut})]
     22</div>
     23
     24<div class="champ contenu_layer_topojson[ (#LAYER_TOPOJSON*|strlen|?{'',vide})]">
     25        <label><:carte:champ_layer_topojson_label:> : </label>
     26        <span dir="#LANG_DIR" class="#EDIT{layer_topojson} layer_topojson">[(#LAYER_TOPOJSON|basename)]</span>
    2227</div>
    2328
  • _plugins_/cartes/trunk/squelettes/carte.html

    r96678 r96688  
    5454                [(#SET{layer_defaut,[(#LAYER_DEFAUT|sinon{[(#CONFIG{gis/layer_defaut,openstreetmap_mapnik})]})]})]
    5555                [(#SET{options,#ARRAY{popup,#POPUP}})]
     56                [(#LAYER_TOPOJSON|oui)
     57                        [(#SET{options,[(#GET{options}|array_merge{[(#ARRAY{layer_topojson,[(#CHEMIN{#LAYER_TOPOJSON})]})]})]})]]
    5658                [(#MODELE{carte_gis,
    5759                        autocenterandzoom=#GET{autocenterandzoom},
  • _plugins_/cartes/trunk/squelettes/css_carte/carte.css

    r96677 r96688  
    162162
    163163.info.leaflet-popup-content-wrapper{
    164         width:28vw;
     164        width:33vw;
    165165}
     166
     167.info.leaflet-popup-content-wrapper strong{
     168        color:#d40000;
     169        font-size:1.4em;
     170        font-weight:normal;
     171}
     172.carte_gis{
     173        background:#474747;
     174}
     175
     176.country{
     177        fill:#737473;
     178        stroke:#737473;
     179        stroke-width:1;
     180        fill-opacity:1;
     181        stroke-opacity:0;
     182}
     183
     184.country-sy,.country-iq{
     185        fill:#b0b0b0;
     186        stroke-width:2;
     187        stroke-opacity:1;
     188}
     189
     190.popupcountry .leaflet-popup-content-wrapper{
     191        text-align:center;
     192}
  • _plugins_/cartes/trunk/squelettes/js_carte/carte.js

    r96685 r96688  
    1515}
    1616
     17var country_min_topojson_addlayer = function(e){
     18    e.layer.eachLayer(function(dist){
     19        var iso = dist.toGeoJSON().properties.ISO2.toLowerCase();
     20        dist.bindPopup("<strong>"+dist.toGeoJSON().properties.NAME_FR+"</strong>",{closeButton:false,className:'popupcountry'});
     21        if(dist.options){
     22                dist.options.className = 'country country-'+iso;
     23        }else {
     24                dist.eachLayer(function (dist2) {
     25                        dist2.options.className = 'country country-'+iso;
     26                });
     27        }
     28    });
     29}
    1730$(document).ready(function () {
    1831        $(window).on('resize', function () {
     
    5568                                        if(layer._popup && layer._popup._content){
    5669                                                info.update(layer._popup._content);
     70                                                map1.closePopup();
    5771                                                map1.panTo(e.latlng)
    5872                                                return false;
     
    6074                                });
    6175                        });
     76                        map1.on('popupopen',function(){
     77                                info.update();
     78                        })
     79                }
     80                if(typeof map1 != 'undefined' && map1.options.options && map1.options.options.layer_topojson){
     81                        var topojson_layer = new L.TOPOJSON(map1.options.options.layer_topojson, {async: true}),
     82                                fichier_topojson = map1.options.options.layer_topojson.replace(/^.*[\\\/]/, '').replace(/\./g,'_'),
     83                                addlayer = fichier_topojson+'_addlayer';
     84                        if(typeof window[addlayer] == 'function'){
     85                        topojson_layer.on('addlayer',function(e){
     86                                eval(eval(addlayer)(e));
     87                        });
     88                        }
     89                        map1.addLayer(topojson_layer);
    6290                }
    6391        });
Note: See TracChangeset for help on using the changeset viewer.