我想要一個簡單的應用程序,我需要顯示map.And當我上的任意位置單擊它應該返回的該地址ülocation.Can請指導我如何執行該方法。地理編碼和反向地理編碼
-2
A
回答
0
你知道如何顯示在你的Android應用的地圖?如果沒有,你可以看看this不錯的教程。
然後顯示的地址可以這樣做:
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
0
用於獲取點擊的座標,檢查此線程:
Getting coordinates when clicking anywhere on a MapView
,你可以把座標爲ADRESS與此:
Address a = ((Address)geocoder.getFromLocation(latiAsDouble, longiAsDouble, 1).get(0));
String Position = a.getAddressLine(1) + " - " + a.getAddressLine(0);
這會做一個http c所有到谷歌服務器,所以你可能想把它放入某種線程。
6
我發現谷歌API是反向地理編碼非常方便。爲此我創建了這個類。您可以直接使用這個類在你的應用程序:
public class getReverseGeoCoding
{
private String Address1 = "", Address2 = "", City = "", State = "", Country = "", County = "", PIN = "";
public void getAddress()
{
Address1 = ""; Address2 = ""; City = ""; State = ""; Country = ""; County = ""; PIN = "";
try {
JSONObject jsonObj = parser_Json.getJSONfromURL("http://maps.googleapis.com/maps/api/geocode/json?latlng="+ Global.curLatitude + "," + Global.curLongitude +"&sensor=true");
String Status = jsonObj.getString("status");
if(Status.equalsIgnoreCase("OK"))
{
JSONArray Results = jsonObj.getJSONArray("results");
JSONObject zero = Results.getJSONObject(0);
JSONArray address_components = zero.getJSONArray("address_components");
for(int i = 0; i<address_components.length(); i++)
{
JSONObject zero2 = address_components.getJSONObject(i);
String long_name = zero2.getString("long_name");
JSONArray mtypes = zero2.getJSONArray("types");
String Type = mtypes.getString(0);
if(TextUtils.isEmpty(long_name) == false || !long_name.equals(null) || long_name.length() > 0 || long_name != "")
{
if(Type.equalsIgnoreCase("street_number"))
{
Address1 = long_name + " ";
}
else if(Type.equalsIgnoreCase("route"))
{
Address1 = Address1 + long_name;
}
else if(Type.equalsIgnoreCase("sublocality"))
{
Address2 = long_name;
}
else if(Type.equalsIgnoreCase("locality"))
{
// Address2 = Address2 + long_name + ", ";
City = long_name;
}
else if(Type.equalsIgnoreCase("administrative_area_level_2"))
{
County = long_name;
}
else if(Type.equalsIgnoreCase("administrative_area_level_1"))
{
State = long_name;
}
else if(Type.equalsIgnoreCase("country"))
{
Country = long_name;
}
else if(Type.equalsIgnoreCase("postal_code"))
{
PIN = long_name;
}
}
// JSONArray mtypes = zero2.getJSONArray("types");
// String Type = mtypes.getString(0);
// Log.e(Type,long_name);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public String getAddress1()
{
return Address1;
}
public String getAddress2()
{
return Address2;
}
public String getCity()
{
return City;
}
public String getState()
{
return State;
}
public String getCountry()
{
return Country;
}
public String getCounty()
{
return County;
}
public String getPIN()
{
return PIN;
}
相關問題
- 1. 反向地理編碼和本地化
- 2. J2ME +反向地理編碼
- 3. 反向地理編碼
- 4. 反向地理編碼v3
- 5. 反向地理編碼
- 6. IOS6反向地理編碼
- 7. 谷歌地圖 - 反向地理編碼
- 8. 反向地理編碼 - 返回本地
- 9. 反向地理編碼顯示地址
- 10. 反向地理編碼代碼
- 11. 反向地理編碼與botframework.location
- 12. 反向地理編碼不使用MKReverseGeocoder
- 13. 批量反向地理編碼
- 14. Google反向地理編碼問題
- 15. 反向地理編碼使用MKReverseGeocoder
- 16. xcode中的反向地理編碼
- 17. 以色列的反向地理編碼
- 18. 反向地理編碼實現
- 19. iOS5反向地理編碼限制
- 20. XML to excel - 反向地理編碼
- 21. HTML中的反向地理編碼
- 22. 反向地理編碼getPostalCode啓動
- 23. 反向地理編碼與AngularJS
- 24. Android:反向地理編碼 - getFromLocation
- 25. GoogleMap的v3可反向地理編碼
- 26. 反向地理編碼服務
- 27. 反向地理編碼android定價
- 28. 使用GPS的反向地理編碼
- 29. Google Maps API反向地理編碼 - result_type?
- 30. 如何反向地理編碼