Как определить мое текущее местоположение (долгота, широта и высота)? - PullRequest
1 голос
/ 13 марта 2011

Я хочу определить свое текущее положение (широта, долгота и высота).В моей базе данных у меня есть содержимое таблицы по местоположению таблицы (идентификатор, имя, адрес, долгота, широта, высота)

Как определить текущее положение и наиболее близкое местоположение?

Я добавил это в manifest.xml:

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

Как я могу использовать методы (.getlongitude (); .getLatitude (); .getaltitude ()

В документации это не понятно.

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 13 марта 2011

Вы можете выбрать либо получить последнее известное местоположение, либо прослушивать обновления. Самый простой способ - получить последнюю версию:

Местоположение lastKnownLocation = locationManager.getLastKnownLocation (LocationManager.NETWORK_PROVIDER);

Если вам нужно точное местоположение, вам нужно прослушивать обновления, используя requestLocationUpdates ().

Кроме того, не забудьте проверить, включено ли устройство GPS, см. Как узнать, включен ли GPS на устройстве Android

Чтобы найти ближайшие адреса, см. http://developer.android.com/reference/android/location/Geocoder.html

3 голосов
/ 20 апреля 2011

Сначала включите Ur GPS.

    private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1; // in Meters
    private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds

    public static double lontitube,latitude;

    protected LocationManager locationManager;
    protected Location currentLocation;
 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 
                MINIMUM_TIME_BETWEEN_UPDATES, 
                MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
                new MyLocationListener()
        );
}

 protected void performReverseGeocodingInBackground() {
        showCurrentLocation();

    }

    protected void showCurrentLocation() {

        currentLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

        if (currentLocation != null) {
            String message = String.format(
                    "Current Location \n Longitude: %1$s \n Latitude: %2$s",
                    currentLocation.getLongitude(), currentLocation.getLatitude()

            );
            lontitube=currentLocation.getLongitude();
            latitude=currentLocation.getLatitude();

            System.out.println("----lati----longi----"+latitude+"\n"+lontitube);

               Toast.makeText(Demo.this, message,
               Toast.LENGTH_LONG).show();
        }

    }   

    private class MyLocationListener implements LocationListener {

        public void onLocationChanged(Location location) {

       String message = String.format(
                    "New Location \n Longitude: %1$s \n Latitude: %2$s",
                    location.getLongitude(), location.getLatitude()
            );
            Toast.makeText(Demo.this, message, Toast.LENGTH_LONG).show();
        }

        public void onStatusChanged(String s, int i, Bundle b) {
            Toast.makeText(Demo.this, "Provider status changed",
                    Toast.LENGTH_LONG).show();
        }

        public void onProviderDisabled(String s) {
            Toast.makeText(Demo.this,
                    "Provider disabled by the user. GPS turned off",
                    Toast.LENGTH_LONG).show();
        }

        public void onProviderEnabled(String s) {
            Toast.makeText(Demo.this,
                    "Provider enabled by the user. GPS turned on",
                    Toast.LENGTH_LONG).show();
        }

    }

В AndroidManifest добавьте

ACCESS_FINE_LOCATION

разрешение для использования GPS.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...