Alexander Mylnikov

22Oct/150

Геолокация без GPS (часть 2)

wifi Здравствуйте! После предыдущей статьи (часть 1) я получил много отзывов о работе открытого API геолокации по WiFi и вышкам мобильных сетей. В этот раз я хочу представить свои исправления, лицензирование проекта, геопозиционирование по нескольким точкам доступа, кейсы использования и самое главное - текущие проблемы Сначала об исправленных ошибках:

  1. Исправлена грамматическая ошибка в ответе сервера (возвращался "lan" в место "lat") ключ "v=1.1"
  2. Добавлено лицензирование (об этом в конце)

Мобильные сети

Открытые данные
Основной критикой в сторону моего API был вопрос: "Чем плох OpenCellID?" ответ: ничем, кроме того что в этой базе мало данных. На данный момент у них 7,8 млн вышек. Это хороший результат для полностью открытой базы, но главный минус - это плохая точность. Сильно помогла база Mozilla Location Service для увеличения карты покрытия открытых данных. Из всех открытых баз я выкинул недостоверные данные, такие как радиус действия около 1200 км, либо же радиус действия 0. Т.е. вышка была "замечена" всего единожды, а следовательно, положение по ней можно оценить только качественно и по-хорошему точность 35 км как у средней соты (максимальная дальность средней соты за городом). Открытые данные обновляются автоматически раз в неделю. Т.е. база всегда актуальна. Сейчас в базе 13 млн. записей. Это отличный результат покрытия по всему миру. Надеюсь, вопросов, чем это лучше OpenCellID не будет. Важно отметить что в API нет никаких ограничений за количество запросов. Пример: http://api.mylnikov.org/mobile/main.py/get?v=1.1&mcc=250&mnc=02&cellid=200719106&lac=7840&data=open Сколько данных: 13.8M+ открытых данных (уникальных вышек)
Данные "как есть"
Здесь данные, на которые не распространяются никакие лицензии. Источников много, данные получаются достаточно достоверные. Скачать данные напрямую нельзя, но возможно получить в любом количестве через API. Система работы проста. Как только система получает запрос, на который не может ответить из текущей базы, производятся запросы к источникам, которые потенциально могут знать о регионе запроса. Важно заметить что "полученные" данные проходят полный цикл обновления за месяц. Пример: http://api.mylnikov.org/mobile/main.py/get?v=1.1&mcc=250&mnc=02&cellid=200719106&lac=7840 Развернутое описание работы с API геолокации по мобильным сетям
Уточненое местоположение
В документации описана функция геолокации по нескольким мобильным вышкам. Большинство открытых сервисов делать это не умеют и функция в диапазоне GSM-EDGE является крайне полезной, однако ответ API скорее носит качественную оценку геоположения. Я буду рад, если кто-нибудь напишет мне ([email protected]) и поможет решить задачу "триангуляции" по нескольким мобильным вышкам. Максимальное количество точек доступа: 12 Пример: https://api.mylnikov.org/mobile/main.py/get?v=1.1&search=MjUwLDAyLDc4... Потенциально, при работе некоторых телефонных аппаратов возможно получать данные о вышках нескольких телефонных операторов (либо 2 симкарты, либо супер карты телефонов, которые показывают все видимые вышки, примеров я не знаю).
Скачать данные

WiFi точки доступа

Открытые данные
Главный вклад в открытые данные привнес великолепный проект OpenWLANMap данные из данного проекта обновляются раз в неделю. Используются еще несколько источников, о них описано в подробной документации. Пример: https://api.mylnikov.org/wifi/main.py/get?v=1.1&bssid=00:0C:42:1F:65:E9&data=open
Данные "как есть"
Источников мало. Скачать данные напрямую нельзя, но возможно получить в любом количестве через API. Система работы идентична работе API для мобильных сетей. Период обновления 1 месяц Пример: https://api.mylnikov.org/wifi/main.py/get?v=1.1&bssid=A0:F3:C1:3B:6F:90 Развернутое описание работы с API геолокации по WiFi точкам
Уточненое местоположение
В документации описана функция геолокации по нескольким мобильным вышкам. Для точек доступа WiFi функция крайне полезная. Хотя и дает качественное положение, однако обычно сетевой адаптер мобильного устройства чаще всего получает лист всех точек доступа даже при отсутствии подключения к какой либо точке доступа. С помощью этих данных за один запрос можно получить координату с точностью до 150 метров. Максимальное количество точек доступа: 20 Пояснение: Разумеется, данные в базе есть не о всех точках вашей квартиры, однако, те, которые будут найдены будут использованы для уточнения геопозиции. Пример: https://api.mylnikov.org/wifi/main.py/get?v=1.1&search=Mjg6Mjg6.. Скачать данные

Актуальные проблемы

  • Совершенно не ясно как выбирать данные при условии наличия более одного источника. О некоторых точках доступа известно нескольким сервисам, причем неизвестно у кого из них данные более свежие и точные.
  • Не известно где искать дополнительные источники данных. Буду благодарен любому источнику.
  • Нагрузка после первой статьи сильно не увеличилась. Возникает ощущение что сервис не слишком интересен, возможно это из-за недоверия или молодости проекта.
  • "Уточненная" геолокация работает мягко говоря плохо.

Кейсы использования
С моей точки зрения API может быть полезно различным приложениям от геолокационых приложений до скрытого таргетинга контента приложений
Лицензирование
Лицензирование у проекта несколько хитрое. Через одно API (для мобильных вышек и WiFi точек доступа соответственно) доступно два проекта.

  1. ключ data=open. Данный ключ дает гарантию, что данные из ответа были получены исключительно из открытых источников. Данные распространяются под лицензией MIT
  2. отсутствие ключа data=open не дает никаких гарантий об источниках данных, а также данная часть проекта не лицензируется вовсе.

Доступность
Работоспособность сервиса "почти" гарантирован в течении 3х лет, точнее до конца 2018 года при наличии высого количества запросов со стороны пользователей и 1 года при отсутствии нагрузки. Фактически работает два сервера в назависимых дата-центрах. Средний показатель uptime за последний квартал 99,923% (по данным Яндекс.Метрики). Обратная совместимость каждой версии API гарантирована через ключ "v=" бессрочно.
Пояснение
Ни при каких обстоятельствах я не претендую на владение данными этого проекта. Я лишь хочу, чтобы в интернете был достоверный обширный и доступный источник геолокационных данных. Все данные принадлежат правообладателям. P.S. Я доступен в любое время дня и ночи по электронной почте [email protected] и готов выслушать любую критику, пожелания и предложения.

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

No trackbacks yet.