Log in

View Full Version : Javascript: Geocoding con google API



Kith
24th July 2011, 15:10
ola, avrei bisogno di un aiutino.


sto facendo una web app, e ho bisogno di convertire da una casella di testo a una coordinata geografica con le api di google.

però c'è qualcosa che non va come dovrebbe:

la funzione di geocoding è presa in modo standard senza particolari modifiche:


function geocodeAddress(address)
{
var geocoder = new GClientGeocoder();
geocoder.getLatLng(address,
function(point)
{
if (!point) {
alert(address + " not found");
}
else {

return point;
}

}
);
}

non da problemi in interpretazione, però quando faccio:

indirizzo = geocodeAddress(add) non fa un cazzo e mi loopa...

(dove add è l'id della text box che ho nel body dell html)

any ideas?




ho provato anche così utilizzando 2 variabili globali ma niente, la app si stucka quando clicco sul pulsante che mi chiama la funzione che inizializza:

function geocodeAddress(indirizzo)
{
var geocoder = new GClientGeocoder();
geocoder.getLatLng(indirizzo,
function(point)
{
if (!point) {
alert(indirizzo + " not found");
}
else {
alert(point);
//return point;
lat=point.x;
lon=point.y;
}

}
);
}

Kith
24th July 2011, 16:02
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true&libraries=places"></script>


<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAURWvo06 zkthcxKY7Tb3-kxQStiKx_D4Lk16mJmP0Z8hJotC-gBSyTrTHX8ceGOKf6JQwiGUvDJeTjw"
type="text/javascript"></script>



che merda cazzo se li inserisco tutti e 2 non funziona poi la visualizzazione dei places porcodè, se metto solo il primo funziona il geocoding, se metto solo il 2 funziona solo la visualizzazione dei places però senza geocoding non me ne faccio un cazzo...mah

Amiag
24th July 2011, 17:17
function geocodeAddress(address)
{
var geocoder = new GClientGeocoder();
geocoder.getLatLng(address,
function(point)
{
if (!point) {
alert(address + " not found");
}
else {

return point;
}

}
);
}

quel return e' della funzione anonima che stai passando come callback, non della funzione geocodeAddress. Cosi come e' scritta sta funzione non ritorna niente.
la seconda versione con le variabili globali mi sembra giusta invece.

Cmq spiega meglio cosa si pianta. La chiamata a geocodeAddress ?

Kith
24th July 2011, 21:33
il 2o metodo funziona solamente se come src includo le librerie del geocoding (quella con la api key), però a sto punto non funzionano più i places...

è scritto giusto tutto il codice non so dove sbattere la testa, a quanto pare non si può usare nella stessa pagina geocoding e places...

boh


per non funzionare intendo che una volta che l'interprete entra nella funzione di geocoding è come se andasse in stallo e non andasse piu avanti a interpretare le altre righe... (ho utilizzato il metodo antico degli alert per capire dove si fermava ehhe)

Amiag
24th July 2011, 22:36
allora benvenuto nel mondo delle api google, che funzionano solo se copypasti i loro esempi e a volte manco in quel caso :dumbnod:

Kith
31st July 2011, 14:11
ho capito perchè non funge d***ne....

il getlatlng funziona solo con le v2, il resto del mio codice è scritto in v3.

A me serve una merda di funzione che mi salvi in una variabile le benedette fottutte cordinate di un indirizzo in stringa, se uso il geocode delle v3 NON MI FA USARE LE VARIABILI GLOBALI.


(YWTGVDN(Y/WT>Be7rt6wqcrd47 5tf 73b5 èv ùèòa{