Android在服务中使用Geocoder获取位置地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android在服务中使用Geocoder获取位置地址相关的知识,希望对你有一定的参考价值。

我跟着this获得了位置坐标和地址

所以这里每10秒获取更新位置坐标纬度和经度

我正在尝试获取位置地址

在这里获取地址我正在使用Const

public class Const {

public static String getCompleteAddressString(Context m_context, double LATITUDE, double LONGITUDE) {
    String strAdd = "";
    Geocoder geocoder = new Geocoder(m_context, Locale.getDefault());
    try {
        List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
        if (addresses != null) {
            Address returnedAddress = addresses.get(0);
            StringBuilder strReturnedAddress = new StringBuilder("");

            for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("
");
            }
            strAdd = strReturnedAddress.toString();
            Log.v("My Current location add", "" + strAdd.toString());
        }
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(m_context, "Sorry, Your location cannot be retrieved !" + e.getMessage(), Toast.LENGTH_SHORT).show();

    }
    return strAdd;
}
}

现在在Main Activity获取我正在使用的地址

private void updateUI() {
mLatitudeTextView.setText(String.format("%s: %f", mLatitudeLabel,
        mCurrentLocation.getLatitude()));
mLongitudeTextView.setText(String.format("%s: %f", mLongitudeLabel,
        mCurrentLocation.getLongitude()));
mLastUpdateTimeTextView.setText(String.format("%s: %s", mLastUpdateTimeLabel,
        mLastUpdateTime));

//For Address

mLocAddTextView.setText(String.format("%s: %s", mLocAddressLabel,
Const.getCompleteAddressString(this, mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude())));
 }

但在这里显示没有任何人可以告诉我这里有什么不对

答案

你的守则是完美的

在你的Const class尝试这个

strReturnedAddress .append(returnedAddress.getAddressLine(0)).append("
");

如果你想使用邮政编码,地区和国家..等...使用

List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
if (addresses != null) {
    Address returnedAddress = addresses.get(0);
    StringBuilder strReturnedAddress = new StringBuilder("");
    for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                  strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("
");
    }
        strReturnedAddress .append(returnedAddress.getAddressLine(0)).append("
");
        strReturnedAddress .append(returnedAddress.getLocality()).append("
");
        strReturnedAddress .append(returnedAddress.getPostalCode()).append("
");
        strReturnedAddress .append(returnedAddress.getCountryName());
    strAdd  = strReturnedAddress.toString();
    Log.v("My Current location add", "" + streturnedAddressd.toString());
}

要获取地理编码器地址,请关注Android GeoCode Location

以上是关于Android在服务中使用Geocoder获取位置地址的主要内容,如果未能解决你的问题,请参考以下文章

从 android Geocoder 获取波斯信息

使用json而不是Geocoder从谷歌地图获取位置地址

如何在Android应用程序中使用Geocoder在特定位置找到大陆

Android Geocoder 和 Google Geocoding Web 服务之间的不同结果

创建 Android 位置对象

服务不可用-Geocoder Android [重复]