source: spip-zone/_plugins_/gis/trunk/modeles/carte_gis.html @ 96673

Last change on this file since 96673 was 96673, checked in by kent1@…, 3 years ago

Permettre de passer un array d'options qui du coup sont récupérables potentiellement dans la fonction de callback par exemple via :

map.options.options.mon_option

File size: 9.1 KB
Line 
1[(#REM)
2
3Modele carte_gis
4----------------
5
6Parametres possibles :
7
8- id_map|id_carte_gis = 1          id de la carte
9- lat|latit|latitude = 48.3        latitude du centre de la carte
10- lon|lonxit|longitude = -4.7      longitude du centre de la carte
11- zoom = 5                         zoom de la carte
12- maxZoom = 13                     zoom maximum autorisé
13- minZoom = 13                     zoom minimum autorisé
14
15- default_layer = acetate                   nom de la couche affichée par défaut
16- affiche_layers = openmapsurfer/acetate    noms des couches proposées séparés par des /
17
18- sw_lat = lat - 10°               latitude du sud-ouest de la bounding box
19- sw_lon = lon - 10°               longitude du sud-ouest de la bounding box
20- ne_lat = lat + 10°               latitude du nord-est de la bounding box
21- ne_lon = lon + 10°               longitude du nord-est de la bounding box
22
23- width|largeur = 100%             largeur de la carte, 100% par defaut
24- height|hauteur = 400px           hauteur de la carte, 400px par defaut
25- style = non                      ne pas styler la carte
26
27- fullscreen = oui                     afficher un bouton pour passer la carte en plein écran
28- zoom_molette|zoom_wheel = non        désactiver le zoom avec la molette de la souris, actif par defaut
29- control_type|controle_type = non     ne pas afficher le contrôle de changement de couche
30- control_type_collapsed = non         afficher le contrôle de changement de couche replié (oui par défaut)
31- no_control|aucun_controle = oui      ne pas afficher les contrôles de la carte
32- scale = oui                          afficher l'échelle de la carte
33- overview = oui                       afficher une mini carte de situation
34
35- autocenterandzoom|centrer_auto = oui        centrer et zoomer la carte automatiquement pour afficher tous les marqueurs
36- localize_visitor|localiser_visiteur = oui   centrer la carte sur la position du visiteur (API geolocation HTML5)
37- localize_visitor_zoom = 12                  niveau de zoom sur la position du visiteur (par défaut la valeur de zoom de la carte)
38- id_a_ouvrir                                 id_gis de l'infobulle à afficher au chargement(marqueur uniquement)
39
40- objets = gis                     type d'objets à afficher (fichier json/gis_xx qui génère la source de donnees)
41- limit|limite = 500               nombre max de marqueurs à afficher, 500 par defaut
42- kml = 12                         kml à superposer à la carte (id_document ou url ou liste d'url)
43- gpx = 12                         gpx à superposer à la carte (id_document ou url ou liste d'url)
44- geojson = 12                     geojson à superposer à la carte (id_document ou url ou liste d'url)
45- topojson = 12                    topojson à superposer à la carte (id_document ou url ou liste d'url)
46- centrer_fichier = non            permet de ne pas centrer la carte automatiquement sur les fichiers kml/gpx surperposés
47- point = non                      si elle vaut "non" cette option n'affichera pas de points du tout (utile pour n'afficher qu'un kml par exemple)
48
49- media = non                      permet de passer le critère 'media' (pour les documents)
50- mots = #LISTE{1,4,7}             plugin critere {mots} http://contrib.spip.net/Critere-mots
51- path_styles=#ARRAY{color,#fff}   options de style des éléments de la couche GeoJSON (voir http://leafletjs.com/reference.html#path-options)
52- options=#ARRAY{option1,valeur1}  options ajoutées à la carte (qui peuvent être récupérées dans la fonction de callback par exemple par la suite)
53
54Uniquement si objets = point_libre :
55- icone = chemin/vers/image        image utilisée pour le marker
56- titre                            titre du point
57- description                      description du point
58
59Clustering (regroupement de points proches) :
60- cluster = oui                      Active le clustering
61- clusterMaxZoom = 11                Regroupe les points jusque à ce zoom, mais pas au delà
62- clusterShowCoverageOnHover = oui   Affiche au survol du cluster le contour de la zone couverte par les points regroupés
63- maxClusterRadius = 80              Le rayon maximal (en pixels) qu'un cluster couvrira (80 pixels par defaut)
64- clusterSpiderfyOnMaxZoom = oui     Active l'effet d'éclatement pour afficher les points qui se chevauchent
65]
66
67[(#SET{width,#ENV{width,#ENV{largeur,100%}}})]
68[(#SET{height,#ENV{height,#ENV{hauteur,400px}}})]
69[(#SET{id,#ENV{id_carte_gis,#ENV{id_map,#ENV{id,1}}}})]
70[(#REM) -- compat gis v1 -- ]
71[(#SET{lat,#ENV{lat,#ENV{latit,#ENV{latitude,#CONFIG{gis/lat,0}}}}})]
72[(#SET{lon,#ENV{lon,#ENV{lonxit,#ENV{longitude,#CONFIG{gis/lon,0}}}}})]
73[(#REM) On utilise la bounding box seulement si le centre n'a pas été donné et si les quatre valeurs de la bounding box sont renseignées
74    les valeurs par defaut sont "centre +/- 10°", ce qui est naze, mais c'est un cas normalement impossible
75]
76[(#ENV{lat}|ou{#ENV{lon}}|non|et{#ENV{sw_lat}}|et{#ENV{sw_lon}}|et{#ENV{ne_lat}}|et{#ENV{ne_lon}})
77        #SET{utiliser_bb, oui}
78        #SET{sw_lat,#ENV{sw_lat,#GET{lat}|moins{10}}}
79        #SET{sw_lon,#ENV{sw_lon,#GET{lon}|moins{10}}}
80        #SET{ne_lat,#ENV{ne_lat,#GET{lat}|plus{10}}}
81        #SET{ne_lon,#ENV{ne_lon,#GET{lon}|plus{10}}}
82]
83
84<div id="map[(#GET{id})]" class="carte_gis"[(#ENV{style}|!={'non'}|?{' '})style="[width:(#GET{width});][ height:(#GET{height});]"]></div>
85
86<script type="text/javascript">/*<!\[CDATA\[*/
87var map[(#GET{id})];
88var jQgisloader;
89(function (){
90        if (typeof jQuery.ajax == "undefined"){jQuery(init_gis);}else {init_gis();}
91        function init_gis(){
92                // Charger le javascript de GIS une seule fois si plusieurs carte
93                if (typeof jQgisloader=="undefined"){
94                        jQgisloader = jQuery.ajax({url: '[(#PRODUIRE{fond=javascript/gis.js})]', dataType: 'script', cache: true});
95                }
96                // et initialiser la carte (des que js GIS charge et des que DOM ready)
97                jQgisloader.done(function(){
98                        jQuery(function(){
99                                map[(#GET{id})] = new L.Map.Gis('map[(#GET{id})]',{
100                                        mapId: '[(#GET{id})]',
101                                        callback: (typeof(callback_map[(#GET{id})]) === "function") ? callback_map[(#GET{id})] : false,
102                                        center: [#GET{lat},#GET{lon}],
103                                        zoom: [(#ENV{zoom,#CONFIG{gis/zoom,0}})][,
104                                        maxZoom: (#ENV{maxZoom})][,
105                                        minZoom: (#ENV{minZoom})][,
106                                        default_layer: '(#ENV{default_layer})'][,
107                                        affiche_layers: (#ENV{affiche_layers}|?{[(#ENV{affiche_layers}|explode{/}|json_encode)],''})],
108                                        scrollWheelZoom: [(#ENV{zoom_molette,#ENV{zoom_wheel}}|=={non}|?{false,true})],
109                                        zoomControl: [(#ENV{no_control,#ENV{aucun_controle}}|!={oui}|?{true,false})],
110                                        fullscreenControl: [(#ENV{fullscreen}|=={oui}|?{true,false})],
111                                        scaleControl: [(#ENV{scale}|=={oui}|?{true,false})],
112                                        overviewControl:[(#ENV{overview}|=={oui}|?{true,false})],
113                                        layersControl: [(#ENV{control_type,#ENV{controle_type}}|=={non}|?{false,true})],
114                                        layersControlOptions: {
115                                                collapsed: [(#ENV{control_type_collapsed,#ENV{control_type_collapsed}}|=={non}|?{false,true})]
116                                        },
117                                        noControl: [(#ENV{no_control,#ENV{aucun_controle}}|=={oui}|?{true,false})],
118                                        utiliser_bb: [(#GET{utiliser_bb}|?{true,false})][,
119                                        sw_lat: (#GET{sw_lat})][,
120                                        ne_lat: (#GET{ne_lat})][,
121                                        sw_lon: (#GET{sw_lon})][,
122                                        ne_lon: (#GET{ne_lon})],
123                                        affiche_points: [(#ENV{point,''}|=={non}|?{false,true})],
124                                        json_points:{
125                                                url: '[(#URL_PAGE{gis_json}|url_absolue)]'[,
126                                                objets: '(#ENV{objets,#ENV{class}}|trim)'],
127                                                limit: [(#ENV{limit,#ENV{limite,500}}|trim)],
128                                                env: [(#ENV*{args,#ENV*}|gis_modele_url_json_env|json_encode)][,
129                                                titre: (#ENV{titre}|?{#ENV{titre},''}|json_encode)][,
130                                                description: (#ENV{description}|?{#ENV{description},''}|json_encode)][,
131                                                icone: (#ENV{icone}|?{#ENV{icone},''}|json_encode)]
132                                        },
133                                        cluster: [(#ENV{cluster}|=={oui}|?{true,false})],
134                                        clusterOptions: {
135                                                disableClusteringAtZoom: [(#ENV{clusterMaxZoom,0})],
136                                                showCoverageOnHover: [(#ENV{clusterShowCoverageOnHover}|?{true,false})],
137                                                spiderfyOnMaxZoom: [(#ENV{clusterSpiderfyOnMaxZoom}|?{true,false})],
138                                                maxClusterRadius: [(#ENV{maxClusterRadius,80})]
139                                        },
140                                        pathStyles: [(#ENV*{path_styles}|json_encode)],
141                                        autocenterandzoom: [(#ENV{autocenterandzoom,#ENV{centrer_auto,non}}|=={non}|?{false,true})],
142                                        openId: [(#ENV{id_a_ouvrir,false})],
143                                        localize_visitor: [(#ENV{localize_visitor,#ENV{localiser_visiteur}}|?{true,false})],
144                                        localize_visitor_zoom: [(#ENV{localize_visitor_zoom,#ENV{zoom,#CONFIG{gis/zoom,0}}})],
145                                        centrer_fichier: [(#ENV{centrer_fichier,oui}|=={oui}|?{true,false})],
146                                        kml: [(#ENV{kml,''}|?{[(#ENV{kml}|is_array|?{#ENV{kml},#LISTE{#ENV{kml}}}|gis_kml_to_urls|json_encode)],false})],
147                                        gpx: [(#ENV{gpx,''}|?{[(#ENV{gpx}|is_array|?{#ENV{gpx},#LISTE{#ENV{gpx}}}|gis_kml_to_urls|json_encode)],false})],
148                                        geojson: [(#ENV{geojson,''}|?{[(#ENV{geojson}|is_array|?{#ENV{geojson},#LISTE{#ENV{geojson}}}|gis_kml_to_urls|json_encode)],false})],
149                                        topojson: [(#ENV{topojson,''}|?{[(#ENV{topojson}|is_array|?{#ENV{topojson},#LISTE{#ENV{topojson}}}|gis_kml_to_urls|json_encode)],false})],
150                                        options: [(#ENV*{options,#ARRAY}|json_encode)]
151                                });
152                        });
153                });
154        }
155
156})()
157/*\]\]>*/
158</script>
Note: See TracBrowser for help on using the repository browser.