62,271
社区成员
发帖
与我相关
我的任务
分享
我以前做过好像可以用地名解释成经纬度,反过来应该也会有解释的方法吧!
//从地址Geopoint取得Address
public String getAddressbyGeoPoint(GeoPoint gp)
{
String strReturn = "";
try
{
/* 创建GeoPoint不等于null */
if (gp != null)
{
/* 创建Geocoder对象,用于获得指定地点的地址 */
Geocoder gc = new Geocoder(Map_index.this, Locale.getDefault());
/* 取出地理坐标经纬度*/
double geoLatitude = (int)gp.getLatitudeE6()/1E6;
double geoLongitude = (int)gp.getLongitudeE6()/1E6;
/* 自经纬度取得地址(可能有多行)*/
List<Address> lstAddress = gc.getFromLocation(geoLatitude, geoLongitude, 1);
StringBuilder sb = new StringBuilder();
/* 判断地址是否为多行 */
if (lstAddress.size() > 0)
{
Address adsLocation = lstAddress.get(0);
for (int i = 0; i < adsLocation.getMaxAddressLineIndex(); i++)
{
sb.append(adsLocation.getAddressLine(i)).append("\n");
}
sb.append(adsLocation.getLocality()).append("\n");
sb.append(adsLocation.getPostalCode()).append("\n");
sb.append(adsLocation.getCountryName());
}
/* 将取得到的地址组合后放到stringbuilder对象中输出用 */
strReturn = sb.toString();
}
}
catch(Exception e)
{
e.printStackTrace();
}
return strReturn;
}