Закрытый гештальт и много мяса на украинской картографической конференции

5327f697db6644098a2a6bce4b3f7859.jpg

В начале июня львовская компания Intellias внезапно провела конференцию Map Solutions в Киеве. Без особого продвижения в русских блогах она собрала полторы сотни украинских разработчиков и дюжину докладчиков из разных стран. Невзрачный пустующий бизнес-центр, типовой зал, чай-кофе-кола — рецепт идеальной конференции. Официальных языков три, и некоторые докладчики готовились выступать на английском, но, увидев участников вживую, прислушавшись к их идеальному русскому языку (с интересным акцентом), передумали. Объявляли доклады и перерывы, впрочем, всё равно на трёх языках, и выглядело это сюрреалистично: будто и в самом деле сидишь на международной конференции. Не встречал такого раньше.
Выступавший первым Кирилл Дмитриенко из Яндекса так долго работает над панорамами, что от некоторых видов его уже тошнит. Он подготовил презентацию на английском — с таким мелким шрифтом, что приходилось напрягаться. Это бич технарей: люди, не стесняйтесь писать слова во всю стену. Кирилл объяснил теорию построения и отображения панорам. Вначале они в Яндексе написали рендеринг в Canvas 2D: разрезали большую фотографию на треугольники, пересчитали в экранные координаты, нарисовали. Но вот незадача: Canvas медленный, особенно в мобильных устройствах и почему-то в Firefox. Иногда панорама грузилась полминуты. Но тут подоспел WebGL, переписали всё на нём, и сложные вычисления оказались не нужны. Побороться пришлось только с ограничениями на размер текстур (4К — безопасно, дальше где как), но решили банальным разрезанием на квадраты. Вторая половина доклада была про API Яндекс.Панорам, и на дюжину вопросов «А можно сделать так, как мне надо?» Кириллу приходилось отвечать: «Нет, только как мы разрешили, но мы подумаем, спасибо».

Зал был небольшим, отчего набит битком, колонки приличные, всё слышно. Презентации записывали на камеру и недавно опубликовали фотографии и видеозаписи. Лекцию Виктора Щерба из OsmAnd, пожалуй, нужно переслушать заново: он переработал доклад про создание картостилей с «Открытых ГИС», сделав плотный набор советов по каждому аспекту — от выбора цветов и набора объектов до консистентности и авторитарности дизайнера. В начале он спросил, кто не знает про OpenStreetMap: руки подняли человек десять (включая меня). Было странно, что при обилии слов про размеры и цвета за 20 минут Виктор не показал ни одной иллюстрации. Потом же пошли скриншоты, OsmAnd, платные обновления и прочее. Первый вопрос из зала был про монетизацию (очень волнующий), последний — почему на обзорном масштабе Киев не подписан.

Андрей Головин из Mapbox начал традиционно для осмера — с живой трансляции Show Me The Way. А затем, в контексте заинтересованности Mapbox автомобильной навигацией до полос, устроил мастер-класс по тегированию дорог в OpenStreetMap. С упором на рисование движения по полосам: даже упомянул древний плагин для визуального создания жутких отношений, который опытные осмеры так старались забыть. На экране сгущался JOSM, я периодически терял нить повествования, а каково было непосвящённым участникам, боюсь представить.

Продолжил атаку непонятными терминами и технологиями Mapbox Владимир Агафонкин. Он больше не рассказывает про Leaflet, вместо этого упоминает векторные тайлы и миллион библиотек, которые помогают с ними работать — превращать в них векторные данные и наоборот — и быстро отображать результат в браузере. Лейтмотив его презентации — «но я не нашёл подходящих инструментов, поэтому написал свою библиотеку, которая делает это быстрее других». Под конец от очередной «своей библиотеки» зал ржал. А я записал единственную ссылку, которая может пригодиться: Protozero для быстрого чтения и записи формата protobuf.

Ланч. Мясо, много мяса и никаких очередей. Обожаю организаторов. За столом поговорил с Александром из Intellias. Занимается геокодированием в промышленных масштабах, всё оптимизировано: облака, загрузка в память, тому подобное. Наших опенсорсных проблем с раскочегариванием Nominatim ему не понять. Вокруг бродили сплошь сотрудники Intellias — организатора конференции, зря постеснявшегося развести самопиар, — и Intetics, похожей киевской компании. Те и другие аутсорсеры и работают с картографией. Только у львовян есть крупный клиент с картографическим проектом, благодаря которому мы все собрались.

aaeff0f8162b4837a0b0c02d887507c8.jpg

Затем спустились на парковку смотреть машину картографов Here. Когда-то давно нашёл статью про картографические экипажи Navteq, серверы в багажнике, инерциальные поправки GPS и планшеты, на которых пассажир отмечает всё, что видит. Это предопределило увлечение сбором данных для OpenStreetMap из автомобиля и посеяло мечту посмотреть на такую машину поближе. Прошли годы, Nokia купила Navteq и переименовала в Here, затем автоконсорциум перекупил Here. И вот мы встретились, куда уж ближе: картографы посадили нас пассажирами и поехали вдоль квартала, объясняя, что и как они рисуют на планшете и куда собранное уходит потом.

36494141093140a88fa75e777e7399f6.jpg

Всё уже знакомо: два человека на автомобиль, периодически меняются местами, 40–50 км в день по городу, за городом можно и 200. По ходу собирается точный трек, семь видеозаписей с семи камер, звук с микрофона (правда, из-за матюков решили от него отказаться). Каждый день в приложении Atlas начинают новый проект, в который складываются данные; поверх карты можно рисовать, на экране сотня кнопочек про качество и класс дороги, заборы, ямы, трафик. Приложение то же самое, что десять лет назад, написано на Java, работает под Win XP и складывает данные в базу Oracle на тех самых серверах в багажнике. В Украине картографы двумя машинами собрали все дороги уровня residential и выше, в некоторых городах вообще всё. Правда, «всё» в контексте Here — это дорожная обстановка и адреса: цели сделать каталог POI или обвести леса у них нет.

Пропустил из-за поездки доклад Карлоса из CartoDB, про который говорили, что очень хорош, и попал снова на Here (их записи просили не публиковать). Андрей Шныр обещал рассказать про инкрементальное обновление офлайн-карт, и я был весь в предвкушении, ведь над этой темой мы начинаем думать и в MAPS.ME. На первый вопрос — кто в зале использует навигацию Here — руки подняли треть участников. Я в шоке. Как, зачем? Объясняя дорогу к пабу после конференции, организатор посетовал, что адрес нет смысла искать в навигаторе, всё равно не найдёте. Я не поверил, ввёл улицу и дом в MAPS.ME и сразу получил пешеходный маршрут до нужной точки. Сам паб не был отмечен, но не зря у нас кнопка «Добавить место». Не понимаю, зачем все эти люди жуют кактус Here, только из-за рекламы? Слышал, компания планирует перевезти в Киев четыреста сотрудников, так что неудивительно, что они налегли на пиар.

Мария из организаторов конференции особо просила выбрать техническую тему, применимую на практике, что-то, интересное программистам. Видно было, что многие докладчики старались: если не про конкретные API, как в панорамах и Mapbox, так про алгоритмы и структуры данных, как у меня и Никиты. Андрей единственный всех удивил, почти весь свой доклад посвятив рекламе компании Here и её продуктов. 30 гигабайт на весь мир! 200 слоёв! (Что?) А вот вам рекламный ролик (как водится, плеер заглючил). В конце — два слайда: инкрементальные обновления бывают бинарные (а-ля diff/patch) и семантические (с учётом формата). Всё. Впрочем, узнал из презентации про универсальный формат карт NDS, в котором учтена возможность обновления. Правда, под ним, кажется, имеют в виду скачивание целиком отдельных слоёв на отдельные регионы.

444180dd37324fceaa1a0a1e95987d02.jpg

Алекс Гонопольский продолжил тему Here, рассказав про те самые обновления, которых все ждали. Но поскольку Here концентрируется на дорожной сети, то и обновления их интересуют специфические. Алекс посчитал, что за 2013 год в Берлине изменилось всего 1,6% дорожного графа, причём характер изменений разный: где-то построили дороги, где-то поменялось ограничение скорости, а в данных в любом случае это считается за новый сегмент. Ищем самый оптимальный способ посчитать и отправить пользователю изменения дорожной сети, чтобы не пришлось качать по GPRS мегабайты.

Обновление карты присылают в момент построения маршрута на сервере. Проблема в пересечении и замене идентификаторов. Также важна консистентность на границах обновлённых данных, чтобы новые дороги не кончались тупиком. Решение: вместе с маршрутом шлют изменения дорожного графа, но только те, что недалеко от маршрута, — получается всего ничего тайлов (да, карты разбиты на тайлы размером около 0,001°, судя по слайдам). И проверяют, чтобы не было тупиков на границах тайлов. Иногда может быть дешевле не обновлять карту, а строить маршрут в объезд по старым данным.

6f43c3bbc00a46a49b0b507125dac875.jpg

Никита Платоненко работает в компании с двусмысленным названием FamilyInSafe. Что-то про общение внутри семьи и автоматические чекины с группировкой часто посещаемых мест. Так что весь доклад — про алгоритмы кластеризации, как «велосипедные», так и популярный DBSCAN с упоминанием k-means. Неожиданно информативно и технично, я даже сам понял, как работает кластеризация: просто вокруг каждой точки рисуем воображаемую окружность и объединяем пересекающиеся. А то до этого считал её волшебством, для которого лучше найти библиотеку и не забивать голову. Но у Никиты нет такого варианта: он работает не с Leaflet, а с Google Maps и Google Places.

Свой доклад я проговорил очень быстро, потому что вместо 40 минут, как у всех перечисленных, взял 20. Рассказал про форматы сжатия данных OpenStreetMap и интересные алгоритмические находки внутри них. Пропущенный дедлайн позволил не отвечать на сотню вопросов про MAPS.ME — сейчас уже понимаю, что зря.

Презентация Сергея Шелковникова из GISFile была слишком абстрактной. Хранение геоданных — очень конкретная тема: дай задачу, получи форматы и приложения. Но Сергей очень долго объяснял какие-то базовые вещи, вроде разницы между основными и дополнительными слоями и загрузки их в базу данных. Ждал уж рифмы OSM, но в контексте доклада его упомянули не более чем как тайлы для фона. «Можно, можно, можно»: мало конкретики, избыток расплывчатых советов.

Мы в OpenStreetMap примерно представляем картографическую сторону indoor-навигации, а Владислав Иванов из QROK рассказал про техническую. Он занимается маячками: коробочками с iBeacon (работают по BLE) и Wi-Fi. Приёмники ещё, кажется, используют акселерометры. Понравилось, что маяки производят в Одессе. Для навигации достаточно трёх маяков в видимости, больше — лучше, но когда их 15, они начинают мешать друг другу и система сходит с ума. Да ещё отражения: на улице с GPS достаточно отойти от стены здания, но внутри-то сплошь стены и потолки. Проблему отражений решили элегантно: составили базу показаний приёмников для всех точек помещения с шагом в два метра и позицию не вычисляют, а просто смотрят по таблице. Непонятна трудоёмкость добавления нового маяка или как снижение их мощности повлияет на точность позиционирования.

После расстановки маяков и замера сигналов нужна карта для приложения, чтобы смотреть, где какой магазин, и прокладывать маршруты. На ней также важно отметить мёртвые зоны, вроде подсобок и туалетов. Андрей Петров на прошлой «Схемотехнике» подробно рассказал про рисование комнат в OSM, у Here есть большая коллекция торговых центров, но QROK запартнёрился с Google Maps. И похоже, им для ТРК приходится рисовать схемы самостоятельно. Точность приёма — 1–5 метров, от батарейки маячки работают два года, но на всякий случай их проверяют чаще: если батарейка села, маячок уже не найдёшь, слишком мал. Эту неприятность хотят решить встраиванием маячков в электросеть — например, в освещение. Из ответов ещё узнал, что определение местоположения по Wi-Fi работает только в Android, на iOS нет прав.

Конференция закончилась, среди выложивших фотографии в фейсбук разыграли часы от TomTom, выбрав победителя с помощью random.org. Затем «шматочек информации» про пивную, и все сбежали. Отправив людей в обход по тротуару, я проверил прямой пешеходный маршрут от MAPS.ME — пробрался по тропинке сквозь кусты и спустился по заброшенной лестнице, откуда вышел прямо на нужную улицу. Официанты в пабе были в ужасе от количества людей: их не предупредили, и все заказы готовил единственный повар. Мы сидели достаточно долго, чтобы его дождаться, но почему-то группами: осмеры, программисты, блогеры, организаторы, сотрудники Here. Пиво разносили быстро, разговор клеился, вот уже и вечер, догнались с разработчиками OsmAnd чаем в «Шоколаднице» и разошлись по домам.

b32f3243671f445091757f8e7115ce0f.jpg

Украина нечасто появляется в геоинформационных новостях. Я смог вспомнить только «ГИС-форум», который в марте провели в Харькове, да пару инициатив Олега Селивёрстова про заповедники. В то же время там много разработчиков, много заказов на картографию, развивается indoor, все сотрудники Mapbox в Восточной Европе живут в Украине, да и Here опять же присматривается к стране. Уже полгода украинцы делают современный двуязычный блог 50 North про новости картографии — признак взросления сообщества. Конференция Map Solutions важна не только тем, что на день объединила интересующихся картографическими технологиями из разных стран, — это один из способов привлекать новых людей в картографию и выращивать собственную неокартографическую отрасль. Мы в OpenStreetMap можем использовать эти события для просвещения людей и привлечения их в открытые технологии и геоданные. Главное — чаще участвовать.

© Habrahabr.ru