правильный способ получения широты и долготы в Android - PullRequest
1 голос
/ 03 сентября 2010

Мне нужен правильный способ получения широты и долготы в Android программно.Я просмотрел разные сайты и форумы, но все равно не смог найти правильный.Программа должна поддерживать все версии Android.Я использую Wi-Fi, чтобы подключить устройство к сети.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2010

Не беспокойтесь, почесав голову в течение нескольких дней, я получил код, работающий в несколько строк для получения значений долготы и широты ... Я думаю, это поможет улучшить ситуацию, спасибо за ваши предложения !!!!1001 *

private double[] getGPS() {
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);  
List<String> providers = lm.getProviders(true);

/* Loop over the array backwards, and if you get an accurate location, then break out the loop*/
Location l = null;

for (int i=providers.length();i>=0;i--) {
    l = lm.getLastKnownLocation(providers.get(i));
    if (l != null) break;
}

double[] gps = new double[2];
if (l != null) {
    gps[0] = l.getLatitude();
    gps[1] = l.getLongitude();
}
return gps;}
0 голосов
/ 03 сентября 2010

Ниже реализация создает loclistener, который записывает обновленные значения в виде строк для удобства, которые могут быть легко извлечены. Используя LocationManager, вы извлекаете базовый метод (GPS / assissted-GPS, wifi, cell-tower) для получения местоположения.

Сначала инициализировать:

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
final myLocationListner ll = new myLocationListner();

LocationListener:

public class myLocationListner implements LocationListener {

        public static String lattitude = "";
    public static String longitude = "";

    @Override
    public void onLocationChanged(Location loc) {
        String temp_lattitude = String.valueOf(loc.getLatitude());
        String temp_longitude = String.valueOf(loc.getLongitude());

        if(!("").equals(temp_lattitude))lattitude = temp_lattitude;
        if(!("").equals(temp_longitude))longitude = temp_longitude;
    }

    @Override
    public void onProviderDisabled(String arg0) {

    }

    @Override
    public void onProviderEnabled(String arg0) {

    }

    @Override
    public void onStatusChanged(String arg0, int arg1, Bundle arg2) {

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...