2011-05-02 137 views
5

有沒有辦法從當地或拉特或長期獲取當前用戶位置的郵政編碼。 如果是這樣怎麼樣?郵政編碼

回答

5

是的,你可以...所有你需要做的是提取

http://maps.google.com/maps/geo?ll=緯度,經度

http://maps.google.com/maps/geo?ll=10.345561,123.896932 

或者嘗試嘗試這種solutions.I可以給你出個主意。

你可以擁有一個城市嗎?使用此json數據,如果您擁有此格式郵政編碼的數據庫(在maxmind.com)

CountryCode |城市|郵政編碼


PH | |宿霧6000

現在查詢數據庫,是相對於,根據Google的回報COUNTRYCODE。

UPDATE

地址解析API V2已經推掉9月9日,2013年

這裏的API服務的新URL

http://maps.googleapis.com/maps/api/geocode/json?latlng=your_latitude,your_longitude

http://maps.googleapis.com/maps/api/geocode/json?latlng=10.32,123.90&sensor=true

+0

thanx ...讓我試試 – Udaykiran 2011-05-02 10:10:21

+1

從第一個......沒有郵編來檢索 – Udaykiran 2011-05-02 10:19:48

+0

@Udaykiran你需要另一個有zipcode記錄的數據庫。這是database.http的例子:/ /ipinfodb.com/zipcode_database.php – kedomonzter 2011-05-02 10:25:44

7

使用Android Geocoder API

getFromLocation(double,double,int)就是您所需要的。

2

基於地理編碼器實現:

private String getZipCodeFromLocation(Location location) { 
    Address addr = getAddressFromLocation(location); 
    return addr.getPostalCode() == null ? "" : addr.getPostalCode(); 
} 

private Address getAddressFromLocation(Location location) { 
    Geocoder geocoder = new Geocoder(this); 
    Address address = new Address(Locale.getDefault()); 
    try { 
     List<Address> addr = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1); 
     if (addr.size() > 0) { 
      address = addr.get(0); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return address; 
} 

您也可以從地址等信息,比如城市名稱。