2012-01-03 13 views
6

Nella mia app, devo prendere un indirizzo utente (Stati Uniti). L'utente deve digitare un indirizzo valido. Come posso raggiungere questo obiettivo? C'è qualche biblioteca che può aiutarmi con i nomi degli stati, delle città e dei nomi delle strade? Vorrei usare l'autotype se possibile. Ho letto GeoCoding ma non penso che mi aiuterà poiché l'utente non sta inserendo l'indirizzo dalla posizione corrente.Convalida immissione indirizzo in Android

+0

Quanto deve essere preciso l'indirizzo? È solo il codice di avviamento postale e lo stato, oppure hai bisogno di nomi di città e indirizzi stradali. Tieni presente che lo stesso luogo può avere più indirizzi validi perché, ad esempio, una strada può essere un'autostrada con un numero chiamato anche ex: l'autostrada 10 viene anche chiamata main st dove corre attraverso Springfield. – ethan

+0

Deve essere preciso ... Come funziona il dispositivo GPS? Ha lo stato, la città e il numero civico dove l'utente digita e poi il GPS trova l'indirizzo e lo mostra all'utente. Se l'utente accetta di andare avanti a trovare il percorso. Voglio la stessa cosa –

risposta

0

Perché non convalidare il prefisso? Dovresti essere salvato facendo così.

2

Questo è quello che faccio per trovare una posizione utilizzando l'API di Google. Forse ti sarà d'aiuto:

 Geocoder geoCoder = new Geocoder(context, Locale.getDefault());  
     try { 
      List<Address> addresses = 
        geoCoder.getFromLocationName(travel.getAddress() + "," + 
      travel.getCity() + "," + travel.getState() + "," + travel.getCountry(), 3); 

      if (addresses.size() > 0) { 
       point = new GeoPoint(
         (int) (addresses.get(0).getLatitude() * 1E6), 
         (int) (addresses.get(0).getLongitude() * 1E6)); 
       travel.setLatitude(String.valueOf(point.getLatitudeE6())); 
       travel.setLatitude(String.valueOf(point.getLongitudeE6())); 
       long res = travel.update(context, null); 
       if (res < 1){ 
        result = false; 
       } 

      }  
     } catch (IOException e) { 
      e.printStackTrace(); 
      result = false; 
     } 
+1

cos'è il viaggio qui? –

0

Esistono vari modi per pulire l'input di indirizzo e standardizzarlo nel formato previsto. Ma l'unico vero modo per convalidare un indirizzo per garantire che sia sia reale che corretto è utilizzare un servizio di verifica degli indirizzi.

La standardizzazione di un indirizzo consiste nell'assicurare che le cose sembrino buone, come la formattazione e la standardizzazione di un numero di telefono o di un indirizzo e-mail. Ma avere dati che sembrano solo buoni non è abbastanza. Hai bisogno di dati che è buono. Ad esempio, accetteresti un ordine se un utente fornisce una carta di credito che potrebbe essere buono? O vuoi una carta di credito che è buono? È lo stesso con gli indirizzi. Se stai raccogliendo un indirizzo, sarebbe bello sapere che è reale, disponibile e può essere utilizzato per lo scopo previsto. Altrimenti, sono solo dati spazzatura - spazzatura, spazzatura.

Fortunatamente nel tuo caso, poiché l'utente si trova su un dispositivo basato su Android, molto probabilmente avrà la connettività Internet che consente di eseguire una query a un servizio di verifica degli indirizzi di terze parti. Esistono numerosi servizi che forniscono la verifica dell'indirizzo stradale. Sono il fondatore di uno chiamato SmartyStreets. Il nostro LiveAddress API potrebbe essere proprio quello che stai cercando. E, a seconda del volume e degli affari, potrebbe anche essere completamente gratuito. Se no, non è un grosso problema, ci sono altri servizi là fuori che puoi utilizzare.

Problemi correlati