• User

    Integrazione di google maps non corretta

    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 🙂


  • ModSenior

    Credo bisognerebbe vedere che valore restituiscono le variabili php usate all'interno del codice Javascript.


  • User

    Ciao marcocarrieri. Ritieni che il codice che ho scritto è giusto? Con js nn sono tanto pratica...

    Nella stringa $vettore ho l'elenco di tutti gli indirizzi. Ogni indirizzo è posto tra '' ed è separato dagli altri con ,.
    In pratica, se stampo il valore $vettore ottengo 'Via Possidonea 42, Reggio Calabria','Via Tacito 7, Roma',......

    Quando converto questa stringa in vettore js gli apici e le virgole scompaiono.

    Ho notato che firefox visualizza sempre i primi 10 indirizzi del db, tutti gli altri x lui sono un optional.

    Grazie ancora a chi riesce ad aiutarmi.


  • ModSenior

    Prova a far stampare solo il vettore, non usarlo direttamente nella mappa.

    E vedi se ti stampa lo stesso vettore sia usando Firefox e IE.