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

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

В студию!

После длинного этапа бета-тестирования по приглашениям, Mapbox выпустил новый редактор стилей, Mapbox Studio. Запустить его просто: заходите на сайт, регистрируетесь, и вы на месте. То есть, нет кнопки «скачать», редактор — неотъемлемая часть сайта. Поддержка проектов Mapbox Studio Classic и старого онлайн-редактора осталась (и стили не потерялись), но задвинута в меню.

Слои данных студия использует те же, что и раньше: векторные тайлы MVT. Разумеется, сайт всё так же умеет нарезать их из GeoJSON, шейпов и т. п. А стиль отличается: теперь цель — Mapbox GL, и не предполагается, что файл стиля кто-то будет писать руками. Редактирование больше напоминает QGIS, с выбором слоёв, кропотливым тыканием в переключатели и выпадающие меню. После TileMill, где привык держать в голове SQL и особенности рендерера, тут немного теряешься.

Хорошая новость — стиль можно скачать, это всего один json, и подключить к своему стеку векторных тайлов. То есть, если ваши данные не слишком велики для бесплатного аккаунта Mapbox, или слоя Mapbox Streets вам за глаза, — ссылка на скачивание редактора вам и не нужна. В противном случае вам может помочь Ричард, написавший препроцессор glug, создающий стиль Mapbox GL из удобного ruby-подобного языка.

Андрей Кармацкий вчера записал видеоурок по Mapbox Studio, где за 11 минут учит добавлять на карту и раскрашивать шейпфайлы ураганов. В декабре он проведёт курс по визуализации геоданных, где коснётся и этого редактора.

2015   mapbox
Ранее Ctrl + ↓

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