main.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. $( document ).ready(function() {
  2. var map = L.map('map').setView([47.218371,-1.553621], 13);
  3. var latitude = document.getElementById('latitude');
  4. var longitude = document.getElementById('longitude');
  5. L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  6. attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
  7. maxZoom: 18
  8. }).addTo(map);
  9. var marker = L.marker([47.218371,-1.553621], {
  10. draggable: true
  11. }).addTo(map);
  12. // every time the marker is dragged, update the coordinates container
  13. marker.on('dragend', ondragend);
  14. // Set the initial marker coordinate on load.
  15. ondragend();
  16. function ondragend() {
  17. var m = marker.getLatLng();
  18. latitude.value = m.lat;
  19. longitude.value = m.lng;
  20. }
  21. $('#search-btn').click(function(){
  22. var searchString = $('#search').val();
  23. $.getJSON('http://nominatim.openstreetmap.org/search?limit=5&format=json&q='+searchString, function(data){
  24. var items = [];
  25. $.each(data, function(key, val) {
  26. items.push(
  27. "<li><a href='#' data-lat='"+val.lat+"' data-lng='"+val.lon+"'>" + val.display_name + '</a></li>'
  28. );
  29. });
  30. $('#search-results').empty();
  31. if (items.length != 0) {
  32. $('<p>Resultats</p>').appendTo('#search-results');
  33. $('<ul/>').html(items.join('')).appendTo('#search-results');
  34. } else {
  35. $('<p>', { html: "No results found" }).appendTo('#search-results');
  36. }
  37. $('#search-results a').on('click', function(e){
  38. e.preventDefault();
  39. marker.setLatLng({lat:$(this).data('lat'), lng:$(this).data('lng')}).update();
  40. map.panTo({lat:$(this).data('lat'), lng:$(this).data('lng')});
  41. ondragend();
  42. });
  43. });
  44. });
  45. });