Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Ottenere le coordinate da un indirizzo

    Salve,

    per un'applicazione iPhone che sto sviluppando avrei bisogno di ricavare le coordinate geografiche (latitudine, longitudine) da un indirizzo. In pratica quello che fa google Maps quando si inserisce un indirizzo nel campo di ricerca. Naturalmente posso fare l'operazione sia nel front-end objective-c che nel back-end php, ed è per questo che pongo anche qui la domanda.

    Grazie, Fabrizio

  2. #2
    Ti consiglio di utilizzare le API ufficiali di google maps:
    è sufficiente inviare una richiesta HTTP da curl o fopen di questo genere
    codice:
    http://maps.google.com/maps/geo?q=Milano+piazza+Duomo&output=csv
    dove q precede l'indirizzo.
    Ti verrà ritornata una stringa di questo tipo:
    codice:
    200,9,45.4641611,9.1903357
    Composta da quattro parti separate da virgola:
    La prima è il codice di risposta; quando è 200 significa che la richiesta è andata a buon fine, 602, invece, vuol dire che l'indirizzo non è stato trovato.
    La seconda è la precisione delle coordinate: sarà più o meno alta a seconda dell'indirizzo richiesto, ad esempio sarà 1 con uno stato, ma molto più alta con un indirizzo preciso.
    Le ultime due parti sono rispettivamente latitudine e longitudine dell'indirizzo richiesto.

    Se vuoi più informazioni leggi la documentazione ufficiale delle API oppure guarda quest'articolo:
    http://www.timshowers.com/2008/08/ph...-api-part-one/

    Spero di esserti stato utile!
    Auguri con la tua applicazione!

  3. #3
    Grazie mille, è proprio quello che cercavo: ora la provo e vedo cosa succede.

  4. #4
    A proposito: siccome devo parsare l'output e di solito utilizzo objective-c per far questo che usa i tag xml, è possibile avere un output di questo tipo oppure, in alternativa, c'è un modo di ricevere e parsare quella stringa direttamente in php?

  5. #5
    In PHP è davvero molto semplice:
    Codice PHP:
    <?php
    $output 
    "200,1,0,0";//Qui l'output dell'API
    $tmp explode(","$output);//Suddivido l'output in base alla virgola
    $code $tmp[0];
    $precision $tmp[1];
    $la $tmp[2];
    $lo $tmp[3];
    Così ottieni le variabili la e lo corrispondenti a latitudine e longitudine, con cui poi puoi facilmente costruire un codice XML o qualunque altra cosa ti serva.

    In alternativa puoi sostituire "csv" nella richeista con "xml", ottenendo direttamente un file xml contenente varie informazioni sull'indirizzo richiesto, tra cui anche le coordinate:
    codice:
    http://maps.google.com/maps/geo?q=Milano+piazza+Duomo&output=xml

  6. #6
    Originariamente inviato da fbartolom
    A proposito: siccome devo parsare l'output e di solito utilizzo objective-c per far questo che usa i tag xml, è possibile avere un output di questo tipo oppure, in alternativa, c'è un modo di ricevere e parsare quella stringa direttamente in php?
    Bene via php, così sgravo un pochino il povero xcode.

    Una ultima, spero, cosa: qual'è il comando che consente di sostituire gli spazi in '+' in php? Penso quello sia il formato per postare un indirizzo composto in luogo di usare '%20;' per gli spazi.

    Il tutto per il duomo già su vivo e vegeto si trova ad:
    http://www.miafoto.it/iPhone/inarrivo/php/httpParse.php

    Il codice complessivo, che condivido a beneficio di altri nelle mie stesse condizioni, è il seguente:
    <?php
    $output = @file_get_contents("http://maps.google.com/maps/geo?q=Milano+piazza+Duomo&output=csv");
    $tmp = explode(",", $output);//Suddivido l'output in base alla virgola
    $code = $tmp[0];
    $precision = $tmp[1];
    $la = $tmp[2];
    $lo = $tmp[3];
    echo $la." - ".$lo
    ?>

    Grazie mille, Fabry

  7. #7
    puoi usare la funzione rawurlencode($url), che sostituisce, oltre allo spazio, tutti i caratteri speciali.

  8. #8
    Sì, infatti avevo già aggiunto entrambi (altrimenti lima/montevideo mi mandava nell'altro emisfero :-) ). Ora sto provando prendendo solo la seconda parte delle componenti con la barra e mi pare che vada decisamente meglio.
    Sulla pagina ora ho messo in tabella anche le coordinate per permettere la verifica.

    Originariamente inviato da quit10
    puoi usare la funzione rawurlencode($url), che sostituisce, oltre allo spazio, tutti i caratteri speciali.
    Grazie. Ma non ho capito se occorra che l'indirizzo sia impostato con i '+' tra le parole oppure con i "%20;". Tra l'altro ho fatto partire il "motorino" e non è che mi trovi tante latitudini dagli indirizzi della paline atac...
    Li ho messi su ad:
    http://www.miafoto.it/iPhone/inarrivo/php/indirizzi.php

    Hai qualche suggerimento per essere un poco più produttivo?

  9. #9
    + e %20 sono perfettamente equivalenti
    Per quanto riguarda i tuoi indirizzi, ho paura che siano un tantino "generici": prova ad aggiungere altre informazioni, come la città e magari anche lo stato.

    Prova magari anche a sostituire i "/" con degli spazi (puoi usare str_replace).

  10. #10
    Originariamente inviato da quit10
    + e %20 sono perfettamente equivalenti
    Per quanto riguarda i tuoi indirizzi, ho paura che siano un tantino "generici": prova ad aggiungere altre informazioni, come la città e magari anche lo stato.

    Prova magari anche a sostituire i "/" con degli spazi (puoi usare str_replace).
    In effetti, come puoi vedere, la cosa si va aggiustando: ho aggiunto roma, italia e 001 e provo prima con tutta la stringa, poi sostituendo la / con un +, poi prendendo solo la seconda parte dopo la / ed infine solo la prima e mi pare che ci prenda quasi sempre.
    L'unico, per il momento, che non riesco ancora a controllare è: CASALETTO che, aggiungendo Roma+Italia+001+, come puoi verificare anche tu, conduce al numero 1 di una via Roma di un certo Casaletto di Sopra nei pressi di Bergamo e che non ho trovato come riportarlo a Monteverde. Qualche idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.