2

我的代码:

                 try
                {

                            Geocoder geocoder;
                        List<Address> addresses;

            geocoder = new Geocoder(LocationActivity.this, Locale.getDefault());

            addresses = geocoder.getFromLocation(longitude,latitude,1);

            Toast.makeText(LocationActivity.this, addresses.size() + "", Toast.LENGTH_LONG).show();

            String address = addresses.get(0).getAddressLine(0);
            String city = addresses.get(0).getAddressLine(0);
            String country = addresses.get(0).getAddressLine(0);

            Toast.makeText(LocationActivity.this, address + "  " + city + " " + country, Toast.LENGTH_LONG).show();

        }
        catch(Exception e)
        {
            Toast.makeText(LocationActivity.this,e.toString(), Toast.LENGTH_LONG).show();
        }

这是我从经度和纬度获取地址的代码。但每次addresses.size返回0

谁能帮我这个

4

5 回答 5

2

我找到了解决方案...等一下CtrlgetFromLocation()然后转到Geocoder.class。然后为您的 android API 下载源代码并重新启动您的项目。然后你会看到它的工作

于 2019-10-13T11:24:08.567 回答
0

如果平台中没有后端服务,Geocoder 查询方法将返回一个空列表。

参考 - http://developer.android.com/reference/android/location/Geocoder.html

于 2014-09-28T05:20:32.517 回答
0

如果您使用的是模拟器,请转到 DDMS,您会找到模拟器控制并在其中提供您的有效纬度 lng,然后按发送.. 并且 Batter 确保在清单中提及 Internet 权限...

    try {
        Geocoder geocoder;
        List<Address> addresses;

        geocoder = new Geocoder(this, Locale.getDefault());

        double longitude = 23.00000;
        double latitude = 72.00000;
        addresses = geocoder.getFromLocation(longitude, latitude, 1);

        Toast.makeText(this, addresses.size() + "", Toast.LENGTH_LONG)
                .show();

        String address = addresses.get(0).getAddressLine(0);
        String city = addresses.get(0).getAddressLine(1);
        String country = addresses.get(0).getAddressLine(2);

        if(address==null)
        address="";
        if(city==null)
            city="";
        if(country==null)
            country="";

        Toast.makeText(this, address + "  " + city + " " + country,
                Toast.LENGTH_LONG).show();

    } catch (Exception e) {
        Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
    }
于 2012-10-08T09:03:02.177 回答
0

我不确定这是否会有所帮助,但我认为你得到了一个 IOException。看看 LogCat。也看到这个

于 2012-10-08T09:45:15.383 回答
0

在 try 循环中使用条件 address.size() > 0 修复它。

我并没有真正发现真正的问题在哪里,但似乎循环发生了两次,一次太早了,因为我可以让循环发生两次,一个空结果和一个好结果。

也许来自我作为通过意图传递的两个地图和日期。但为我固定

于 2020-05-28T09:52:13.673 回答