1 <div class=
"formulaire_spip formulaire_configurer formulaire_configurer_gis">
3 [
<p class=
"reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})
</p>]
4 [
<p class=
"reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})
</p>]
6 <div id=
"map_config" class=
"carte_gis" style=
"width: 100%; height: 370px"></div>
8 <form method=
"post" action=
"#ENV{action}"><div>
9 #ACTION_FORMULAIRE{#ENV{action}}
26 <BOUCLE_layer(DATA){source table, #EVAL{$GLOBALS['gis_layers']}}
>
27 #SET{layers,#GET{layers}|array_merge{#ARRAY{#CLE,#VALEUR|table_valeur{nom}}}}
30 [(#SET{layer_defaut,openstreetmap_mapnik})]
31 [(#VAL{_GIS_LAYER_DEFAUT}|defined|oui)
32 [(#SET{layer_defaut,[(#EVAL{_GIS_LAYER_DEFAUT})]})]
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:>})]
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},
50 [(#SAISIE{selection_multiple,layers,
51 label=
<:gis:cfg_lbl_layers:>,
52 cacher_option_intro=oui,
53 defaut=#GET{layer_defaut},
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/}:
>,
61 [(#SAISIE{oui_non,geocoder,
63 label=
<:gis:cfg_lbl_geocoder:>,
64 explication=
<:gis:cfg_inf_geocoder:>})]
66 [(#SAISIE{oui_non,adresse,
68 label=
<:gis:cfg_lbl_adresse:>,
69 explication=
<:gis:cfg_inf_adresse:>})]
71 [(#SAISIE{oui_non,geolocaliser_user_html5,
73 label=
<:gis:cfg_lbl_geolocaliser_user_html5:>,
74 explication=
<:gis:cfg_inf_geolocaliser_user_html5:>})]
76 [(#SAISIE{choisir_objets,gis_objets,
77 label=
<:gis:cfg_lbl_activer_objets:>,
84 <input type=
"submit" name=
"_cfg_ok" class=
"submit" value=
"<:bouton_enregistrer:>" />
88 <script type=
"text/javascript">
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);
99 var init_config = function() {
101 var map_container = 'map_config';
102 map = new L.Map(map_container);
104 map.attributionControl.setPrefix('');
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})]);
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})]");]
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');
123 map.setView(new L.LatLng(#ENV{lat,0},#ENV{lon,0}),#ENV{zoom,0});
125 var marker = new L.Marker(new L.LatLng(#ENV{lat,0},#ENV{lon,0}));
126 map.addLayer(marker);
128 // mettre a jour les coordonnees quand on clique la carte
129 map.on('click', function(e) {
130 marker.setLatLng(e.latlng);
132 maj_inputs(map,e.latlng);
135 // mettre à jour le zoom quand on le modifie
136 map.on('zoomend', function(e) {
137 $("#champ_zoom").val(e.target._zoom);
143 jQuery.getScript('[(#PRODUIRE{fond=javascript/gis.js}|compacte)]',function(){
146 //onAjaxLoad(init_config);