From 92f4e62c2db7a742a33989dc2816d4422ce8e760 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Thu, 15 Jun 2023 14:09:04 +0200 Subject: [PATCH] Gestione mappe OpenStreetMap --- assets/src/img/marker-icon-2x.png | Bin 0 -> 9225 bytes assets/src/img/marker-icon.png | Bin 0 -> 7003 bytes gulpfile.js | 15 +++- modules/anagrafiche/edit.php | 78 ++++++++--------- modules/anagrafiche/modals/posizione.php | 76 ++++++++++++----- modules/interventi/edit.php | 79 ++++++++--------- modules/mappa/css/app.css | 6 +- modules/mappa/edit.php | 34 ++++---- modules/mappa/js/app.js | 104 +++++++---------------- package.json | 6 +- plugins/sedi/edit.php | 41 ++++----- update/2_4_47.sql | 5 ++ 12 files changed, 218 insertions(+), 226 deletions(-) create mode 100644 assets/src/img/marker-icon-2x.png create mode 100644 assets/src/img/marker-icon.png diff --git a/assets/src/img/marker-icon-2x.png b/assets/src/img/marker-icon-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2568dfe7f19bb0db358ecf6f04f334f73b9cfd37 GIT binary patch literal 9225 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 literal 0 HcmV?d00001 diff --git a/assets/src/img/marker-icon.png b/assets/src/img/marker-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2d92e41f2099fd2286bfada719c225af137f4d5a GIT binary patch literal 7003 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 literal 0 HcmV?d00001 diff --git a/gulpfile.js b/gulpfile.js index 27d9ff388..5f6eb4b57 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -120,6 +120,8 @@ const JS = gulp.parallel(() => { 'datatables.net-buttons-bs/js/buttons.bootstrap.js', 'smartwizard/dist/js/jquery.smartWizard.min.js', 'bootstrap-maxlength/dist/bootstrap-maxlength.js', + 'leaflet/dist/leaflet.js', + 'leaflet-gesture-handling/dist/leaflet-gesture-handling.min.js', ]; for (const i in vendor) { @@ -178,6 +180,8 @@ const CSS = gulp.parallel(() => { 'select2-bootstrap-theme/dist/select2-bootstrap.css', 'smartwizard/dist/css/smart_wizard.min.css', 'smartwizard/dist/css/smart_wizard_theme_arrows.min.css', + 'leaflet-gesture-handling/dist/leaflet-gesture-handling.min.css', + 'leaflet/dist/leaflet.css', ]; for (const i in vendor) { @@ -244,6 +248,15 @@ function srcImages() { .pipe(gulp.dest(config.production + '/' + config.paths.images)); } +function leaflet() { + return gulp.src([ + config.nodeDirectory + '/leaflet/dist/images/*.{jpg,png,jpeg}', + ]) + .pipe(flatten()) + .pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet')); +} + + // Elaborazione dei fonts const fonts = gulp.parallel(() => { @@ -516,7 +529,7 @@ function clean() { } // Operazioni di default per la generazione degli assets -const bower = gulp.series(clean, gulp.parallel(JS, CSS, images, fonts, phpDebugBar, ckeditor, colorpicker, i18n, pdfjs, hotkeys, chartjs, password_strength, csrf)); +const bower = gulp.series(clean, gulp.parallel(JS, CSS, images, fonts, phpDebugBar, ckeditor, colorpicker, i18n, pdfjs, hotkeys, chartjs, password_strength, csrf, leaflet)); // Debug su CSS e JS exports.srcJS = srcJS; diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index 42e62ef8c..1dafae80e 100755 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -245,8 +245,6 @@ $sede_cliente = $anagrafica->sedeLegale; $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); $sede_azienda = $anagrafica_azienda->sedeLegale; -$google = setting('Google Maps API key'); - echo '
@@ -257,13 +255,7 @@ echo ' $map_load_message = tr('Clicca per visualizzare'); -if (empty($google)) { - echo ' -
- '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'. -
'; - -} elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) { +if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) { echo '

'.$map_load_message.'

@@ -294,10 +286,10 @@ if (empty($google)) { '.((!empty($sede_cliente->lat) && !empty($sede_azienda->lat)) ? tr('(GPS)'): '' ).' '; - // Ricerca diretta su Google Maps + // Ricerca diretta su Mappa echo ' - - '.tr('Cerca su Google Maps').' + + '.tr('Cerca su Mappa').' '.((!empty($sede_cliente->lat)) ? tr(' (GPS)'): '' ).' '; @@ -312,15 +304,19 @@ echo ' openModal("'.tr('Modifica posizione').'", "'.$module->fileurl('modals/posizione.php').'?id_module='.$id_module.'&id_record='.$id_record.'"); } - function cercaGoogleMaps() { + function cercaOpenStreetMap() { const indirizzo = getIndirizzoAnagrafica(); - window.open("https://maps.google.com/maps/search/" + indirizzo); + if (indirizzo[0] && indirizzo[1]) { + window.open("https://www.openstreetmap.org/?mlat=" + indirizzo[0] + "&mlon=" + indirizzo[1] + "#map=12/" + indirizzo[0] + "/" + indirizzo[1]); + } else { + window.open("https://www.openstreetmap.org/search?query=" + indirizzo[2]); + } } function calcolaPercorso() { const indirizzo_partenza = getIndirizzoAzienda(); const indirizzo_destinazione = getIndirizzoAnagrafica(); - window.open("https://www.google.com/maps/dir/?api=1&origin=" + indirizzo_partenza + "&destination=" + indirizzo_destinazione); + window.open("https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=" + indirizzo_partenza + ";" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1]); } function getIndirizzoAzienda() { @@ -330,9 +326,6 @@ echo ' const lat = parseFloat("'.$sede_azienda->lat.'"); const lng = parseFloat("'.$sede_azienda->lng.'"); - const indirizzo_default = encodeURI(indirizzo) + "," + encodeURI(citta); - if (!lat || !lng) return indirizzo_default; - return lat + "," + lng; } @@ -344,9 +337,8 @@ echo ' const lng = parseFloat("'.$sede_cliente->lng.'"); const indirizzo_default = encodeURI(indirizzo) + "," + encodeURI(citta); - if (!lat || !lng) return indirizzo_default; - return lat + "," + lng; + return [lat, lng, indirizzo_default]; } function caricaMappa() { @@ -355,32 +347,32 @@ echo ' return; } - $.getScript("//maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'", function() { - const map_element = map_div[0]; - const lat = parseFloat("'.$sede_cliente->lat.'"); - const lng = parseFloat("'.$sede_cliente->lng.'"); + const lat = parseFloat("'.$sede_cliente->lat.'"); + const lng = parseFloat("'.$sede_cliente->lng.'"); - if (!lat || !lng) return; - const position = new google.maps.LatLng(lat, lng); + var map = L.map("map-edit", { + center: [lat, lng], + zoom: 10, + gestureHandling: true + }); - // Create a Google Maps native view under the map_canvas div. - const map = new google.maps.Map(map_element, { - zoom: 14, - scrollwheel: false, - mapTypeControl: true, - mapTypeId: "roadmap", - mapTypeControlOptions: { - style: google.maps.MapTypeControlStyle.DROPDOWN_MENU, - mapTypeIds: ["roadmap", "terrain"], - } - }); + var icon = new L.Icon({ + iconUrl: globals.rootdir + "/assets/dist/img/marker-icon.png", + shadowUrl:globals.rootdir + "/assets/dist/img/leaflet/marker-shadow.png", + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] + }); - map.setCenter(position); - const marker = new google.maps.Marker({ - position: position, - map: map, - }); - }); + L.tileLayer("'.setting("Tile layer OpenStreetMap").'", { + maxZoom: 17, + attribution: "© OpenStreetMap" + }).addTo(map); + + var marker = L.marker([lat, lng], { + icon: icon + }).addTo(map); } function risolviConto(tipo){ diff --git a/modules/anagrafiche/modals/posizione.php b/modules/anagrafiche/modals/posizione.php index 78a7abd15..a438164f0 100644 --- a/modules/anagrafiche/modals/posizione.php +++ b/modules/anagrafiche/modals/posizione.php @@ -20,8 +20,6 @@ include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../init.php'; -$google = setting('Google Maps API key'); - echo '
@@ -29,16 +27,20 @@ echo '
- {[ "type": "text", "label": "'.tr('Indirizzo Google').'", "name": "gaddress", "value": "'.$record['gaddress'].'", "extra": "data-geo=\'formatted_address\'" ]} + {[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "gaddress", "value": "'.$record['gaddress'].'", "extra": "data-geo=\'formatted_address\'" ]}
-
+
{[ "type": "text", "label": "'.tr('Latitudine').'", "name": "lat", "value": "'.$record['lat'].'", "extra": "data-geo=\'lat\'", "class": "text-right" ]}
-
+
{[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "value": "'.$record['lng'].'", "extra": "data-geo=\'lng\'", "class": "text-right" ]}
+ +
+
+
@@ -61,24 +63,60 @@ echo ' '; diff --git a/modules/mappa/css/app.css b/modules/mappa/css/app.css index 645b041b5..f8937f699 100644 --- a/modules/mappa/css/app.css +++ b/modules/mappa/css/app.css @@ -8,7 +8,7 @@ height:700px; position:fixed; top:100px; - + z-index: 10000; } .open-menu{ @@ -101,4 +101,8 @@ a:active, a:hover, a:focus { outline: 0; text-decoration: none; outline: 0 !important; +} + +.select2-container { + z-index: 10000; } \ No newline at end of file diff --git a/modules/mappa/edit.php b/modules/mappa/edit.php index b3a08f559..27481b07f 100644 --- a/modules/mappa/edit.php +++ b/modules/mappa/edit.php @@ -23,10 +23,6 @@ include_once __DIR__.'/../../core.php'; - -
@@ -48,7 +44,7 @@ if(!empty(setting('Google Maps API key'))){
- {[ "type": "select", "name": "idanagrafica", "id": "idanagrafica", "required": 1, "ajax-source": "clienti_fornitori" ]} + {[ "type": "select", "name": "idanagrafica", "id": "idanagrafica", "required": 1, "ajax-source": "clienti" ]}
@@ -82,19 +78,21 @@ if(!empty(setting('Google Maps API key'))){ - - - - - '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione della mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'. -
'; -} -?> \ No newline at end of file + \ No newline at end of file diff --git a/modules/mappa/js/app.js b/modules/mappa/js/app.js index 08a4502b9..b97817014 100644 --- a/modules/mappa/js/app.js +++ b/modules/mappa/js/app.js @@ -1,42 +1,27 @@ -$(document).ready(function(){ +$(document).ready(function() { if(!$('body').hasClass('sidebar-collapse')){ $('.sidebar-toggle').trigger('click'); $('.nav').hide(); } - reload_pointers(); + setTimeout(function () { + caricaMappa(); + reload_pointers(); + }, 1000); }); let map; var markers = []; +var icon = new L.Icon({ + iconUrl: globals.rootdir + "/assets/dist/img/marker-icon.png", + shadowUrl:globals.rootdir + "/assets/dist/img/leaflet/marker-shadow.png", + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + shadowSize: [41, 41] +}); -function initialize(startLat, startLon) { - - if (startLat==undefined){ - startLat = 43.45291889; - } - if (startLon==undefined){ - startLon = 11.96411133; - } - - var myLatlng = new google.maps.LatLng(startLat, startLon); - - var mapOptions = { - zoom: 7, - center: myLatlng, - mapTypeId: google.maps.MapTypeId.ROADMAP, - mapTypeControl: false, - streetViewControl: false, - panControl: false, - scaleControl: false, - rotateControl: false - } - - map = new google.maps.Map(document.getElementById('mappa'), mapOptions); - -} - -$('#menu-filtri-toggle').click(function(){ +$('#menu-filtri-toggle').click(function() { if($(this).parent().parent().parent().hasClass("open-menu")){ $(this).parent().parent().parent().removeClass("open-menu"); @@ -57,75 +42,44 @@ $('#menu-filtri-toggle').click(function(){ } }); -function reload_pointers(){ - +function reload_pointers() { clearMarkers(); - var check = []; - $("input[type='checkbox']").each(function(){ + $("input[type='checkbox']").each(function() { if($(this).is(':checked')){ id = $(this).attr('id'); check.push(id); - } }); $.get(ROOTDIR+'/modules/mappa/actions.php?op=get_markers&idanagrafica='+$('#idanagrafica').val()+'&check='+check, function(data){ - - var infowindow = new google.maps.InfoWindow(); - var bounds = new google.maps.LatLngBounds (); - var dettagli = JSON.parse(data); - - var marker, i; - var counter = 0; - dettagli.forEach(function(dettaglio) { - const posizione = new google.maps.LatLng(dettaglio.lat, dettaglio.lng); - - marker = new google.maps.Marker({ - position: posizione, - map: map, - }); - - markers.push(marker); - bounds.extend(posizione); - - google.maps.event.addListener(marker, 'click', (function(marker, i) { - return function() { - infowindow.setContent(dettaglio.descrizione); - infowindow.open(map, marker); - } - })(marker, i)); - - counter++; + if (dettaglio.lat && dettaglio.lng) { + L.marker([dettaglio.lat, dettaglio.lng], { + icon: icon + }).addTo(map); + } }); + }); +} - if(counter>0){ - map.setCenter(bounds.getCenter()); // this will set the center of map to center of all markers - map.fitBounds(bounds); // this will fit all the markers to screen +function clearMarkers() { + map.eachLayer(function (layer) { + if(layer instanceof L.Marker) { + map.removeLayer(layer); } }); } -function setMapOnAll(map) { - for (let i = 0; i < markers.length; i++) { - markers[i].setMap(map); - } -} - -function clearMarkers() { - setMapOnAll(null); -} - -$("input[type='checkbox']").change(function(){ +$("input[type='checkbox']").change(function() { reload_pointers(); }); -$('#idanagrafica').change(function(){ +$('#idanagrafica').change(function() { reload_pointers(); }); diff --git a/package.json b/package.json index bff3794c2..e199832af 100755 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "bootstrap-daterangepicker": "^2.1.25", "bootstrap-maxlength": "^1.10.1", "chart.js": "^3.8.0", - "ckeditor4": "ckeditor/ckeditor4-releases#full/latest", + "ckeditor4": "^4.21.0", "components-jqueryui": "^1.12.1", "datatables.net-bs": "^1.10.15", "datatables.net-buttons-bs": "^1.3.1", @@ -30,10 +30,12 @@ "jquery-form": "^4.2.1", "jquery-ui-touch-punch": "^0.2.3", "jquery.shorten": "^1.0.0", + "leaflet": "^1.9.4", + "leaflet-gesture-handling": "^1.2.2", "moment": "^2.18.1", "numeral": "^2.0.6", "parsleyjs": "^2.7.2", - "pdf.js": "alekswebnet/pdfjs-viewer-element", + "pdfjs-viewer-element": "^2.3.1", "pwstrength-bootstrap": "^3.0.4", "select2": "^4.0.3", "select2-bootstrap-theme": "^0.1.0-beta.10", diff --git a/plugins/sedi/edit.php b/plugins/sedi/edit.php index d2513da3a..cd8164477 100755 --- a/plugins/sedi/edit.php +++ b/plugins/sedi/edit.php @@ -108,10 +108,8 @@ echo '
{[ "type": "textarea", "label": "'.tr('Note').'", "name": "note", "value": "$note$" ]}
-
'; +
-if (!empty($google)) { - echo '
{[ "type": "text", "label": "'.tr('Indirizzo Google').'", "name": "gaddress", "value": "$gaddress$", "extra": "data-geo=\'formatted_address\'" ]} @@ -125,31 +123,24 @@ if (!empty($google)) { {[ "type": "text", "label": "'.tr('Longitudine').'", "name": "lng", "id": "lng_", "value": "$lng$", "extra": "data-geo=\'lng\'", "class": "text-right" ]}
'; - // Vedi su google maps - if (!empty($record['indirizzo']) || (empty($record['citta']))) { - echo ' -
-
-    - '; +if (!empty($record['indirizzo']) || (empty($record['citta']))) { + echo ' +
+
+    + '; - echo ' - -
'; - } + echo ' + +
'; +} - echo ' -
'; +echo ' +
'; - if (!empty($record['gaddress']) || (!empty($record['lat']) && !empty($record['lng']))) { - echo ' -

'; - } -} else { - echo ' -
- '.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'. -
'; +if (!empty($record['gaddress']) || (!empty($record['lat']) && !empty($record['lng']))) { + echo ' +

'; } // Permetto eliminazione tipo sede solo se non è utilizzata da nessun'altra parte nel gestionale diff --git a/update/2_4_47.sql b/update/2_4_47.sql index 0e70b9956..997772337 100644 --- a/update/2_4_47.sql +++ b/update/2_4_47.sql @@ -11,3 +11,8 @@ UPDATE `zz_settings` SET `help` = "Se abilitato viene effettuato un backup compl UPDATE `zz_settings` SET `editable` = 1 WHERE `zz_settings`.`nome` = 'Soft quota'; UPDATE `zz_settings` SET `help` = "Valore espresso in Giga superato il quale viene visualizzato un avviso di spazio in esaurimento." WHERE `zz_settings`.`nome` = 'Soft quota'; + +-- Rimozione google maps +DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Google Maps API key'; + +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `created_at`, `order`, `help`) VALUES (NULL, 'Tile layer OpenStreetMap', 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', 'string', '1', 'Generali', NULL, NULL, '') \ No newline at end of file