[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / gis / formulaires / configurer_gis.html
1 <div class="formulaire_spip formulaire_configurer formulaire_configurer_gis">
2
3 [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
4 [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
5
6 <div id="map_config" class="carte_gis" style="width: 100%; height: 370px"></div>
7
8 <form method="post" action="#ENV{action}"><div>
9 #ACTION_FORMULAIRE{#ENV{action}}
10 <ul>
11 [(#SAISIE{input,lat,
12 label=<:gis:lat:>,
13 defaut=0,
14 size=40})]
15 [(#SAISIE{input,lon,
16 label=<:gis:lon:>,
17 defaut=0,
18 size=40})]
19 [(#SAISIE{input,zoom,
20 label=<:gis:zoom:>,
21 defaut=0,
22 size=2,
23 maxlength=2})]
24
25 #SET{layers,#ARRAY}
26 <BOUCLE_layer(DATA){source table, #EVAL{$GLOBALS['gis_layers']}}>
27 #SET{layers,#GET{layers}|array_merge{#ARRAY{#CLE,#VALEUR|table_valeur{nom}}}}
28 </BOUCLE_layer>
29
30 [(#SET{layer_defaut,openstreetmap_mapnik})]
31 [(#VAL{_GIS_LAYER_DEFAUT}|defined|oui)
32 [(#SET{layer_defaut,[(#EVAL{_GIS_LAYER_DEFAUT})]})]
33 ]
34 [(#VAL{_GIS_LAYER_DEFAUT_FORCE}|defined|oui)
35 [(#SET{layer_readonly,readonly})]
36 [(#SET{layer_disable,disabled})]
37 [(#SET{layer_forcee,[(#EVAL{_GIS_LAYER_DEFAUT_FORCE})]})]
38 [(#SET{layer_explications,<:gis:explication_layer_forcee:>})]
39 ]
40 [(#SAISIE{selection,layer_defaut,
41 label=<:gis:cfg_lbl_layer_defaut:>,
42 cacher_option_intro=oui,
43 defaut=#GET{layer_defaut},
44 valeur_forcee=#GET{layer_forcee},
45 readonly=#GET{layer_readonly},
46 disable=#GET{layer_disable},
47 explication=#GET{layer_explications},
48 datas=#GET{layers}})]
49
50 [(#SAISIE{selection_multiple,layers,
51 label=<:gis:cfg_lbl_layers:>,
52 cacher_option_intro=oui,
53 defaut=#GET{layer_defaut},
54 datas=#GET{layers}})]
55
56 [(#SAISIE{input,api_key_bing,
57 label=<:gis:cfg_lbl_api_key_bing:>,
58 explication=<:gis:cfg_inf_bing{url=https://www.bingmapsportal.com/}:>,
59 size=40})]
60
61 [(#SAISIE{oui_non,geocoder,
62 defaut='',
63 label=<:gis:cfg_lbl_geocoder:>,
64 explication=<:gis:cfg_inf_geocoder:>})]
65
66 [(#SAISIE{oui_non,adresse,
67 defaut='',
68 label=<:gis:cfg_lbl_adresse:>,
69 explication=<:gis:cfg_inf_adresse:>})]
70
71 [(#SAISIE{oui_non,geolocaliser_user_html5,
72 defaut='',
73 label=<:gis:cfg_lbl_geolocaliser_user_html5:>,
74 explication=<:gis:cfg_inf_geolocaliser_user_html5:>})]
75
76 [(#SAISIE{choisir_objets,gis_objets,
77 label=<:gis:cfg_lbl_activer_objets:>,
78 exclus=spip_gis})]
79
80 </ul>
81
82
83 <p class="boutons">
84 <input type="submit" name="_cfg_ok" class="submit" value="<:bouton_enregistrer:>" />
85 </p>
86 </div></form>
87
88 <script type="text/javascript">
89 <!---
90 (function($){
91
92 var maj_inputs = function(map,pos) {
93 var zoom = map.getZoom();
94 $("#champ_lat").val(pos.lat);
95 $("#champ_lon").val(pos.lng);
96 $("#champ_zoom").val(zoom);
97 }
98
99 var init_config = function() {
100 var map;
101 var map_container = 'map_config';
102 map = new L.Map(map_container);
103
104 map.attributionControl.setPrefix('');
105
106 //default layer
107 #SET{layer_defaut,#REM|gis_layer_defaut} #SET{layers,#EVAL{$GLOBALS['gis_layers']}}
108 var [(#GET{layer_defaut})] = [new (#GET{layers}|table_valeur{#GET{layer_defaut}/layer})];
109 map.addLayer([(#GET{layer_defaut})]);
110
111 <B_layers>
112 var layers_control = new L.Control.Layers();
113 layers_control.addBaseLayer([(#GET{layer_defaut})],["(#GET{layers}|table_valeur{#GET{layer_defaut}/nom})"]);
114 <BOUCLE_layers(DATA){source table, #GET{layers}}{si #ENV{control_type,#ENV{controle_type}}|!={non}|et{#ENV{no_control,#ENV{aucun_controle}}|!={oui}}|et{#CONFIG{gis/layers,#ARRAY}|count|>{1}|oui}|oui}>[
115 (#CLE|!={#GET{layer_defaut}}|oui|et{#CLE|in_array{#CONFIG{gis/layers,#ARRAY}}|oui}|oui)
116 layers_control.addBaseLayer([new (#VALEUR|table_valeur{layer})],"[(#VALEUR|table_valeur{nom})]");]
117 </BOUCLE_layers>
118 map.addControl(layers_control);
119 // classe noajax sur le layer_control pour éviter l'ajout de hidden par SPIP
120 $(layers_control._form).addClass('noajax');
121 </B_layers>
122
123 map.setView(new L.LatLng(#ENV{lat,0},#ENV{lon,0}),#ENV{zoom,0});
124
125 var marker = new L.Marker(new L.LatLng(#ENV{lat,0},#ENV{lon,0}));
126 map.addLayer(marker);
127
128 // mettre a jour les coordonnees quand on clique la carte
129 map.on('click', function(e) {
130 marker.setLatLng(e.latlng);
131 map.panTo(e.latlng);
132 maj_inputs(map,e.latlng);
133 });
134
135 // mettre à jour le zoom quand on le modifie
136 map.on('zoomend', function(e) {
137 $("#champ_zoom").val(e.target._zoom);
138 });
139
140 }
141
142 $(function(){
143 jQuery.getScript('[(#PRODUIRE{fond=javascript/gis.js}|compacte)]',function(){
144 init_config();
145 });
146 //onAjaxLoad(init_config);
147 });
148
149 })(jQuery);
150 -->
151 </script>
152 </div>