繁体   English   中英

Geocoder getFromLocation(lat,lon)不起作用

[英]Geocoder getFromLocation(lat,lon) doesn't work

我有一个活动,该活动首先使用AsyncTask从服务器获取和解析数据。 条目包含纬度和经度。

然后,在onPostExecute() ,加载我的适配器并显示我的listView。 在适配器的getView()我尝试使用纬度和经度显示位置:

private String getPosition(String longitude, String latitude)
{
    float lon = Float.parseFloat(longitude),
          lat = Float.parseFloat(latitude);

    Geocoder geocoder = new Geocoder(MyActivity.this, Locale.getDefault());
    List<Address> addresses = null;
    try
    {
        addresses = geocoder.getFromLocation(lat, lon, 1); 
    } catch (IOException e)
    {
        e.printStackTrace();
    }

    if(addresses == null || addresses.size() == 0) return "No location found.";
    else
    {
        String city = addresses.get(0).getAddressLine(1);
        String country = addresses.get(0).getAddressLine(2);
        return (city + ", " + country.toUpperCase());
    }
}

我总是收到“找不到位置”。 但我确定某些输入正确。 例如,纬度为39.017,经度为125.73。 Google的API显示至少有一个地址:

http://maps.googleapis.com/maps/api/geocode/json?latlng=39.017,125.73&sensor=true

我也在清单中声明了这一点:

<uses-permission android:name="android.permission.INTERNET" >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

但是所有这些都不会返回任何地址。 知道为什么吗?

当您将avd(虚拟设备)目标构建为Google API 19且应用程序的构建目标设置为“ Google API 19”时,geoCoder.getFromLocation(反向地理编码)方法将起作用。(您可以使用Project->修改构建目标属性)。 这对我有用。 如果您需要更多详细信息,请回复此帖子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM