【问题标题】:Inverse Geocoding逆地理编码
【发布时间】:2012-02-04 13:21:33
【问题描述】:

我的问题是我有一个 Activity,当您按下按钮时,计时器开始计数,并在同一时刻获取坐标并将其保存到变量中。然后,当您再次按下按钮时,计时器停止并获取新坐标并将其保存在其他变量中。

然后我用这段代码做逆地理编码:

private void tradueixpos() {
    Geocoder geoCoder = new Geocoder(this, Locale.getDefault());
    try {
        Log.v("e", String.valueOf(latituteField));
        Log.v("e", String.valueOf(longitudeField));
        List<Address> Locat = geoCoder.getFromLocation(latituteField, longitudeField, 1);
        if (!Locat.isEmpty()) {
            Address address = Locat.get(0);
            result = address.getAddressLine(0) + ", " + address.getLocality();
            //number = address.getSubThoroughfare();
            //streetName = address.getThoroughfare();
            //Log.v("e", number+", "+streetName);
        }
        else {
            Log.v("error", "no trobat");
        }       
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

然后,它将初始地址和最终地址传递给另一个活动。

我的问题是它返回 null 或者有时它不起作用,并且总是出现一些错误。我认为地理编码不起作用。

(我正在使用 api 15)

我设置了权限,有没有人可以帮我做这个??

谢谢

【问题讨论】:

标签: android geocoding


【解决方案1】:

看看http://developer.android.com/reference/android/location/Geocoder.html。 它说:

Geocoder 类需要一个不包含在核心 android 中的后端服务 框架。如果没有后端,Geocoder 查询方法将返回一个空列表 平台上的服务。使用 isPresent() 方法判断 Geocoder 是否 实现存在。

【讨论】:

  • 我终于解决了问题,但是现在坐标不好,我的意思是在控制台“geo fix 43.231 1.899”中输入了我家附近的坐标,但程序说坐标来自索马里......这很正常吗?
  • 你必须颠倒经纬度! =)
【解决方案2】:

如果您在模拟器中进行测试,那么在更高版本的模拟器中,该服务将不起作用。例如,我知道它在 API 9 中被破坏了。如果 API 15 也是如此,我不会感到惊讶。我知道 API 7 模拟器确实可以工作,所以您可能想在 API 7 中尝试相同的代码。真实设备它似乎仍然可以正常工作。 (我的姜饼手机可以正常使用)

【讨论】:

    猜你喜欢
    • 2011-06-19
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多