2012-01-03 28 views
6

在我的應用程序中,我必須輸入用戶地址(美國)。用戶需要輸入一個有效的地址。我怎樣才能做到這一點?有什麼圖書館可以幫助我獲得州,城市和街道名稱嗎?如果可能,我想使用autotype。我閱讀GeoCoding,但我認爲它不會幫助我,因爲用戶沒有從當前位置輸入地址。驗證Android中的地址輸入

+0

該地址需要多精確?它只是郵政編碼和狀態,或者你是否需要城市名稱和街道地址。請記住,同一個地方可以有多個有效地址,例如,一條街道可能是一個號碼也被命名爲ex的高速公路:10號公路也被稱爲主要街道,它通過斯普林菲爾德。 – ethan 2012-01-03 22:22:21

+0

它需要精確..如何GPS設備呢?它有用戶輸入的州,城市和街道號碼,然後GPS找到地址並顯示給用戶。如果用戶同意,則繼續查找路線。我想要同樣的東西。 – 2012-01-03 22:30:35

回答

0

爲什麼不驗證區號?你應該通過這樣做來保存。

2

這就是我使用Google API查找位置的方法。也許它會幫助你:

 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

這裏旅行是什麼? – 2016-04-06 00:28:30

0

有各種方法來清理地址輸入並將其標準化爲預期的格式。但驗證地址以確保其真實和正確的唯一方法是使用地址驗證服務。

標準化一個地址就是要確保東西看起來不錯 - 比如格式化和標準化電話號碼或電子郵件地址。但只有看起來不錯的數據是不夠的。你需要的數據是好。例如,如果用戶提供的信用卡可能是好,您會接受訂單嗎?或者你想要一張信用卡,好?地址也一樣。如果你正在收集一個地址,它肯定會很高興知道它是真實的,可交付的,並且可以用於你的預期目的。否則,這只是垃圾數據 - 垃圾進入,垃​​圾出來。

幸運的是,對於您的情況,由於用戶位於基於Android的設備上,因此他們很可能會擁有互聯網連接,因此您可以對第三方地址驗證服務執行查詢。有一些提供街道地址驗證的服務。我是一個叫做SmartyStreets的創始人。我們的LiveAddress API可能就是您要找的。而且,根據您的數量和業務,它也可能完全免費。如果沒有,沒有什麼大不了的,還有其他服務可以利用。