24 заметки с тегом

mapbox

Нормальная карта

© Mapbox, OpenStreetMap

Ребятам в Mapbox не давал покоя красивый рендеринг F4 Map, и они запилили объёмные здания и реалистичность в свои карты общего назначения, Mapbox Standard. Поздравляю дизайнеров и технологов, получилось впечатляюще.

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

Мы подбираем цвета и текстуры, наклоняем карту и экспериментируем с объёмом, включаем-выключаем отдельные слои, чтобы сделать карту понятнее и удобнее. Но ничего не работает. Если показать заблудившемуся человеку на улице маршрут на карте, он/она едва ли смогут понять, как одно соотносится с другим.

Карты — это вид сверху. Можно работать над ним сколь угодно профессионально, но это профессия сродни «birdshit architects», кто проектирует красивые рендеры без учёта людей, которые будут по ним ходить. Пока мы не летаем, вид карты будет непривычен глазу.

© warmuseum.kiev.ua

Знаете, как многие аттракционы развлекают видом с птичьего полёта? Все эти обзорные площадки, колёса обозрения, горные площадки. Даже местные жители их любят, потому что они показывают родной город таким, каким его обычно не видишь. Дают шанс не узнать привычные дороги, познакомиться с ними заново.

То же самое карта, даже под углом и с объёмными зданиями: это непривычный вид, и вместо упрощения жизни она усложняет задачи. Требует дополнительно выучить, как одно соотносится с другим.

Поэтому никто всерьёз не пользовался F4 Map для визуализации данных или схем проезда. Это лишь красивая картинка. Поэтому те же схемы проезда в России рисуют на базе Яндекс-карт, а не OSM или 2гис: люди запомнили одну карту и не хотят учить остальные. Помните, как взрослые люди (и дети теперь) пользуются компьютером? Запоминают значки и последовательность действий, но не изучают каждое новое состояние в целях понять. Незнакомые карты требуют обучения, а какой с этого прок.

Решить эти проблемы можно, но это R&D, а венчурные компании не любят R&D. Инвестиции дают только под «те же щи, да погуще». Отсюда и новый анонс: смотрите, карта становится тёмной без ведома пользователя, ну не круто ли! Мы нарисовали сотни объёмных домиков (но вам не дадим)! Как и с анонсом, что Mapbox GL JS теперь рисует глобус на далёких масштабах: читаю и восхищаюсь. Сотрудники компании крутые. Но кто будет работать над тем, чтобы все эти достижения стали не нужны?

 4 комментария   6 мес   mapbox

Прощай, Mapbox, и удачи

Иллюстрация с сайта библиотеки react-map-gl © Urbica

Mapbox вчера выпустил вторую версию своей библиотеки для векторных карт GL JS. С одной стороны, выглядит круто: трёхмерный ландшафт, небо, свободная камера, и всё стало в полтора раза быстрее. С другой — и это всколыхнуло твитер — новая версия выбросила открытую лицензию BSD, и каждое использование библиотеки теперь идёт через кассу. Код можно смотреть, но нельзя копировать.

Последнюю свободную версию Mapbox GL JS 1.13 немедленно форкнули тысячу раз. Главной ветвью будет MapLibre GL, которая объединила Юру Астрахана из Elastic, Klokan Tech, Stadia Maps, MapTiler, Where Group и других. Благодаря Люку из Stadia, мы избежали раздробления сообщества, собрали руководящую группу и даже набросали меморандум. Самое время переименовать зависимости в модулях npm и следить за новым проектом.

Есть и альтернативы: например, легендарный ГИС-комбайн OpenLayers (уже шестой версии!) умеет показывать векторные тайлы, правда, без WebGL. В твитере и Hacker News советуют попробовать:

  • Tangram — библиотека от Mapzen, 2D и 3D карты как плагин для Leaflet. То есть, привычный обвес на javascript и управление слоями и отображением через файл yaml. Её дополняет Tangram ES для того же самого, но на C++.
  • CesiumJS — гигантская библиотека, чтобы нарисовать глобус с объёмными модельками на нём. Написал бы больше, но их сайт не разрешает доступ из Беларуси.
  • Deck.gl — для визуализации огромных наборов данных на карте. От Uber, для которых гео — не главное направление бизнеса, поэтому не закроют.
  • Harp.gl — примерно то же от Here, чуть медленнее и неудобнее.
  • Procedural GL JS — простые 3D-карты из рельефа на основе Three.js.
  • WhirlyGlobe — на замену закрытого полгода назад Mapbox GL Native, SDK для айфонов и андроидов.

Или забить и вернуться к старому надёжному Leaflet: спасибо Ивану, Андрею и другим, что бесконечно полируют и обновляют эту библиотеку. В отличие от древнего форка от Mapbox, который удобнее для быстрого старта, но мёртв уже полтора года.

Есть ощущение провала: такую популярную библиотеку спрятали под пейволл. На основе GL JS выстроены многие другие открытые проекты, и их владельцы сейчас чешут репу. Но это ощущение непросто обосновать: люди оперативно организовали поддержку, смерть от смены технологий библиотеке не грозит, всё штатно. Mapbox как будто запустил новую библиотеку B2B, которую все забудут через неделю, как забыли Vision SDK. Как мы раньше ушли на OpenMapTiles и Kosmtik, так и теперь в этот стек векторных тайлов добавим MapLibre GL, поблагодарив Mapbox за шесть лет поддержки.

Фрагмент старой страницы сайта Mapbox

Эту заметку я хотел написать в духе «смотрите, какие Mapbox плохиши» со ссылками на Mapnik, OSRM, TileMill, Studio Classic, iD, GL Native. Но если серьёзно, они закрыли всего ничего, какие-то большие проекты, которые либо перестали быть актуальными, либо имеют хорошие альтернативы. При этом, как замечают Брэндон Лиу и Владимир Агафонкин на Hacker News, эти большие проекты построены из десятков, если не сотен, маленьких, которые были и будут открытыми. Именно в них главные инженерные достижения, которые стоит брать и переиспользовать.

Откуда же ощущение? Может быть, из-за OpenStreetMap? Компания Mapbox начиналась как осмерская и они наняли толпу разработчиков, близких к проекту. Затем они догадались, что в OSM денег нет, а есть в конкуренции сервисами с Google Maps. Закрыли всю непрофильную разработку и стали околоосмерской: поддерживали пару библиотек, помогали снимками, но не закладывались. Mapbox GL JS был какой-то тонкой, последней связью с сообществом открытой картографии. И теперь её оборвали.

Компания Mapbox так далеко ушла от нашего проекта, что теперь даже Apple и Facebook искушённее в OpenStreetMap, тратят на него больше денег и получают более впечатляющий и более открытый результат — см., например, Daylight Map Distribution. Можно сказать, что эпоха Mapbox как открытой компании вчера завершилась. Остались только щепки из отличных технических библиотечек — ничего особенного, у каждой организации такие летят. Разве что эти чаще касаются картографии.

Пол Рамси копнул чуть глубже в это ощущение конца. Вчерашнее событие было предсказуемо почти для каждого: когда в открытом проекте участвуют почти исключительно сотрудники одной и той же компании, ничего хорошего не жди. Однако главный нюанс с Mapbox в том, что эта компания — главный конкурент Google Maps на поле открытых технологий. И если компания больше не может поддерживать былую оперсорсную удаль, то это может быть грустным сигналом насчёт финансирования и торжества проприетарных карт. Пожелаем удачи в борьбе.

2020   javascript   mapbox

Космоснимки даром

Pratik Yadav, сотрудник команды космосъёмки в Mapbox, вчера написал невзрачную, но очень важную заметку даже не в официальном блоге. Он подтвердил, что слоем снимков Mapbox можно пользоваться бесплатно не только для уточнения данных OpenStreetMap, но и в любых некоммерческих целях. Например, для студенческих проектов.

На недавнем хакатоне GeoHack сотрудник DigitalGlobe принёс капельку снимков, но школьники с проектами по классификации или нейросеточкам на основе космосъёмки всё равно ходили по менторам и спрашивали, где бы взять побольше. Мне нечего было им ответить — но теперь мы точно знаем, что такой слой есть. На любую территорию, сколь угодно большой площади, пусть иногда и чёрно-белый. Больше не нужно писать просьбы в DigitalGlobe или втихую качать Bing.

Далее автор перечисляет условия использования снимков, ссылаясь на сайт Mapbox. Оказалось, там это условие про некоммерческое использование было давно (п. 15), но касалось только обклацывания в вектор. Кроме того, там не указано ограничение на скорость скачивания: 100 тайлов в секунду, то есть, примерно два квадратных километра на максимальном 18-м масштабе.

В сравнении с «сырыми» снимками у слоя Mapbox есть несколько ограничений. Во-первых, его разрешение в России примерно 60 см/пк — можно попробовать качать на 19-м масштабе, но вчетверо медленнее. Затем, страшные артефакты сжатия в jpeg. Представлен только видимый спектр, никакого инфракрасного или иных каналов. И наконец, как напоминает Кристоф в комментариях, Mapbox до сих пор не предоставляет никаких метаданных на тайлы, в отличие от Bing и DigitalGlobe.

Пакет не нужен

«Нельзя ли при отправке изменений из maps.me разделять объекты по континентам?» — в очередной раз спрашивают на форуме. А то bbox (ограничительный прямоугольник) слишком большой, неудобно. OpenStreetMap был зачат тысячу лет назад программистом, и это лезет изо всех щелей: удивительно, как самые бессмысленные атрибуты становятся мерилом качества.

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

Но даже когда найдёшь нужный пакет правок, останется только бессильно смотреть на его bbox. И на стастраничный список точек, линий и отношений, каждая строчка которого по-своему бесполезна. Ченджсеты — это псевдоупорядочивание. Кажется, что они полезны присвоением метаданных группе объектов, своего рода над-отношения, но на самом деле — метки времени произвольны, их порядок не зависит от номера пакета, комментарии никто не пишет, источник часто врёт, географически, как видим, тоже никто не группирует. Остаётся один полезный атрибут: created_by. Всему остальному верить нельзя.

То есть, единственная польза от пакета правок — это посмотреть, каким редактором сделаны правки. Все остальные атрибуты: даты, bbox, список объектов — только отвлекают, создавая ложное впечатление группировки и упорядоченности. Которых нет, потому что техническое воплощение API не обещает порядка и не подразумевает удобства. Так, для правок maps.me я игнорирую пакеты и рассматриваю каждую правку отдельно. Правки на mmwatch — это поток объектов, у которых номер ченджсета лишь бесполезный атрибут. Увы, для сложных правок со взаимосвязанными изменениями (таких как сдвиг линии) такой подход не сработает.

Примерно об этом я говорил на схемотехнике год назад. О bbox нужно просто забыть: область применения этих прямоугольников ограничена и точно не касается ваших задач. А проблему пакетирования нужно как-то решать. Развязать топологические структуры, группировать по времени и географии, не давать пользователям и приложениям свободы в объединении правок. Это настоящая тема для какого-нибудь будущего API 0.8. А пока приходится работать с тем, что есть.

Следить за изменениями в регионе можно (нужно!) через WhoDidIt, искать их — в его более быстром форке. Пакет правок из интерфейса этого сайта можно открыть в Achavi, но иногда может не повезти. Если bbox окажется слишком велик, загрузки правок вы можете не дождаться. Потому что даже лучшие инструменты полагаются на bbox, который, повторюсь, плох примерно для всего.

Загружать геометрию ченджсетов часто приходится команде по работе с данными в Mapbox. Для этого они сделали и постоянно улучшают сайт OSM Changeset Analyzer, где есть фильтры по любому атрибуту, вплоть до причины для подозрений. Но самые подозрительные пакеты накрывают весь мир, Achavi тут бессилен. Поэтому в этом месяце они сделали то, что давно было пора: кэширование ченджсетов.

Каждую минуту скрипт скачивает свежие дополненные диффы и складывает их в хранилище Amazon S3. Затем он раздербанивает эти диффы на пакеты правок и результат тоже загружает туда же. И теперь сервис визуализации Changeset Map, встроенный в OSMCHA, загружает пакеты мгновенно. Обновите ваши букмарклеты: Changeset (перетащите в закладки).

Проблемы, конечно, есть, но с ними борются. Например, дополненные диффы не окончательны из-за чехарды с транзакциями в базе данных OSM. Их приходится обновлять и обновлять. То же касается и пакетов правок, которые возможно держать открытыми целые сутки, понемногу доливая в них новые объекты. Наконец, история там только новейшая: пакеты старее марта этого года можно не найти. Их загружают, но медленно. Проблему поиска по региону архив тоже не решает, как показывает опыт фильтрации на сайте OSMCHA. Поэтому пользуйтесь им для просмотра недавних правок, а историю ищите на WhoDidIt и Achavi. Неидеально — но пока мы не избавились от концепции пакетов правок, ничего лучше не сделать.

Mapbox погружается в JOSM

Команда создания и анализа данных в Mapbox набирает обороты, и простых инструментов, вроде iD и to-fix, начинает не хватать. А сложный инструмент у нас один, и вы его знаете. Сначала они в блоге два месяца рассказывали про основы редактирования в JOSM и плагины:

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

2016   josm   mapbox
Ранее Ctrl + ↓

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