openstamanager/modules/mappa/js/app.js

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();
});