Autore Topic: Google Maps API v2 e ricerca location per nome: geocoder o un altro sistema?  (Letto 643 volte)

Offline UmbySlipKnot

  • Nuovo arrivato
  • *
  • Post: 46
  • Respect: 0
    • Mostra profilo
Ciao a tutti,
mi sono imbattuto nell'ennesimo problema con queste API v2.
Mantenendo questo pezzo di codice come per la API v1, uso il geocoder e la funzione getFromLocationName() per trovare le coordinate di una stringa di ricerca.
Capita che a volte questa istruzione scateni IOException per più volte consecutive, non trovando alcun risultato.
Voi che metodo usate per cercare con le nuove API?
Grazie mille :-)

P.S.: ecco il mio codice:
Codice (Java): [Seleziona]
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        geocoder = new Geocoder(this, Locale.ITALY);
        ...
    }

    public void searchPlace(View button) {
                hideSoftInput();
               
                Thread searchThread = new Thread("SearchThread") {
                        @Override
                        public void run() {
                                // Otteniamo il messaggio
                                Message message = mapHandler.obtainMessage();
                                // Utilizziamo il Geocoder per fare la ricerca
                                try {
                                        List<Address> risultati = geocoder.getFromLocationName(inputName.getText().toString().trim(), 1);
                                        // Se c'e' qualcosa lo notifichiamo
                                        if (risultati != null && risultati.size() > 0) {
                                                message.obj = risultati.get(0);
                                                mapHandler.sendMessage(message);
                                        } else {
                                                runOnUiThread(new Runnable() {                
                                            public void run() {
                                                Utils.msg(CercaPuntoVendita.this, "Nessun risultato trovato");
                                            }
                                        });
                                        }
                                } catch (IOException e) {
                                        // Non facciamo nulla ma arriva il messaggio vuoto
                                        mapHandler.sendEmptyMessage(MAP_MESSAGE_ID);
                                } finally {
                                        dismissDialog(PROGRESS_DIALOG_ID);
                                }
                        }

                };
                // Visualizziamo la progressDialog
                showDialog(PROGRESS_DIALOG_ID);
                // Facciamo partire il Thread
                searchThread.start();
        }    
« Ultima modifica: 18 Maggio 2013, 09:26:37 CEST da UmbySlipKnot »