132 lines
3.1 KiB
JavaScript
132 lines
3.1 KiB
JavaScript
$(document).ready(function(){
|
|
if(!$('body').hasClass('sidebar-collapse')){
|
|
$('.sidebar-toggle').trigger('click');
|
|
$('.nav').hide();
|
|
}
|
|
|
|
reload_pointers();
|
|
});
|
|
|
|
let map;
|
|
var markers = [];
|
|
|
|
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(){
|
|
|
|
if($(this).parent().parent().parent().hasClass("open-menu")){
|
|
$(this).parent().parent().parent().removeClass("open-menu");
|
|
$(this).parent().parent().parent().addClass("closed-menu");
|
|
|
|
$(this).removeClass('fa-forward');
|
|
$(this).addClass('fa-backward');
|
|
|
|
$('#lista-filtri').hide();
|
|
}else{
|
|
$(this).parent().parent().parent().removeClass("closed-menu");
|
|
$(this).parent().parent().parent().addClass("open-menu");
|
|
|
|
$(this).removeClass('fa-backward');
|
|
$(this).addClass('fa-forward');
|
|
|
|
$('#lista-filtri').show();
|
|
}
|
|
});
|
|
|
|
function reload_pointers(){
|
|
|
|
clearMarkers();
|
|
|
|
var check = [];
|
|
|
|
$("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(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 setMapOnAll(map) {
|
|
for (let i = 0; i < markers.length; i++) {
|
|
markers[i].setMap(map);
|
|
}
|
|
}
|
|
|
|
function clearMarkers() {
|
|
setMapOnAll(null);
|
|
}
|
|
|
|
$("input[type='checkbox']").change(function(){
|
|
reload_pointers();
|
|
});
|
|
|
|
$('#idanagrafica').change(function(){
|
|
reload_pointers();
|
|
});
|
|
|