8

現在の場所の住所を受け取ることができるAPIがあるかどうかを知る必要があります。ロケーションマネージャーを使用して、現在の場所の緯度と経度を受け取りましたが、住所が必要です。

以下のAPIを試しました。

http://maps.googleapis.com/maps/api/geocode/json?latlng="+ lat + "," + lon + &sensor=true"

しかし、それは正確な場所を示していません.誰かが私を助けてくれますか.@Thanks

4

6 に答える 6

2
    String longti = "0";
    String lati = "0";
    LocationManager locationManager;

    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                        1000, 1, new MyLocationListners());

    final Location location = locationManager
                    .getLastKnownLocation(LocationManager.GPS_PROVIDER); 

//these are your longtitude and latitude  
         lati = String.valueOf(location.getLatitude());  
         longti = String.valueOf(location.getLongitude());

//here we are getting the address using the geo codes(longtitude and latitude). 

 String ad = getAddress(location.getLatitude(),location.getLongitude());


    private String getAddress(double LATITUDE, double LONGITUDE) {
        String strAdd = "";
        Geocoder geocoder = new Geocoder(this, Locale.getDefault());
        try {
            List<Address> addresses = geocoder.getFromLocation(LATITUDE,
                    LONGITUDE, 1);
            if (addresses != null) {
                Address returnedAddress = addresses.get(0);
                StringBuilder strReturnedAddress = new StringBuilder("");

                for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                    strReturnedAddress
                            .append(returnedAddress.getAddressLine(i)).append(
                                    "\n");
                }
                strAdd = strReturnedAddress.toString();
                Log.w("My Current loction address",
                        "" + strReturnedAddress.toString());
            } else {
                Log.w("My Current loction address", "No Address returned!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            Log.w("My Current loction address", "Canont get Address!");
        }
        return strAdd;
    }

public class MyLocationListners implements LocationListener {

        @Override
        public void onLocationChanged(Location location) {
        }

        @Override
        public void onProviderDisabled(String provider) {
        }

        @Override
        public void onProviderEnabled(String provider) {
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }

    }

//GPS とインターネットがオンになっていることを確認してください //また、コードを最初に実行したときに場所が表示されない場合もあります //Google サービスの問題により、電話を再起動する必要があります //これが役立つことを願っています

于 2013-05-13T06:14:57.527 に答える