1

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 は、少なくとも 1 つのアドレスがあることを示しています。

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" />

しかし、これはすべてアドレスを返しません。理由はありますか?

4

1 に答える 1