80
начиная с поколения 2G,
сотовая вышка может определить, с какого
направления приходит сигнал. В случае, когда телефон находится в зоне
действия двух или трех сотовых вышек, они могут выполнять триангуляцию
его местоположения. Телефон может запросить у сети информацию о том,
где он находится. Такая техника определения местоположения может быть
очень точной и не требует установки дополнительного оборудования.
Дополнительно
к
возможностям
определения
местоположения,
доступным обычным мобильным телефонам, большинство смартфонов
укомплектованы спутниковыми системами глобального позиционирования
(Global Positioning System, GPS). В настоящее время наиболее
распространенными
в
мире
системами
глобального
спутникового
позиционирования являются: GPS, разработанная и реализованная в США, и
система ГЛОНАСС (Глобальная навигационная спутниковая система),
советская, а позже российская спутниковая система навигации. Многие
смартфоны могут использовать сигналы сразу от двух навигационных систем,
что позволяет серьезно увеличить надежность и точность определения
координат, прежде всего, в городских условиях.
В дополнение к вышеперечисленным методам позиционирования,
добавляется возможность использования сигналов WiFi, Bluetooth и NFC, а
также внутреннего сенсора
для более точной геолокации, особенно внутри
помещений.
В этом разделе нас, в первую очередь, будет интересовать возможность
добавления в приложения способностей определять координаты устройства и
работать с картами. При создании приложений, учитывающих текущее
местоположение, под Android можно воспользоваться GPS и определением
местоположения в сети (с помощью Network Location Provider). Несмотря на
то, что GPS
дает более точные результаты, он не очень хорошо работает в
помещениях (чаще не работает), он сильно расходует заряд батареи и
скорость определения координат не всегда соответствует ожиданиям
пользователя. Network Location Provider определяет координаты, используя
сигналы сотовых вышек и WiFi, может работать как на улице,
так и внутри
помещений, более экономно расходует заряд батареи и работает быстрее по
сравнению с GPS. Для получения координат в приложении можно
использовать оба способа или один из них на выбор.
Android предоставляет приложениям доступ к геолокационным
возможностям мобильного устройства, через классы пакета android.location.
Центральным классом этого пакета является классLocationManager, который
предоставляет доступ к системным сервисам для определения координат
устройства.
В приложения
можно добавлять карты, используя Google Maps Android
API, которое автоматически управляет доступом к серверам Google Maps,
загрузкой данных, отображением карт и сенсорными жестами на карте. Также
можно использовать вызовы API для добавления маркеров, многоугольников
81
и внешних прозрачных слоев, а также для изменения пользовательского
представления отдельных участков карты.
Ключевым классом в Google Maps Android API является класс MapView,
который отображает карту с данными полученными из сервиса Google Maps.
Когда MapView имеет фокус, он может перехватывать нажатия клавиш и
сенсорные жесты для выполнения автоматического перемещения и изменения
масштаба карты, а также может управлять сетевыми запросами для получения
дополнительных фрагментов карты. Этот класс так же предоставляет все
элементы
пользовательского интерфейса, необходимые для управления
картой.
Google Maps Android API не является частью платформы Android, но
доступен на любом устройстве с Google Play Store, работающем, начиная с
Android 2.2, через Google Play services. Чтобы обеспечить возможность
интеграции Google Maps в приложения, в
Android SDK необходимо
установить библиотеку Google Play services.
Подробнее вопросы добавления в приложения геолокационных
возможностей и использование карт (Google Maps) рассмотрены в четвертой
части лабораторной работы к данной теме.
Достарыңызбен бөлісу: