addmap.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /* globals $, jQuery, L */
  2. function viewMap () {
  3. var map = L.map('mapid').setView([43.797, 11.2400], 11)
  4. // Set up the OSM layer
  5. L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map)
  6. $.getJSON('/api/rapporti/get', function (data) {
  7. for (var i in data.rapporti) {
  8. var p = data.rapporti[i]
  9. L.circle([p.lat, p.lng], {
  10. color: p.colore,
  11. fillColor: p.colore,
  12. fillOpacity: 0.2,
  13. opacity: 0.7,
  14. radius: p.radius
  15. }).addTo(map)
  16. }
  17. })
  18. function addPointToDb (dati) {
  19. $.post('/api/rapporti/add', dati
  20. , function (p) {
  21. L.circle([p.lat, p.lng], {
  22. color: p.colore,
  23. fillColor: p.colore,
  24. fillOpacity: 0.5,
  25. radius: p.radius
  26. }).addTo(map)
  27. })
  28. }
  29. function onFormSubmit () {
  30. addPointToDb({
  31. lat: $('#pointform input[name=lat]').val(),
  32. lng: $('#pointform input[name=lng]').val(),
  33. stabilita: $('#pointform select[name=stabilita]').val(),
  34. tiporadio: $('#pointform select[name=tiporadio]').val(),
  35. indirizzo: $('#pointform input[name=indirizzo]').val(),
  36. comprensibile: $('#pointform select[name=comprensibile]').val()
  37. })
  38. $('#pointform').addClass('hidden')
  39. return false
  40. }
  41. function onMapClick (e) {
  42. $('#pointform').addClass('hidden')
  43. $.ajax('https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=' + e.latlng.lat + '&lon=' + e.latlng.lng,
  44. {
  45. timeout: 5000
  46. }
  47. ).then(function(nominatimData) {
  48. var stabilita = 3
  49. if (map.getZoom() > 15) {
  50. stabilita = 19 - map.getZoom()
  51. }
  52. $('#pointform input[name=lat]').val(e.latlng.lat)
  53. $('#pointform input[name=lng]').val(e.latlng.lng)
  54. $('#pointform input[name=indirizzo]').val(nominatimData.display_name)
  55. $('#pointform select[name=stabilita]').val(stabilita)
  56. $('#pointform').removeClass('hidden')
  57. })
  58. }
  59. map.on('click', onMapClick)
  60. $('#addPoint').on('click', onFormSubmit)
  61. }
  62. jQuery(function ($) {
  63. $('#mapid').css('height', $(window).height() - 200)
  64. viewMap()
  65. })