Ctrl + ↑ Позднее

Хакатон MAPS.ME

В середине июня команда MAPS.ME почти в полном составе ездила на хакатон. Не чей-то чужой, вроде хакатонов по открытым данным или по дата-журналистике, а внутренний. Как два и три года назад, мы на несколько дней покинули офис и семьи, чтобы сконцентрироваться на экспериментах в развитии приложения. День подготовки, три дня работы и выступление в конце.

Самая большая команда разработчиков, включая программистов под iOS и Android, набросилась на задачу UGC: добавить отзывы в карточки объектов. Кажется тривиальной задачей: мы видели отзывы и в специализированных приложениях, типа Foursquare, и в популярных онлайн-картах. Но приложение MAPS.ME хорошо не только дизайном, но и работой в отсутствие интернета. Как вы сделаете отзывы, когда нет сети?

В конце хакатона группа UGC показала звёздочки и смайлики для оценки заведений, но картинки не отразили масштаба работы. Разумеется, должны быть отзывы, и их нужно не только собирать в офлайне, но и показывать, то есть, хранить в файлах карт. Это требует лучших алгоритмов сжатия. Для ресторанов полезно спросить, понравилась ли еда, и какая именно, а для автомойки — качественно ли протёрли кузов и вежливо ли обошлись. Команда вручную просмотрела около 250 категорий объектов, выбрав для каждой признаки, которые могут быть интересны пользователям.

Поскольку внутренние идентификаторы объектов меняются с каждой сборкой карт, мы привяжем отзывы к идентификаторам OpenStreetMap. То есть, по сути, мы проектируем систему отзывов на объекты OSM — как давно мечтали некоторые наши участники. Прошлые попытки не вышли из статуса демонстраций для своих, а тут сразу будет аудитория из десятков миллионов пользователей. Наконец-то они будут писать «неплохая пицца» не в название ресторана, а в отзывы. Может быть, удастся договориться с руководством MAPS.ME об общей базе с другими приложениями на OSM.

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

OpenStreetMap — глобальный проект с единой системой тегирования. Если получилось нарисовать московское метро — получится и нью-йоркское. Так мы думали. Хорошая попытка, но нет: русские рисуют линии не так, как немцы, англичане — не так, как корейцы. Как вы знаете, схема метро состоит из трёх элементов:

  • Станции — на самом деле, это комплекс из платформы, точек, где останавливаются поезда, и станции как сущности. Нередко это четыре разных объекта, а то и больше. Схема общественного транспорта 2.0, при этом, забывает про точки railway=station в случае метро: это же не платформа и не остановка, дублировать нельзя. Это вообще не физические объекты! Мапперы иногда тоже о них забывают. А с отношением stop_area вообще получается тушите свет.
  • Линии — опять две сущности в одной. Это и пути, по которым движется поезд. Картографы очень любят их рисовать, потому что получается красиво, и считают их главной частью отношения маршрута. Увы, пользы от них ноль: важна линия как последовательность остановок, от первой до последней. И тут бардак. Причём, в России ещё нормально, пришлось править только московский МЦК, а в Лондоне многие линии почти не имеют станций.
  • Пересадки — их в OSM нет. Не в смысле, не нарисовали, а вообще: для пересадок нет схемы тегирования, никто даже не пытается их картировать. Иногда встречаются попытки смоделировать пересадки отношением stop_area, но лучше бы не пытались. Приходится определять пересадки по близости и затем удалять лишние рёбра.

В общем, за три дня и не такие данные удавалось выпрямить: мы не только автоматически обработали, пусть и с ручной доводкой, системы метро Минска, Москвы, Петербурга, Вены, Барселоны и Сеула, но и сделали полноценный интерфейс! Команда удивлённо наблюдала знакомые схемы в городской геометрии на затенённом фоне карт, а докладчик выбирал станции и прокладывал маршруты с пересадками. Видео его демонстрации опубликовано на ютубе, выглядит примерно так:

Вы нескоро увидите эти технические наработки: за два дня не пишут тесты и проверяют код менее тщательно. Это были эксперименты, но они станут основой для будущих улучшений MAPS.ME. Мы сделаем и навигацию по общественному транспорту, и отзывы, но точно не в том виде, как за эти три дня. Это только часть наших больших планов: приложение через полгода будет несравнимо с нынешним.

В перерывах между работой мы купались, жарили шашлык и бургеры, катались на велосипедах (не всем удалось миновать охрану и поехать изучать окрестности реки Яхромы) и сегвеях. Когда садилось солнце, кто-то увлечённо пел караоке, кто-то, уединившись, смотрел фильмы ужасов. Удивлялись безальтернативному меню ресторана и в панике тушили угли, пока ураган не швырнул их в деревянный дом. По пути домой с трудом не выезжали на автобусные полосы: несмотря на дни работы среди коллег, сложно было поверить, что за окном не воскресенье, а середина рабочей недели.

23 июня   maps.me

Приходите к осмерам

Открыли регистрацию на конференцию State of the Map 2017 в Японии. Можете позволить себе перелёт и гостиницу — едьте обязательно! До конца июня входные билеты (которые включают буклеты, футболку, обеды) дёшевы, 75€ на осмера, с первого июля цена вырастет в полтора раза. Программу конференции начнут публиковать через пару недель: организаторы почти выбрали хорошие доклады из 88 заявок, не считая lightning-ов, а утрамбовать их в два дня — непростая задача.

Гораздо ближе нам десятая «Схемотехника». Она пройдёт в Москве вечером следующего четверга, 18 мая. Если будете в городе, немедленно регистрируйтесь и не забудьте паспорт, чтобы пройти в офис Mail.Ru Group у метро «Аэропорт».

Встреча начнётся в 19:00, новостями и расследованиями поделятся Андрей Жуков, Владимир Елистратов, авторы сервиса OpenTripMap и другие. Пока есть свободное время для вашего рассказа. Сделали что-то интересное намедни, успели узнать про формат TopoJSON и разочароваться в нём, снова нашли карту возраста московских домов, подняли ГИС региона на открытом ПО, устали от сообщества ГИС-Лаб? Напишите тему выступления Илье, регистрируйтесь на встречу и приходите, расскажете остальным и обсудите тему с заинтересованными людьми.

12 мая   sotm   конференции

Два два ноль и три три ноль

В рассылке dev@ с разницей в один день опубликовали два важных анонса новых версий. Во-первых, Брайан выпустил iD 2.2.0. Вторая версия вышла в ноябре, но там не было заметных внешних изменений: повинуясь требованиям Semantic Versioning, первую цифру увеличили из-за несовместимых изменений API. В 2.1.0 добавили поддержку GeoJSON с KML и красивые плавные изменения.

Новый iD больше не рисует меню полукругом при выборе объекта. Столько раз из-за него случайно удаляли дороги или округляли здания! Теперь меню спрятано под правую кнопку мыши, что позволит расширять его неограниченно, а не пока есть места в круге. В теории звучит хорошо, на практике столбик непонятных значков озадачивает. Ждём следующего шага: понятных слов вместо пиктограмм.

Самым опытным редакторам позволили добавлять теги к пакетам правок, а для новичков подготовили новый интерактивный учебник. Пять уроков, от перемещения карты до выравнивания зданий, помогут участникам мероприятий гуманитарной команды избежать обычных ошибок, за которые их ругают осмеры. Для обучения авторы нарисовали небольшой город с рекой, железной дорогой, ратушей, кафе и сеткой улиц. Очевидная искусственность карты подталкивает пользователя поиграть с картой, поудалять нарисованное и добавить какой-нибудь мути.

Разумеется, в релизе много других мелких улучшений. Например, последний комментарий к пакету правок сохраняется (привет всем, кто пишет «fix» или «мелкие правки»), но очищается через два дня. Мультиполигоны в старом стиле выглядят страшно и на них ругается валидатор: хотя из OpenStreetMap их недавно вычистили, пользователь может нарисовать такой случайно. Многие увидят красную коробочку при запуске: там список изменений в версии. Наконец, удалить объект можно только тогда, когда видно не менее 80% его поверхности.

Также вчера Пол Норман объявил о выходе версии 3.3.0 нашего картостиля osm-carto. В нём всё в порядке. То есть, авторы провели несколько рефакторингов, вынеся шрифты в отдельных файл, написав несколько инструкций. Самое заметное изменение — магазины на 17 масштабе рисуются точками, чтобы не отвлекать от других заведений. В репозитории на GitHub осталось всего шесть открытых пул-реквестов. Все они меняют отображение элементов карты (обводки дорог, паромных терминалов, грунтовок и т. п.), и поэтому отложены.

Самое важное в свежем релизе стиля — что он последний в ветке 3.x. Пул-реквесты почистили, страницу со сравнением 3.x и 4.x обновили, стиль 3.3.0 выпустили, временный запрет на визуальные изменения наложили. Следующим шагом в программе будет смёржить ветку lua в master и объявить о выходе версии 4.0.0. После этого в 3.3.x будут только чинить неприятности, да и то недолго.

Что такое ветка lua? Это переработка стиля с условием полной перезаливки базы данных. Подробность Пол расписал в пул-реквесте, а коротко:

  • Колонка типа hstore для каждого объекта. Она даст доступ ко всем тегам, пусть и без индексов. То есть, можно будет обозначить дороги с плохим покрытием или заведения, доступные людям на колясках. Колонка увеличивает размер базы всего на 10%, но позволяет убрать сотню других колонок, выгадав 5%.
  • Мультиполигоны. По умолчанию osm2pgsql разделяет мультиполигоны на отдельные полигоны: так те из них, что пересекают 180 меридиан, не накрывают bbox-ом весь мир. С ключом —multi-geometry мультиполигоны из OSM остаются мультиполигонами в базе. Это удобнее: не нужно собирать государства и острова из тысячу частей с ST_Collect, подписи национальных парков не множатся. К сожалению, это изменение замедлит рендеринг примерно на 5%, сильнее на близких масштабах.
  • Преобразования в lua. Lua — это несложный язык, часто используемый для настроечных скриптов. Предобработка тегов с его помощью в osm2pgsql позволяет указать численный тип для колонок типа population и layer, написать сложные правила построения z_order и отсортировать значения highway и place. Кроме того, скрипт будет отличать замкнутые линии от областей не только по тегам и собирать линии в мультиполигоны. Разумеется, старый стиль мультиполигонов он не поддержит.

Версию 4.0.0 выпустят в этом месяце. В течение пары месяцев ветки 4.0.x и 3.3.x будут развиваться параллельно, чтобы базу можно было перезаливать поэтапно. Следить за подготовкой к перезаливке можно в тикете OWG, пользоваться новым стилем — уже сейчас: пул-реквест приняли в master вчера.

11 мая   id   картостили

DigitalGlobe наш

На снимке — село Большие Тиганы в Татарстане. На его карте почти нет домов: неудивительно, там нет ни снимков Bing, ни снимков Mapbox. Но теперь мы можем их обклацать, пользуясь подложкой на иллюстрации. Кевин Баллок сдержал обещание, которое мы обсуждали месяц назад.

Вчера в трёх основных редакторах появились два новых спутниковых слоя. В JOSM нужно зайти в настройки снимков, выбрать две строчки с «DigitalGlobe» и нажать «Активировать». В iD жмите кнопку со слоями справа, в P2 — на кнопку «Подложка» вверху. Слои такие:

  • DigitalGlobe Standard: разрешением 30-60 см, покрывает 86% суши, больше с каждым годом. Обновляется дважды в год в США, Западной Европе и Австралии, раз в два-пять лет в остальных регионах. В Москве, например, он удивительно стар: примерно от 2013 года, в других местах бывает свежее остальных. Аналогичен слою «Recent Imagery», доступному пользователям DG Maps API.
  • DigitalGlobe Premium: аналог слоя «Premium Imagery» или «+Vivid», доступного только корпоративным подписчикам DG. На нём чуть больше качественных снимков, но многие старее, чем у альтернатив. Пишут, что слой обновляется чаще, особенно в специальных регионах, типа Хельсинки. В России таких специальных регионов нет. Очень часто нет разницы между этим слоем и Mapbox: те же зимние снимки и отсутствие оверзума.

Свежесть снимков пока определяем на глаз. Кевин пишет, что через пару недель слоям добавят метаданных с датами фотографирования и публикации. Пока можно пользоваться картой свежести для Standard и Premium (включите галочку «Mapbox» справа вверху). Доверять им сложно, учитывая видимую разницу между слоями, но карта в целом отсутствием прямоугольников цвета 2016 года отражает впечатление от слоёв. DigitalGlobe также публикует квартальные планы на съёмку поверхности.

Точность привязки плавает. Слой Standard примерно аналогичен Bing с его искажениями в гористой местности. Впрочем, Санкт-Петербург плоский как стол, а искажения присутствуют и там. Premium, как Mapbox, привязан лучше. Подключайте слой треков и пользуйтесь базой смещений. Официально у слоёв точность 10 метров по CE90: для 90% замеров отклонение будет в пределах десяти метров.

Условия использования подложек DigitalGlobe явно разрешают их обрисовку для OpenStreetMap и только для него. Снимки нельзя скачивать и использовать для иных целей. DG не несёт ответственности за сломанные глаза и разбитый лоб от фейспалмов во время оценки качества подложек. На той же странице упоминается аналогичное разрешение от Mapbox, которое включает изумительное ограничение: «если вы подписаны на план Premium, то можете обрисовывать наши снимки ещё и в коммерческих целях, но не более 100 точек, линий или полигонов в год».

Обсуждаем новые слои на форуме. Там сначала радуются подложкам, затем разочарованно обнаруживают, что они либо дублируют Bing или Mapbox, либо невыносимо старые. Новые снимки закрыли немало дыр и дополнили сложно читаемые зимние снимки летними: упоминают Саратовскую и Ульяновскую области, Мордовию и другие регионы. Кевин просит помнить, что новые снимки добавляются постоянно, с большими обновлениями раз в квартал, как у Bing. Претензии и просьбы пишите в его тему на английском.

10 мая   источники

Тульская выездная картовстреча

10-11 июня мы едем в Тулу. Рисовать карту. Это всё, что вам нужно знать, чтобы отметиться на вики-странице встречи, забронировать гостиницу и закрасить выходные в календаре. Увидимся!

Прошлая картовстреча была два года назад в Костроме. Приехала дюжина осмеров, мы обошли весь центр, посмотрели на все достопримечательности, нагулялись и наговорились на полгода вперёд. Но прошло уже два года, и хочется ещё.

На этот раз мы едем недалеко от Москвы: до Тулы всего три часа езды (из Петербурга — чуть больше). Несмотря на близость к столице, город отрисован очень плохо: в нём долго не было хороших спутниковых снимков, и до сих пор почти нет картографов. Снимки появились — нарисуйте дома, пожалуйста. А недостаток картографов на пару дней мы исправим.

Если вы ни разу не были на выездной картовстрече, сочувствую: воспоминания о них формируют представления о сообществе. Не ругань на форуме и не зайцы в телеграме, а личное общение. Приезжайте на выходные. Узнаете город так, как не позволит даже «Бегущий город», и поймёте, что схемы тегирования — не главное. Если вы живёте в Туле, приходите тем более: расскажете, что почём.

Я буду рад любым предложениям мест встречи и идеям для культурной программы. Пишите их на форум или в телеграм.

4 мая   mapping party
Ctrl + ↓ Ранее