<form method="post" action="#ENV{action}"><div>
#ACTION_FORMULAIRE{#ENV{action}}
- <ul>
+ <[(#VAL{ul}|saisie_balise_structure_formulaire)] class="editer-groupe">
+ <[(#VAL{li}|saisie_balise_structure_formulaire)] class="rechercher_adresse editer editer_map_config">
+ <label for="champ_map_config_geocoder"><:gis:label_rechercher_address:></label>
+ <input type="text" class="text" name="champ_map_config_geocoder" id="champ_map_config_geocoder" value="" />
+ <a id="map_config_rechercher_geocodage"><:info_rechercher:></a>
+ </[(#VAL{li}|saisie_balise_structure_formulaire)]>
[(#SAISIE{input,lat,
label=<:gis:lat:>,
defaut=0,
label=<:gis:cfg_lbl_api_key_bing:>,
explication=<:gis:cfg_inf_bing{url=https://www.bingmapsportal.com/}:>,
size=40})]
+
+ [(#SAISIE{input,api_key_google,
+ label=<:gis:cfg_lbl_api_key_google:>,
+ explication=<:gis:cfg_inf_google{url=https://developers.google.com/maps/documentation/javascript/get-api-key}:>,
+ size=40})]
[(#SAISIE{oui_non,geocoder,
defaut='',
label=<:gis:cfg_lbl_adresse:>,
explication=<:gis:cfg_inf_adresse:>})]
+ [(#PLUGIN{gisgeom}|oui)
+ [(#SAISIE{oui_non,styles,
+ defaut='',
+ label=<:gis:cfg_lbl_styles:>,
+ explication=<:gis:cfg_inf_styles:>})]
+ ]
+
[(#SAISIE{oui_non,geolocaliser_user_html5,
defaut='',
label=<:gis:cfg_lbl_geolocaliser_user_html5:>,
label=<:gis:cfg_lbl_activer_objets:>,
exclus=spip_gis})]
- </ul>
+ [(#SAISIE{selection_multiple,plugins_desactives,
+ cacher_option_intro=oui,
+ label=<:gis:cfg_lbl_plugins_desactives:>,
+ explication=<:gis:explication_plugins_desactives:>,
+ multiple=oui,
+ size=6,
+ datas=#ARRAY{
+ 'KML.js','KML.js',
+ 'GPX.js','GPX.js',
+ 'TOPOJSON.js','TOPOJSON.js',
+ 'Control.FullScreen.js','Control.FullScreen.js',
+ 'Control.MiniMap.js','Control.MiniMap.js',
+ 'leaflet.markercluster-src.js','leaflet.markercluster-src.js'
+ }})]
+ </[(#VAL{ul}|saisie_balise_structure_formulaire)]>
<p class="boutons">
</div></form>
<script type="text/javascript">
-<!---
+/*<![CDATA[*/
+
(function($){
+ var map, map_container = 'map_config', geocoder, marker;
- var maj_inputs = function(map,pos) {
- var zoom = map.getZoom();
- $("#champ_lat").val(pos.lat);
- $("#champ_lon").val(pos.lng);
- $("#champ_zoom").val(zoom);
+ var maj_inputs = function(map,pos,action) {
+ if(action == 'click'){
+ var zoom = map.getZoom();
+ $("#champ_lat").val(pos.lat);
+ $("#champ_lon").val(pos.lng);
+ $("#champ_zoom").val(zoom);
+ annuler_geocoder = 1;
+ }else if(annuler_geocoder != 1){
+ if(pos.point == 'undefined'){
+ $('#champ_#ENV{champ_lat,lat}').val(pos.lat);
+ $('#champ_#ENV{champ_lon,lon}').val(pos.lng);
+ map.panTo(pos);
+ marker.setLatLng(pos);
+ }else{
+ $('#champ_#ENV{champ_lat,lat}').val(pos.point.lat);
+ $('#champ_#ENV{champ_lon,lon}').val(pos.point.lng);
+ map.panTo(pos.point);
+ marker.setLatLng(pos.point);
+ }
+ }
}
+ function geocode(query) {
+ if(!query.error)
+ maj_inputs(map,query,'geocoding');
+ else{
+ if(query.search == 'undefined'){
+ alert('<:gis:erreur_geocoder:>\n'+query.search);
+ }else{
+ alert('<:gis:erreur_geocoder:>');
+ }
+ }
+ }
+
var init_config = function() {
- var map;
- var map_container = 'map_config';
map = new L.Map(map_container);
map.attributionControl.setPrefix('');
</B_layers>
map.setView(new L.LatLng(#ENV{lat,0},#ENV{lon,0}),#ENV{zoom,0});
-
- var marker = new L.Marker(new L.LatLng(#ENV{lat,0},#ENV{lon,0}));
+
+ marker = new L.Marker(new L.LatLng(#ENV{lat,0},#ENV{lon,0}));
map.addLayer(marker);
+ geocoder = new L.Geocoder(geocode,{acceptLanguage:'#ENV{lang}'});
+
// mettre a jour les coordonnees quand on clique la carte
map.on('click', function(e) {
+ annuler_geocoder = 0;
marker.setLatLng(e.latlng);
map.panTo(e.latlng);
- maj_inputs(map,e.latlng);
+ maj_inputs(map,e.latlng,'click');
+ });
+
+ // geocoder si clic...
+ $('a#map_config_rechercher_geocodage').css("cursor","pointer").click(function(){
+ var address = $("#champ_map_config_geocoder").val();
+ annuler_geocoder = 0;
+ geocoder.geocode(address);
+ });
+
+ // ne pas soumettre le formulaire si on presse Entree depuis le champ de recherche
+ $('#champ_map_config_geocoder').keypress(function(e){
+ if (e.which == 13) {
+ $('a#map_config_rechercher_geocodage').trigger("click");
+ return false;
+ }
});
// mettre à jour le zoom quand on le modifie
map.on('zoomend', function(e) {
$("#champ_zoom").val(e.target._zoom);
});
-
}
$(function(){
- jQuery.getScript('[(#PRODUIRE{fond=javascript/gis.js}|compacte)]',function(){
+ jQuery.getScript('[(#PRODUIRE{fond=javascript/gis.js})]',function(){
init_config();
});
//onAjaxLoad(init_config);
});
})(jQuery);
--->
+/*]]>*/
</script>
</div>