Pull to refresh
0
Microsoft
Microsoft — мировой лидер в области ПО и ИТ-услуг

Геолокация в Windows 7 без GPS

Reading time 2 min
Views 49K
Много ли вы видели ноутбуков, которые оснащены GPS датчиком? Примерные оценки можно посмотреть тут, 58 штук из 4380, то есть 1.3%. Прямо скажем — не много. Трудно назвать все причины, по которым производители не оснащают портативные компьютеры, в общем-то, недорогим чипом, но наша заметка как раз о том, как ваш ноутбук снабдить функциональностью геолокации, даже если GPS датчика у вас нет. А заодно вы узнаете, как очень просто получить ваши координаты программным способом.

Поговорим о погоде?


Пользуетесь ли вы гаджетом погоды в Windows 7? До недавнего времени я не пользовался, так как вбивать в ручную очередной город (а путешествую я очень много) мне было лень. Опция автоматического определения моих координат не работала.
Настройки гаджета погоды Windows 7
Все дело в том, что гаджет этот пытается определить ваши координаты через Windows7 Sensor API. И требует наличия драйвера сенсора. Недавно, подготавливая презентацию к Платформе 2011 я наткнулся на сенсор Geosense, который очень неплохо определяет координаты. Для сервиса погоды они годятся на 100%.
Гаджет погоды Windows 7
На самом деле точность, высокая, работает он на базе Google Location Service (WiFi и IP базы) и я его успел протестировать как минимум в трех местах:
  • ЦМТ на Краснопресненской с помощью WiFi который был в гостинице. Он определил местоположение с точностью до здания.
  • Точно так же замечательно определил местоположение, когда в ЦМТ я был подключен по кабелю (IP)
  • В Угличе определил местоположение через WiFi с точностью до дома
  • Сейчас сижу в Шереметьево Д и опять таки определил местоположение с точностью до терминала.

Не забудьте только сконфигурировать этот сенсор как используемый по умолчанию, так как сенсор Orion в России, к сожалению, работает не достаточно точно.Настройки сенсора геолокации

Определяем координаты программно


Извините, сэр, где мы находимся?
-Вы находитесь в корзине воздушного шара, джентльмены.
Холмс, шепотом: -Ватсон, держу пари, что этот человек — программист.



Windows 7 Sensor API реализован в том числе и в .NET Framework 4.0. Вам достаточно написать буквально 3 строчки кода, чтобы понять, где вы находитесь:

Код программы определения местоположения
Нахожусь я сейчас в Шереметьево Д, подключен к хотспоту «Terminal-D WiFi-Free» и вот что мне эта программа возвращает:
Результаты геолокации в BingMaps

Немного про безопасность


Конечно, в Windows 7 есть возможность задать разрешения на использование этого API. Если ваше приложение пытается определить координаты, то обязательно появится предупреждение:
Включение сенсора
А так же можно настроить доступ пользователей:
Конфигурация сенсоров для пользователей
Все обращения к API геолокации фиксируются в журнале:
image

Резюме


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

Исходники простого консольного приложения использующего Geolocation API вы можете скачать из MSDN Code Gallery по адресу code.msdn.microsoft.com/Windows-7-Geolocation-API-25585fac
Tags:
Hubs:
+69
Comments 52
Comments Comments 52

Articles

Information

Website
www.microsoft.com
Registered
Founded
Employees
Unknown
Location
США