Как узнать местоположение пользователя по GPS в Сенче - PullRequest
3 голосов
/ 29 марта 2012

Я пытаюсь получить позицию пользователя в Sencha Touch 2:

var geo = new Ext.util.Geolocation({
        autoUpdate: true,
        allowHighAccuracy: true,
        listeners: {
            locationupdate: function(geo) {
                lat = geo.getLatitude();
                lon = geo.getLongitude();

                // here comes processing the coordinates   
            }
        }
    });

Но у меня есть координаты только из сети.На устройстве Android нет значка GPS, указывающего, что я использую GPS.Также это не работает, когда я отключаю интернет.Как я могу включить GPS-позиционирование?В файле манифеста GPS включен.

Ответы [ 3 ]

1 голос
/ 31 мая 2012

Я тоже немного поняла.

Оказывается, в Sencha есть ошибка: в Ext.util.Geolocation.parseOption они называют параметр allowHighAccuracy, но спецификации w3c называют его enableHighAccuracy. Я добавил следующий код в мой init приложения, чтобы исправить это:

var parseOptions = function() {
    var timeout = this.getTimeout(),
        ret = {
            maximumAge: this.getMaximumAge(),
            // Originally spells *allowHighAccurancy*
            enableHighAccuracy: this.getAllowHighAccuracy()
        };

    //Google doesn't like Infinity
    if (timeout !== Infinity) {
        ret.timeout = timeout;
    }
    return ret;
};
Ext.util.Geolocation.override('parseOptions', parseOptions);

Для справки: ошибка была зарегистрирована более года назад и the fix was applied for TOUCH-2804 in a recent build. Я не знаю, что это значит, но, конечно же, ошибка все еще в 2.0

РЕДАКТИРОВАТЬ: использование вышеупомянутого подхода тоже не работает. Значок GPS будет включаться и выключаться, так как Exts вызывает getCurrentPosition несколько раз, используя setInterval. Причина для этого заключается в том, что The native watchPosition method is currently broken in iOS5. В моем Android-приложении я отказался от Ext: util.Geolocation и прямо использовал navigator.geolocation.watchPosition. После этого он работал как шарм.

0 голосов
/ 30 марта 2012

Эй, я думаю, вам нужны обновленные значения долготы и широты.

перейдите по этой ссылке .. Нажмите здесь

Я уже попробовал и проверил его в мобильном телефоне Android .. Он работает.

Примечание: должен и должен тестировать в мобильном телефоне с Android на статус GPS. Он не будет отображаться на эмуляторе затмения. Но он покажет в мобильном телефоне попробуйте ..

приятного.

0 голосов
/ 29 марта 2012

GPS-провайдер определяет местоположение с помощью спутников.В зависимости от условий этому провайдеру может потребоваться некоторое время, чтобы вернуть исправление местоположения.Требуется разрешение android.permission.ACCESS_FINE_LOCATION.

...