[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / gis / modeles / carte_gis.html
1 [(#REM)
2
3 Modele carte_gis
4 ----------------
5
6 Parametres 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, "none" si on ne souhaite pas affiche de couche spécifique
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 - langue = null langue des objets à récupérer (utile pour les multis notamment)
43 - tooltip = oui affiche un tooltip sur les points
44 - kml = 12 kml à superposer à la carte (id_document ou url ou liste d'url)
45 - gpx = 12 gpx à superposer à la carte (id_document ou url ou liste d'url)
46 - geojson = 12 geojson à superposer à la carte (id_document ou url ou liste d'url)
47 - topojson = 12 topojson à superposer à la carte (id_document ou url ou liste d'url)
48 - centrer_fichier = non permet de ne pas centrer la carte automatiquement sur les fichiers kml/gpx surperposés
49 - point = non si elle vaut "non" cette option n'affichera pas de points du tout (utile pour n'afficher qu'un kml par exemple)
50
51 - media = non permet de passer le critère 'media' (pour les documents)
52 - mots = #LISTE{1,4,7} plugin critere {mots} https://contrib.spip.net/Critere-mots
53 - path_styles=#ARRAY{color,#fff} options de style des éléments de la couche GeoJSON (voir http://leafletjs.com/reference.html#path-options)
54 - 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)
55
56 Uniquement si objets = point_libre :
57 - icone = chemin/vers/image image utilisée pour le marker
58 - titre titre du point
59 - description description du point
60
61 Clustering (regroupement de points proches) :
62 - cluster = oui Active le clustering
63 - clusterMaxZoom = 11 Regroupe les points jusque à ce zoom, mais pas au delà
64 - clusterShowCoverageOnHover = oui Affiche au survol du cluster le contour de la zone couverte par les points regroupés
65 - maxClusterRadius = 80 Le rayon maximal (en pixels) qu'un cluster couvrira (80 pixels par defaut)
66 - clusterSpiderfyOnMaxZoom = oui Active l'effet d'éclatement pour afficher les points qui se chevauchent
67 - singleMarkerMode = oui Utilise les icones de cluster pour tous les points (même ceux qui ne sont pas dans un cluster)
68 ]
69
70 [(#SET{width,#ENV{width,#ENV{largeur,100%}}})]
71 [(#SET{height,#ENV{height,#ENV{hauteur,400px}}})]
72 [(#SET{id,#ENV{id_carte_gis,#ENV{id_map,#ENV{id,1}}}})]
73 [(#REM) -- compat gis v1 -- ]
74 [(#SET{lat,#ENV{lat,#ENV{latit,#ENV{latitude,#CONFIG{gis/lat,0}}}}})]
75 [(#SET{lon,#ENV{lon,#ENV{lonxit,#ENV{longitude,#CONFIG{gis/lon,0}}}}})]
76 [(#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
77 les valeurs par defaut sont "centre +/- 10°", ce qui est naze, mais c'est un cas normalement impossible
78 ]
79 #SET{utiliser_bb, ''}
80 [(#ENV{lat}|ou{#ENV{lon}}|non|et{#ENV{sw_lat}}|et{#ENV{sw_lon}}|et{#ENV{ne_lat}}|et{#ENV{ne_lon}})
81 #SET{utiliser_bb, oui}
82 #SET{sw_lat,#ENV{sw_lat,#GET{lat}|moins{10}}}
83 #SET{sw_lon,#ENV{sw_lon,#GET{lon}|moins{10}}}
84 #SET{ne_lat,#ENV{ne_lat,#GET{lat}|plus{10}}}
85 #SET{ne_lon,#ENV{ne_lon,#GET{lon}|plus{10}}}
86 ]
87
88 <div id="map[(#GET{id})]" class="carte_gis"[(#ENV{style}|!={'non'}|?{' '})style="[width:(#GET{width});][ height:(#GET{height});]"]></div>
89
90 <script type="text/javascript">/*<!\[CDATA\[*/
91 var map[(#GET{id})];
92 var jQgisloader;
93 (function (){
94 if (typeof jQuery.ajax == "undefined"){jQuery(init_gis);}else {init_gis();}
95 function init_gis(){
96 // Charger le javascript de GIS une seule fois si plusieurs carte
97 if (typeof jQgisloader=="undefined"){
98 jQgisloader = jQuery.ajax({url: '[(#PRODUIRE{fond=javascript/gis.js})]', dataType: 'script', cache: true});
99 }
100 // et initialiser la carte (des que js GIS charge et des que DOM ready)
101 jQgisloader.done(function(){
102 jQuery(function(){
103 map[(#GET{id})] = new L.Map.Gis('map[(#GET{id})]',{
104 mapId: '[(#GET{id})]',
105 callback: (typeof(callback_map[(#GET{id})]) === "function") ? callback_map[(#GET{id})] : false,
106 center: [#GET{lat},#GET{lon}],
107 zoom: [(#ENV{zoom,#CONFIG{gis/zoom,0}}|trim)][,
108 maxZoom: (#ENV{maxZoom}|trim)][,
109 minZoom: (#ENV{minZoom}|trim)][,
110 default_layer: '(#ENV{default_layer}|trim)'][,
111 affiche_layers: (#ENV{affiche_layers}|trim|?{[(#ENV{affiche_layers}|trim|explode{/}|json_encode)],''})],
112 scrollWheelZoom: [(#ENV{zoom_molette,#ENV{zoom_wheel}}|trim|=={non}|?{false,true})],
113 zoomControl: [(#ENV{no_control,#ENV{aucun_controle}}|trim|!={oui}|?{true,false})],
114 fullscreenControl: [(#ENV{fullscreen}|trim|=={oui}|?{true,false})],
115 scaleControl: [(#ENV{scale}|trim|=={oui}|?{true,false})],
116 overviewControl:[(#ENV{overview}|trim|=={oui}|?{true,false})],
117 layersControl: [(#ENV{control_type,#ENV{controle_type}}|trim|=={non}|?{false,true})],
118 layersControlOptions: {
119 collapsed: [(#ENV{control_type_collapsed,#ENV{control_type_collapsed}}|trim|=={non}|?{false,true})]
120 },
121 noControl: [(#ENV{no_control,#ENV{aucun_controle}}|trim|=={oui}|?{true,false})],
122 utiliser_bb: [(#GET{utiliser_bb}|?{true,false})][,
123 sw_lat: (#GET{sw_lat})][,
124 ne_lat: (#GET{ne_lat})][,
125 sw_lon: (#GET{sw_lon})][,
126 ne_lon: (#GET{ne_lon})],
127 affiche_points: [(#ENV{point,''}|=={non}|?{false,true})][,
128 langue:'(#ENV{langue})'],
129 json_points:{
130 url: '[(#URL_PAGE{gis_json}|parametre_url{lang,#ENV{langue},&}|url_absolue)]'[,
131 objets: '(#ENV{objets,#ENV{class}}|trim)'],
132 limit: [(#ENV{limit,#ENV{limite,500}}|trim)],
133 env: [(#ENV*{args,#ENV*}|gis_modele_url_json_env|json_encode)][,
134 titre: (#ENV{titre}|?{#ENV{titre},''}|trim|json_encode)][,
135 description: (#ENV{description}|?{#ENV{description},''}|trim|json_encode)][,
136 icone: (#ENV{icone}|?{#ENV{icone},''}|trim|json_encode)]
137 },
138 tooltip: [(#ENV{tooltip}|=={oui}|?{true,false})],
139 cluster: [(#ENV{cluster}|=={oui}|?{true,false})],
140 clusterOptions: {
141 disableClusteringAtZoom: [(#ENV{clusterMaxZoom,0})],
142 showCoverageOnHover: [(#ENV{clusterShowCoverageOnHover}|?{true,false})],
143 spiderfyOnMaxZoom: [(#ENV{clusterSpiderfyOnMaxZoom}|?{true,false})],
144 maxClusterRadius: [(#ENV{maxClusterRadius,80})],
145 singleMarkerMode: [(#ENV{singleMarkerMode}|?{true,false})]
146 },
147 pathStyles: [(#ENV*{path_styles}|json_encode)],
148 autocenterandzoom: [(#ENV{autocenterandzoom,#ENV{centrer_auto,non}}|trim|=={non}|?{false,true})],
149 openId: [(#ENV{id_a_ouvrir,false})],
150 localize_visitor: [(#ENV{localize_visitor,#ENV{localiser_visiteur}}|trim|?{true,false})],
151 localize_visitor_zoom: [(#ENV{localize_visitor_zoom,#ENV{zoom,#CONFIG{gis/zoom,0}}}|trim)],
152 centrer_fichier: [(#ENV{centrer_fichier,oui}|trim|=={oui}|?{true,false})],
153 kml: [(#ENV{kml,''}|?{[(#ENV{kml}|gis_param_to_array|gis_kml_to_urls|json_encode)],false})],
154 gpx: [(#ENV{gpx,''}|?{[(#ENV{gpx}|gis_param_to_array|gis_kml_to_urls|json_encode)],false})],
155 geojson: [(#ENV{geojson,''}|?{[(#ENV{geojson}|gis_param_to_array|gis_kml_to_urls|json_encode)],false})],
156 topojson: [(#ENV{topojson,''}|?{[(#ENV{topojson}|gis_param_to_array|gis_kml_to_urls|json_encode)],false})],
157 options: [(#ENV*{options,#ARRAY}|json_encode)]
158 });
159 });
160 });
161 }
162
163 })()
164 /*\]\]>*/
165 </script>