Как использовать GPS в помещении на мобильном устройстве?

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

Есть ли решение?

Вот мой код:

new Thread()
{

    public void run()
    {
        try
        {
            Criteria cr= new Criteria();
            cr.setHorizontalAccuracy(1000);
            LocationProvider lp= LocationProvider.getInstance(cr);

            Location l = lp.getLocation(60);
            Coordinates c = l.getQualifiedCoordinates();

            if(c != null )
            {
                lat = c.getLatitude();
                lon = c.getLongitude();
            }
        }
        catch(Exception e)
        {
            System.out.println("Error");
        }
    }
}.start();

person Nivek    schedule 10.01.2010    source источник
comment
Хм, GPS не работает в помещении... Чтобы он работал, вам нужна прямая видимость со спутниками.   -  person Robin Day    schedule 10.01.2010
comment
взгляните на это: walletpop.com/blog/2010/02/01/   -  person Özgür    schedule 06.12.2010


Ответы (4)


GPS основан на оценках расстояния от излучающих спутников до вашего приемника. Вашему приемнику GPS требуется (как правило) сигнал как минимум от 4 спутников, чтобы иметь возможность вычислить его местоположение. Уровни сигнала для диапазона L1 в условиях открытого неба примерно достигают -130 дБм. Коммерческие приемники, например встроенные в мобильные телефоны, способны отслеживать спутники до -160 дБм. Ниже этого порога приемник не может использовать сигнал. Этот запас в 30 дБ обеспечивает некоторое затухание от препятствий, таких как листва, стеклянные окна, даже легкие стены, но несколько этажей здания полностью маскируют сигналы почти со всех направлений, что делает GPS полностью недоступным. И даже если затухание позволяет приемнику использовать сигналы для вычисления своего положения, достигнутой точности, вероятно, будет недостаточно для вашего целевого приложения (точность снижается из-за затухания сигнала).

С другой стороны, системы определения местоположения Wi-Fi, такие как Skyhook (реализованные на многих мобильных платформах), часто могут вычислять местоположение внутри зданий, но этот метод имеет два основных недостатка:

  • Покрытие базы данных не включает внутренние помещения (AFAIK), поэтому возвращенное местоположение является очень приблизительным и непригодным для использования в любом приложении.
  • На алгоритмы определения местоположения Wi-Fi, основанные на оценке дальности до точек доступа с использованием уровней сигнала, очень сильно влияют внутренние препятствия (люди, мебель и т. д.). Это снижает точность позиционирования.

Есть и третий вариант: интегрировать ускорение от чипсета MEMS в мобильный телефон, от последней известной позиции GPS. Это может сработать при определенных условиях...

В заключение, готового решения для определения местоположения в помещении на мобильных телефонах не существует, но некоторые из них работают над этим вопросом (например, http://www.polestar.eu/en/node/111/y).)

Редактировать: я забыл упомянуть позиционирование на основе сотовой вышки, которое доступно, пока в телефоне есть активная коррекция данных в сотовой сети. Этот метод достаточно точен только для того, чтобы указать город, в котором находится мобильный телефон.

person Stéphane    schedule 13.01.2010

К сожалению, GPS никогда не предназначался для работы в помещении. На самом деле, большинство потребительских GPS-датчиков не способны получить правильное определение местоположения GPS, если у них нет четкого обзора неба. Даже высотные здания и густые деревья могут вызвать серьезные проблемы.

person Daniel Vassallo    schedule 10.01.2010
comment
Привет, спасибо за быстрый ответ. Но, например, такие встроенные в мобильное устройство приложения, как карты E71 или карты Google для мобильных устройств. Как эти приложения могут определить ваше местоположение, даже когда я нахожусь в помещении?? - person Nivek; 10.01.2010
comment
Большинство мобильных устройств, когда они не могут получить действительное местоположение GPS, сделают следующее: 1. Используйте триангуляцию вышек сотовой связи en.wikipedia.org/wiki/Mobile_phone_tracking#Network_Based; 2. Используйте последнее полученное местоположение GPS. - person Daniel Vassallo; 10.01.2010

Существуют базы данных точек доступа Wi-Fi, поэтому вы можете получить довольно хорошее представление о том, какие точки доступа находятся в пределах досягаемости: http://gadgets.boingboing.net/2008/10/22/google-gears.-adds-wi.html http://www.skyhookwireless.com/

person Andrew McGregor    schedule 10.01.2010

Я думал, что JSR 179 поддерживает сетевое позиционирование из коробки, поскольку Google Maps — это приложение Java, которое имеет эту функциональность. Но согласно форуму разработчиков Sony Ericsson и некоторым сообщениям на форумах разработчиков Nokia , похоже, лучше всего поискать идентификатор ячейки самостоятельно через системные свойства. и используйте службу поиска, например opencellid.org.

На Nokias, похоже, можно заставить работать сетевое позиционирование напрямую через JSR 179, хотя это требует изменения настроек телефона.

Набор

Меню -> Настройки-> Настройки телефона. -> Общие->Позиционирование->Сервер позиционирования

на supl.nokia.com (вставлено с форумов разработчиков nokia ). Это активирует сетевое позиционирование. Доступные методы определения местоположения см. в разделе Методы определения местоположения в S60.

person Alexander Torstling    schedule 10.01.2010