4

地図をタップして、その場所の住所を取得するにはどうすればよいですか。特定の場所をタップすると、住所を取得できる座標をリッスンして渡すことができますが、Android Googleマップv2で機能するはずです。

4

3 に答える 3

2

これは、完全なマップ操作を使用するのに役立つ場合があります

于 2013-08-13T12:40:38.277 に答える
2

LatLng データがあれば、とても簡単です。Goecoderを使用する必要があります。

    protected String doInBackground(Location... params) {
        Geocoder geocoder =
                new Geocoder(mContext, Locale.getDefault());
        // Get the current location from the input parameter list
        Location loc = params[0];
        // Create a list to contain the result address
        List<Address> addresses = null;
        try {
            /*
             * Return 1 address.
             */
            addresses = geocoder.getFromLocation(loc.getLatitude(),
                    loc.getLongitude(), 1);
        } catch (IOException e1) {
        Log.e("LocationSampleActivity",
                "IO Exception in getFromLocation()");
        e1.printStackTrace();
        return ("IO Exception trying to get address");
        } catch (IllegalArgumentException e2) {
        // Error message to post in the log
        String errorString = "Illegal arguments " +
                Double.toString(loc.getLatitude()) +
                " , " +
                Double.toString(loc.getLongitude()) +
                " passed to address service";
        Log.e("LocationSampleActivity", errorString);
        e2.printStackTrace();
        return errorString;
        }
        // If the reverse geocode returned an address
        if (addresses != null && addresses.size() > 0) {
            // Get the first address
            Address address = addresses.get(0);
            /*
             * Format the first line of address (if available),
             * city, and country name.
             */
            String addressText = String.format(
                    "%s, %s, %s",
                    // If there's a street address, add it
                    address.getMaxAddressLineIndex() > 0 ?
                            address.getAddressLine(0) : "",
                    // Locality is usually a city
                    address.getLocality(),
                    // The country of the address
                    address.getCountryName());
            // Return the text
            return addressText;
        } else {
            return "No address found";
        }
    }
    ...
}
...

}

これを行う最善の方法は、AsyncTask を使用することです。完全な例は、Android 開発者のサイトにあります: http://developer.android.com/training/location/display-address.html

于 2013-08-13T13:09:55.183 に答える
1

Android GeoCoderでこれを行うことができます。GoogleMapsv2では、 longpressを使用してポイントを取得できますLatLng。これらの座標を取得して に渡すことで、GeoCoder「リバース ジオコード」を行って住所を見つけることができます。

于 2013-08-13T12:33:40.390 に答える