• User Attivo

    [google maps] convertire indirizzo in coordinate

    Salve a tutti, ho un form con tre campi (fromAddress,toAddress, locale), dove vorrei convertire il campo toAddress in geoCoords.
    Ci riesco, ma non so come inserirlo nella funzione successiva questo il codice:

    
    function setDirections(fromAddress, toAddress, locale) {        
        geocoder.getLatLng(toAddress,
        function(point){
            if (!point){
            // Indirizzo non trovato!
            alert(toAddress + " non trovato!");    
    }else{
        alert("trovato")
    }
    
    });
        
            document.getElementById('directions').style.display = "block";
          gdir.load("from: " + fromAddress + " to: " + toAddress,
                    { "locale": locale });
        alert(point)
    }
    
    

    l'ultima parte dello script, ho messo alert(point) ma mi restituisce undefined, come dovrei fare per tramndare questa variabile da una parte all'altra del codice???

    Grazie, ciao.


  • User Attivo

    il problema dovrebbe essere nello scope della variabile point, dato che in questo caso dovrebbe essere interno alla funzione...

    prova a settare una variabile che salvi quella "point" e poi vedi il valore della nuova variabile...

    
    <script>
    point_ = "";
    function setDirections(fromAddress, toAddress, locale) 
    {        
        geocoder.getLatLng(toAddress,function(point){
            if (!point)
            {
                // Indirizzo non trovato!
                alert(toAddress + " non trovato!");    
            }
            else
            {
                alert("trovato");
                point_ = point;
            }
        });
        
        document.getElementById('directions').style.display = "block";
        gdir.load("from: " + fromAddress + " to: " + toAddress,{ "locale": locale });
        alert(point_);
    }
    </script>
    
    

    non ti assicuro niente dato che mancandomi il resto del codice, non ho potuto testarla!

    fammi sapere!


  • User Attivo

    no, nulla, mi dispiace, mi esce la finestra di alert senza la variabile Praticamente point_ =

    Grazie, ciao.


  • User Attivo

    ti restituisce "point" quando fai l'alert "trovato"?

    io ho ricreato il codice....e a me restituisce "point" backuppato al di fuori della funzione, con la corretta latitudine e longitudine!


  • User Attivo

    niente, mi restituisce solo "trovato"


  • User Attivo

    riusciresti a mettere il codice completo???

    io ho il mio, ma potrebbe essere diverso...nel frattempo te lo posto!

    
    <script>
    var map = null;
    var geocoder = null;
    
    function initialize() 
    {
        if (GBrowserIsCompatible()) 
        {
            map = new GMap2(document.getElementById("map_canvas"));
            map.setCenter(new GLatLng(0, 0), 13);
            geocoder = new GClientGeocoder();
        }
    }
    
    function showAddress(address) 
    {
        if (geocoder) 
        {
            geocoder.getLatLng(address,function(point) {
            
                if (!point) 
                {
                    alert(address + " not found");
                } 
                else 
                {
                map.setCenter(point, 13);                
                ciccio = point;
                }
            });
        }
    }
    ciccio = "";
    
    document.onclick = function(){alert(ciccio)};
    </script>
    <form action="#" onsubmit="showAddress(this.address.value); return false">
        <p>
            <input type="text" size="60" name="address" value="1600 Amphitheatre Pky, Mountain View, CA" />
            <input type="submit" value="Go!" />
        </p>
        <div id="map_canvas" style="width: 500px; height: 300px"></div>
    </form>
    <script>
    initialize();
    </script>
    
    

    per controllare Latitudine e Longitudine, clicca in un punto qualsiasi!


  • User Attivo

    Perdonami, forse mi sono spiegato male.
    io mi sono creato questo:

    h tt p: // code.google.com/apis/maps/documentation/examples/directions-advanced.html

    il problema però, sta nel fatto che se io nel campo To: digito "Roma", lui elabora informazioni stradali per Roma.
    Se io sempre nel campo To: digito "41.88592102814744,12.45849609375" mi elabora sempre informazioni stradali per Roma,

    allora io vorrei fare che: nel campo To: digito "Roma", lui mi trasforma il valore del campo to in coordinate, e poi fa le ricerche.

    Spero di non aver creato confusione.

    Grazie.


  • User Attivo

    Ah....ora ho capito!!!!

    maps.google.com/maps/geo?q=indirizzo&output=csv&key=la_tua_chiave

    questo ti restituisce un cvs con le coordinate e altre informazioni sul luogo, lo devi poi parsare e estrapolare ciò che ti serve!

    ma perchè cerchi prima le coordinate e poi il luogo???

    P.S.
    a questo punto dovrai usare ajax!

    fammi sapere se ho capito giusto!


  • User Attivo

    ma comunque....il codice che ho messo....lo fa già!

    ho ricontrollato ora, e cercando, ad esempio, Biella, mi da le coordinate di biella, ma lo fa in seguito alla ricerca....

    per farlo prima, devi chiamare la pagina che ho scritto prima, leggerla ed estrapolare i dati che ti interessano, io ho trovato molto comodo fare il tutto(lettura ed estrapolazione) in PHP....


  • User Attivo

    ah, ok, quindi prima fa la ricerca, e poi ti restituisce le coordinate,
    mentre se io volessi evitare ajax, un metodo per passare la variabile point alla funzione, non esiste???


  • User Attivo

    che io sappia no, o ricarichi la pagina, ma non credo sia la cosa migliore, o usi ajax!!

    Se c'è qualcuno che può smentirmi....lo faccia...dato che sta cosa interessa anche a me! 😉