Карты Google в Android инициализируют широту / долготу в 0.0 (иногда ...) - PullRequest
1 голос
/ 20 марта 2012

Я был довольно озадачен этим. Кажется, что моя реализация Google Maps или определение местоположения пользователей неэффективна. Прямо сейчас я получаю очень разрозненные результаты на разных устройствах, и я не уверен, почему, но время от времени широта / долгота иногда обнуляются.

У кого-нибудь есть идеи?

Вот метод, который я использую, чтобы получить мое текущее местоположение.

    try {
        locationListener = new MyLocationListener();
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 0, 0, locationListener);
        loc = locationManager.getLastKnownLocation("gps");

        if (loc == null) {
            loc = locationManager.getLastKnownLocation("network");
        }
        if (loc != null && loc.getLongitude() != 0.0
                && loc.getLatitude() != 0.0) {
            sLng = (loc.getLongitude());
            sLat = (loc.getLatitude());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

1 Ответ

2 голосов
/ 31 марта 2012

Вы используете последнее кэшированное местоположение. Это надежно, только если GPS использовался недавно (после загрузки телефона)

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

...