Ciao, c'è un po' di confusione sul codice. Posso dedurre che stai facendo un collage di qualche snippet copiaincollato chissà dove.
Ad ogni modo fai intanto attenzione che la variabile esempio è dichiarata dentro una ulteriore funzione (cioè il callback definito per geocoder.geocode), cioè non direttamente su codeAddress. Questo significa che non può essere vista nel return che hai specificato.
Ma anche se fosse dichiarata nella funzione, da cui poi parte il return, o a livello globale (vedi il suggerimento di cavicchiandrea) ho l'impressione che quel callback sia richiamato in modo asincrono; in altre parole quel return viene eseguito prima che il callback stesso sia eseguito. Per tale motivo non può restituire alcunché di ciò che succede dentro il callback stesso definito per geocode.
In sostanza immagino che l'array che vuoi ottenere sul ready non possa essere definita se non dopo che venga eseguito quel callback.
Una soluzione può essere quella di definire un callback sulla stessa funzione codeAddress, il quale però faccia riferimento a quello di geocode. Da quel callback sarà poi eseguito il resto del codice. Per me è più facile a farsi che a dirsi.
Ora però non capisco perché vai a definire la variabile address come argomento della funzione e poi nuovamente come variabile dentro la funzione stessa(da qui il disappunto di cavicchiandrea e la mia deduzione che tu abbia fatto un collage poco rifinito).
Provo comunque a dare una soluzione, vedi tu se può andare o essere in qualche modo adeguata per il tuo progetto:
codice:function codeAddress(callback){ var via = $("#via").val(); var cap = $("#cap").val(); var address = via+' '+cap; geocoder.geocode({ 'address': address}, function(results, status){ if(status == google.maps.GeocoderStatus.OK){ var loc = results[0].geometry.location; callback([loc.lat(), loc.lng()]); // qui la definizione e il passaggio dell'array da un callback all'altro }else{ } }); } $(function(){ codeAddress(function(tuoarray){ var latitudine = tuoarray[0]; var longitudine = tuoarray[1]; alert(latitudine+' '+longitudine); }); });

(da qui il disappunto di cavicchiandrea e la mia deduzione che tu abbia fatto un collage poco rifinito).
Rispondi quotando