$( document ).ready(function() { // Defaults defaults = { lat: ($('#id_latitude').val()) ? $('#id_latitude').val() : parseFloat($('#map').attr("start_lat")), lng: ($('#id_longitude').val()) ? $('#id_longitude').val() : parseFloat($('#map').attr("start_lon")), zoom: $('#map').attr("start_zoom"), } // Create map var map = L.map('map', {scrollWheelZoom: false}).setView([defaults.lat,defaults.lng], defaults.zoom); L.tileLayer('//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox', maxZoom: 18 }).addTo(map); // Add scale control L.control.scale({ position: 'bottomleft', metric: true, imperial: false, maxWidth: 150 }).addTo(map); 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); map.on('click', (e) => { marker.setLatLng(e.latlng) mapUpdateCoords() }); function mapUpdateCoords() { var m = marker.getLatLng(); $('#id_latitude').val(m.lat); $('#id_longitude').val(m.lng); } // Display tiny circles on existing public points var GeoJsonPath = $('#map').data('json'); $.getJSON(GeoJsonPath, function(data){ var featureLayer = L.geoJson(data, { pointToLayer: function (feature, latlng) { return L.circleMarker(latlng, {color: '#00B300'}); } }).addTo(map); }); // Search sub form $('#search-btn').click(function(e){ e.preventDefault(); var btn = $(this).button('loading'); // Geocoding var searchString = $('#search').val(); $.getJSON('https://nominatim.openstreetmap.org/search?limit=5&format=json&q='+searchString, function(data){ var items = []; $.each(data, function(key, val) { items.push( "