$( document ).ready(function() {
// Defaults
defaults = {
lat: ($('#latitude').val()) ? $('#latitude').val() : 47.218371,
lng: ($('#longitude').val()) ? $('#longitude').val() : -1.553621,
zoom: 13,
}
// Create map
var map = L.map('map').setView([defaults.lat,defaults.lng], defaults.zoom);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox',
maxZoom: 18
}).addTo(map);
// Create marker
var marker = L.marker([defaults.lat,defaults.lng], {
draggable: true
}).addTo(map);
// every time the marker is dragged, update the coordinates container
marker.on('dragend', mapUpdateCoords);
// Set the initial marker coordinate on load.
mapUpdateCoords();
function mapUpdateCoords() {
var m = marker.getLatLng();
$('#latitude').val(m.lat);
$('#longitude').val(m.lng);
}
// Search sub form
$('#search-btn').click(function(e){
e.preventDefault();
var btn = $(this).button('loading');
// Geocoding
var searchString = $('#search').val();
$.getJSON('http://nominatim.openstreetmap.org/search?limit=5&format=json&q='+searchString, function(data){
var items = [];
$.each(data, function(key, val) {
items.push(
"
" + val.display_name + ''
);
});
$('#modal .modal-body').empty();
if (items.length != 0) {
$('').addClass("list-group").html(items.join('')).appendTo('#modal .modal-body');
} else {
$('', { html: "Aucun résultat" }).appendTo('#modal .modal-body');
}
$('#modal').modal('show');
// Bind click on results and update coordinates
$('#modal .modal-body a').on('click', function(e){
e.preventDefault();
marker.setLatLng({lat:$(this).data('lat'), lng:$(this).data('lng')}).update();
map.panTo({lat:$(this).data('lat'), lng:$(this).data('lng')});
mapUpdateCoords();
$('#modal').modal('hide');
});
btn.button('reset');
}); // getJSON
}); // Search sub form
// Enter key on search form does not submit form,
// Trigger search button instead.
$('#search').keypress(function(e) {
if (e.which == '13') {
e.preventDefault();
$('#search-btn').trigger('click');
}
});
// Contrib share dynamic form
if ($('[name="contrib-type"]:checked').val() == 'share') { $('#contrib-type-share').show(); }
else { $('#contrib-type-share').hide(); }
// On change
$('[name="contrib-type"]').change(function(e){
if ($(this).val() == 'share') { $('#contrib-type-share').slideDown(); }
else { $('#contrib-type-share').slideUp(); }
});
});