main.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. $( document ).ready(function() {
  2. // Create map
  3. var map = L.map('map').setView([47.218371,-1.553621], 13);
  4. L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  5. 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>',
  6. maxZoom: 18
  7. }).addTo(map);
  8. // Create marker
  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 sub form
  22. $('#search-btn').click(function(e){
  23. e.preventDefault();
  24. // Geocoding
  25. var searchString = $('#search').val();
  26. $.getJSON('http://nominatim.openstreetmap.org/search?limit=5&format=json&q='+searchString, function(data){
  27. var items = [];
  28. $.each(data, function(key, val) {
  29. items.push(
  30. "<li class='list-group-item'><a href='#' data-lat='"+val.lat+"' data-lng='"+val.lon+"'>" + val.display_name + '</a></li>'
  31. );
  32. });
  33. $('#search-results').empty();
  34. if (items.length != 0) {
  35. // $('<p>Resultats</p>').appendTo('#search-results');
  36. $('<ul/>').addClass("list-group").html(items.join('')).appendTo('#search-results');
  37. } else {
  38. $('<p>', { html: "No results found" }).appendTo('#search-results');
  39. }
  40. // Bind click on results and update coordinates
  41. $('#search-results a').on('click', function(e){
  42. e.preventDefault();
  43. marker.setLatLng({lat:$(this).data('lat'), lng:$(this).data('lng')}).update();
  44. map.panTo({lat:$(this).data('lat'), lng:$(this).data('lng')});
  45. ondragend();
  46. });
  47. }); // getJSON
  48. }); // Search sub form
  49. // Contrib share dynamic form
  50. $('#contrib-type-share').hide();
  51. $('[name="contrib-type"').change(function(e){
  52. console.log($(this).val());
  53. if ($(this).val() == 'share') {
  54. $('#contrib-type-share').slideDown();
  55. }
  56. else {
  57. $('#contrib-type-share').slideUp();
  58. }
  59. });
  60. });