leaflet-map.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. window.SONATA_CONFIG.USE_ICHECK = false;
  2. var map,
  3. defaultCoords,
  4. drawnItems,
  5. marker,
  6. loc,
  7. dataValue;
  8. $(document).ready(function () {
  9. defaultCoords = new L.latLng(39.791312, -2.6949709); // España
  10. map = new L.Map('map', {zoom: getZoomLevel(), center: getDataCoords()});
  11. drawnItems = L.featureGroup().addTo(map);
  12. drawMarker();
  13. L.control.layers(
  14. {
  15. 'openstreetmap': L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
  16. {
  17. maxZoom: 18,
  18. attribution: '&copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors'
  19. }).addTo(map),
  20. "google": L.tileLayer('http://www.google.com.ar/maps/vt?lyrs=y@189&gl=cn&x={x}&y={y}&z={z}',
  21. {
  22. maxZoom: 18,
  23. attribution: 'google'
  24. })
  25. },
  26. {
  27. 'drawlayer': drawnItems
  28. },
  29. {
  30. position: 'topleft',
  31. collapsed: false
  32. }).addTo(map);
  33. var drawControl = new L.Control.Draw({
  34. draw: {
  35. polygon: false,
  36. rectangle: false,
  37. polyline: false,
  38. circle: false
  39. },
  40. edit: {
  41. featureGroup: drawnItems,
  42. edit: false
  43. }
  44. });
  45. map.addControl(drawControl);
  46. map.on(L.Draw.Event.CREATED, function (e) {
  47. var layer = e.layer;
  48. loc = new L.latLng(layer._latlng);
  49. drawMarker();
  50. setDataValue();
  51. });
  52. map.on('zoomend', function () {
  53. setDataValue();
  54. });
  55. });
  56. function getDataCoords()
  57. {
  58. var jsonParseData = {};
  59. if ($('[name$="[extraData]"]').val()) {
  60. dataValue = $('[name$="[extraData]"]').val();
  61. }
  62. if (dataValue) {
  63. jsonParseData = JSON.parse(dataValue);
  64. }
  65. loc = defaultCoords;
  66. if (jsonParseData.lat && jsonParseData.lng) {
  67. loc = new L.latLng(jsonParseData.lat, jsonParseData.lng);
  68. }
  69. return loc;
  70. }
  71. function drawMarker()
  72. {
  73. if (marker) {
  74. drawnItems.removeLayer(marker);
  75. }
  76. map.panTo(loc);
  77. marker = L.marker([loc.lat, loc.lng]);
  78. drawnItems.addLayer(marker);
  79. }
  80. function getZoomLevel()
  81. {
  82. var jsonParseData = {};
  83. var zoomLevel = 18;
  84. if ($('[name$="[extraData]"]').val()) {
  85. dataValue = $('[name$="[extraData]"]').val();
  86. }
  87. if (dataValue) {
  88. jsonParseData = JSON.parse(dataValue);
  89. }
  90. if (jsonParseData.zoom) {
  91. zoomLevel = jsonParseData.zoom;
  92. }
  93. return zoomLevel;
  94. }