Что такое POI и как цифровые карты знают, где жизнь
Публикации

Что такое POI и как цифровые карты знают, где жизнь

Типичный случай: человек вышел из кофейни, попытался найти её на карте, чтобы поделиться с другом — и не смог. Яндекс показывал пустое здание, а 2GIS знал про заведение, но координаты сдвинул на соседний двор. Проблема оказалась в адресе: «проспект Ленина, 24, вход со двора». Для картографических сервисов это кошмар. Геокодер превращает текст в точку на карте, но «вход со двора» он не понимает. Результат: реально существующее кафе живёт в цифровом лимбе, видимое только тем, кто уже знает, где искать. Такие случаи — не редкость. Поэтому поговорим о точках интереса.

Каждый раз, когда пользователь городских карт открывает их и видит значок кафе, банкомата или аптеки — это POI (Point of Interest), точка интереса. Но за этим сухим термином стоит целая инфраструктура: кто-то решил, что это место важно, кто-то указал его координаты, кто-то проверил, работает ли оно сейчас. Без POI карта — просто картинка с улицами. С POI — инструмент для решения задач: где поесть, где снять деньги, где переночевать.

Каждая такая точка — это набор данных. Минимум: широта, долгота и название. В идеале: адрес, часы работы, телефон, фотографии, категория, рейтинг, количество мест, доступность для людей с ограниченными возможностями. Разница между минимумом и идеалом — это разница между «метка на карте» и «полноценной карточкой заведения».

Откуда берутся эти данные: три разные философии

Философия первая: общество

OpenStreetMap работает по принципу Википедии. Люди сами добавляют то, что считают важным. В одном районе это может быть идеальная карта с каждой скамейкой и мусоркой. В соседнем — пустыня, потому что там нет энтузиаста. Особенность этого подхода: данные живые и честные. Если кафе закрылось, местный житель скорее удалит точку, чем коммерческий сервис. Если открылось новое место — фанаты кофе добавят его за день, без бюрократии. Но есть и обратная сторона. Качество сильно зависит от города. В Москве и Санкт-Петербурге OpenStreetMap конкурирует с коммерческими картами. В провинции покрытие разрозненное: одни районы размечены идеально, другие — пустые.

Философия вторая: коммерческая разведка

Сервисы вроде 2GIS или Яндекс.Карт не ждут, пока кто-то добровольно добавит данные. У них есть люди, которые методично обходят торговые центры и улицы, фотографируют вывески, записывают часы работы, проверяют телефоны. Это даёт высокую точность в тех местах, куда добираются обходчики. Крупные торговые центры, центральные улицы, популярные районы — покрыты отлично. Но есть и слепые зоны: новые заведения появляются в базе с задержкой в месяцы, мелкие точки без вывески пропускаются, спальные районы обходят реже.

Философия третья: машинное наблюдение

Google и подобные сервисы давно не полагаются только на людей. Их алгоритмы анализируют массу сигналов: координаты телефонов Android, фотографии с улиц, упоминания в соцсетях, отзывы на разных платформах. Алгоритм замечает: в этом здании вечерами собирается кластер устройств. Проверяет панорамы улиц — видит вывеску. Сканирует посты в соцсетях — находит геотеги. Создаёт POI автоматически, без участия человека. Масштаб такого подхода огромный. Но качество неидеальное: алгоритм видит вывеску, но не понимает, что это корпоративная столовая, закрытая для посторонних. Угадывает название, но ошибается в категории. Создаёт точку, которая существует на карте, но не в реальности

Как выдернуть POI для своего проекта: практический разбор

Сайт download.geofabrik.de выкладывает ежедневные срезы OSM по странам и регионам.

# Скачиваем Россию целиком
wget https://download.geofabrik.de/russia-latest.osm.pbf

# Фильтруем только нужные POI
osmium tags-filter russia-latest.osm.pbf \
 n/amenity=restaurant,cafe,bar,fast_food \
 n/shop=supermarket,convenience,bakery \
 n/tourism=hotel,museum \
 -o russia_pois.osm.pbf

# Конвертируем в удобный формат
osmium export russia_pois.osm.pbf -f geojson -o russia_pois.geojson

Утилита osmium работает быстро даже с многогигабайтными файлами. Фильтрация на уровне файла эффективнее, чем загрузка всего в базу.

Можно также воспользоваться overpass-turbo.eu. Видим карту мира и панель запросов слева. Базовый шаблон уже загружен. Меняем его под свою задачу:

[out:json][timeout:60];
area["name"="Владивосток"]->.searchArea;
(
 node["amenity"="cafe"](area.searchArea);
 way["amenity"="cafe"](area.searchArea);
);
out center;

Нажимаем «Run». Система показывает результаты на карте. Кнопка «Export» даёт GeoJSON, CSV, KML — что угодно для дальнейшей работы. Полезные теги для замены:

  • amenity=restaurant — рестораны
  • shop=supermarket — супермаркеты
  • amenity=bank — банки
  • amenity=pharmacy — аптеки
  • tourism=hotel — отели

Сегодня карты перестали быть просто картинками. Они решают, какие места достойны внимания, а какие останутся невидимыми. Точки интереса POI — это не техническая деталь, а точка соприкосновения цифрового и физического мира и качество этих точек определяет, получит ли человек свой кофе или проведёт двадцать минут в поисках несуществующего входа.