Adi*_*rma -2 android google-geocoder
我正在尝试一个简单的应用程序,我需要显示一个地图.当我点击任何位置时,它应该返回该位置的地址.请你指导我如何继续这个.
我发现Google 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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2487 次 |
| 最近记录: |