【问题标题】:Reverse address using Geocoder使用地理编码器反向地址
【发布时间】:2012-06-30 13:26:47
【问题描述】:

我正在尝试获取特定地理点的地址,但是当我尝试使用 try 并捕获它时失败。这是我的代码

 srcGeoPoint = new GeoPoint((int) (src_lat * 1E6),(int) (src_long * 1E6)); 

        Geocoder geocoder=new Geocoder(getBaseContext(), Locale.getDefault());
        try
        {
            List<Address> addresses=geocoder.getFromLocation(srcGeoPoint.getLatitudeE6()/1E6,
                    srcGeoPoint.getLongitudeE6()/1E6,1);
            String add="";
            if(addresses.size()>0)
            {
                for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); 
                        i++)
                      add += addresses.get(0).getAddressLine(i) + "\n";
            }
            tv.setText(add);
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }

在这条线上失败了 列出地址=geocoder.getFromLocation(srcGeoPoint.getLatitudeE6()/1E6, srcGeoPoint.getLongitudeE6()/1E6,1); 有什么帮助吗??

【问题讨论】:

  • 这在模拟器上很常见。你在真机上试过了吗?
  • 还没有,但我使用的是静态地理点,为什么它不显示地址?

标签: android google-maps reverse-geocoding


【解决方案1】:

地理编码器在模拟器中不起作用,如下所述: Does geocoder.getFromLocationName not work on emulators?

我自己也实现了,它确实不在模拟器中,而是在设备上。

【讨论】:

    【解决方案2】:

    我还没有批准答案的权力,但 Diego 是 100% 正确的,地理编码器无法在模拟器上运行,如果你想调试它,你必须使用真实设备。相信我,直到我发现出了什么问题,我才用了最长的时间把头撞在墙上。所以请帮自己一个忙,以免脑震荡,只需使用真实设备

    【讨论】:

      【解决方案3】:

      您可以将这些转换为双打:

      srcGeoPoint.getLatitudeE6()/1E6
      srcGeoPoint.getLongitudeE6()/1E6
      

      完整代码:

      List addresses=geocoder.getFromLocation((double) (srcGeoPoint.getLatitudeE6()/1E6), (double) (srcGeoPoint.getLongitudeE6()/1E6),1);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多