Ciao a tutti. Ho inserito una google map in un sito di un'agenzia x visualizzare la collocazione delle sue filiali. Ho però un problema: il numero di marker visualizzati nella mappa varia sia in base al browser utilizzato sia se ricarico la pagina. Non riesco a capire di che problema si tratti.
Di seguito riporto il codice js relativo alla google map:
[HTML]<script src="xxxx://maps.google.com/maps?file=api&dev=2&hl=it&key=codice" type="text/javascript"></script>
<script type="text/javascript">
var map = null;
var geocoder = null;
icona = new GIcon();
icona.image = "img/marker.png";
icona.iconSize = new GSize(12, 20);
icona.iconAnchor = new GPoint(6, 20);
icona.infoWindowAnchor = new GPoint(6, 20);
icona.shadowSize = new GSize(24, 20);
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
geocoder = new GClientGeocoder();
}
}
function createMaker(address, infos, contatore){
if (geocoder) {
geocoder.getLatLng(address, function(point){
if (!point){
//alert(address + " not found");
}
else{
map.setCenter(point, 5);
/*condizione: se è filiale principale visualizzo marker altrimenti marker2. Lo stabilisco verificando l'indirizzo mail*/
var condizione=true;
if (infos.indexOf("[email protected]")>0 || infos.indexOf("[email protected]")>0){
condizione=false;
}
if (condizione){
icona.image="img/marker2.png";
}
else{
icona.image="img/marker.png";
}
var marker = new GMarker(point, icona);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(infos+"<br />");
});
map.addOverlay(marker);
}
}
);//geocoder
}//if
}//createMaker
function showAll(){
var indirizzi=Array(<?=$vettore?>); /* indirizzo filiale */
var infos=Array(<?=$franchisor?>); /* info da visualizzare sulla filiale */
for(i=0; i<indirizzi.length; i++){
createMaker(indirizzi*, infos*, i);
}
}//showAll
//]]>
</script>
</head>
<body onLoad="load(); showAll();" onUnload="GUnload()">
<div id="map" style="width: 380px; height: 420px"></div>
</body>[/HTML]
La funzione showAll serve per creare il vettore degli indrizzi e delle informazioni relativi alle varie filiali. Queste informazioni vengono recuperate da DB e salvate come stringhe in due var php, cioè $vettore e $franchisor.
Qualcuno mi sa dire il motivo del diverso comportamento dei brawser? C'è qualche errore nel codice?
Per chi volesse guardare direttamente la mappa la trova all'indirizzo
XXX.finanziariam3.it/m3points.php
Grazie