viewmap.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. RapportoMarker = L.Circle.extend({ options: { originalData: 0 } });
  2. function viewMap() {
  3. var map = L.map('mapid').setView([43.797, 11.2400], 11);
  4. // Set up the OSM layer
  5. L.tileLayer(
  6. 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
  7. ).addTo(map);
  8. $.getJSON('/api/rapporti/get', function(data) {
  9. for(var i in data.rapporti) {
  10. var p = data.rapporti[i]
  11. var marker = new RapportoMarker([p.lat, p.lng], {
  12. color: p.colore,
  13. fillColor:p.colore,
  14. fillOpacity: 0.3,
  15. radius: p.radius,
  16. originalData: p,
  17. })
  18. marker.addTo(map).bindPopup(p.explaination)
  19. marker.off('click')
  20. marker.on('click', onMarkerClicked)
  21. }
  22. })
  23. function onMarkerClicked(evt) {
  24. console.log('T', this)
  25. var data = evt.target.options.originalData
  26. var rid = data.rid
  27. $('#dialog').html('<div class="explaination"></div><div class="actions"></div>')
  28. $('#dialog .explaination').text(data.explaination)
  29. $('#dialog .actions').html('<button class="btn-elimina">Elimina</button>')
  30. $('#dialog').attr('title', rid)
  31. $('#dialog').data('rid', rid)
  32. $('#dialog').data('marker', this)
  33. $('#dialog').dialog({
  34. modal: true,
  35. beforeClose: function(event, ui) {
  36. $('#dialog').dialog('destroy')
  37. $('#dialog')[0].outerHTML = '<div id="dialog"></div>'
  38. }
  39. })
  40. }
  41. $('body').on('click', '.btn-elimina', function onCancella(evt) {
  42. var rid = $('#dialog').data('rid')
  43. console.log('cancelliamo?', rid)
  44. $.post('/api/rapporti/delete', {rid: rid}, function() {
  45. map.removeLayer($('#dialog').data('marker'))
  46. $('#dialog').dialog('close')
  47. })
  48. })
  49. }
  50. jQuery(function($) {
  51. $('#mapid').css('height', $(window).height() - 200)
  52. viewMap()
  53. })