Ciao a tutti, con questo codice dato un array di marker metto quelli a cui sono vicino in un altro array (visibili) che svuoto e riempio appena mi muovo in modo di avere sulla mappa solo i marker vicini.
Funziona in quanto ogni volta che mi muovo mi dice quanti ce ne sono nell'array visibili, ma non riesco però a cancellarli fisicamente dalla mappa...
mi dareste una mano??
codice:
var markers = [ ['prova1', 43.84275, 10.5040667],
['prova2', 43.8428333, 10.5040833],
['prova3', 43.8429333, 10.5040833]
];
//creo array dei marker visibili
var visibili = [];
var inizio = new google.maps.LatLng(43.8427752, 10.504052);
function initialize() {
var panoramaOptions = {
position: inizio,
pov: {
heading: 165,
pitch: 0
},
zoom: 1
};
var myPano = new google.maps.StreetViewPanorama(document.getElementById('map-canvas'),panoramaOptions);
myPano.setVisible(true);
var miaposizione = new google.maps.LatLng(43.8427752, 10.504052);
google.maps.event.addListener(myPano, 'position_changed', function() {
miaposizione = myPano.getPosition();
//ogni volta che cambio posizione l'array marker visibili si svuota
eliminaMarkers();
var metri = 50;
for (var i = 0; i < markers.length; i++) {
var myMarker = markers[i];
coords2 = new google.maps.LatLng(myMarker[1], myMarker[2]);
var distance = google.maps.geometry.spherical.computeDistanceBetween(miaposizione,coords2);
if(distance <= metri) {
var posizione = new google.maps.LatLng(myMarker[1], myMarker[2]);
var marker = new google.maps.Marker({
position: posizione,
icon: 'Azure.png',
map: myPano,
title: myMarker[0]
});
//se sono vicini metto i marker nell'array visibili
visibili.push(myMarker);
alert(visibili.length)
}else{
eliminaMarkers();
}
}
});
}
//svuota i marker visibili
function eliminaMarkers() {
visibili = [];
}
google.maps.event.addDomListener(window, 'load', initialize);