ШТОСМ

Другие каналы

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

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

Подписывайтесь, ретвитьте, ставьте лайки. Когда в этом блоге снова иссякнет поток статей, вы знаете, куда идти.

21 мая   блоги   штосм

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

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

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

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

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

19 мая   mapbox   источники

Стиль бледный

Дизайнеры Mapbox обновили стиль для навигации. Вместо привычных мягко-оранжевых линий водитель будет смотреть на бледное серо-жёлтое месиво. Первой реакцией на заметку было: «нам нужно было разделить дороги по классам и адаптировать к быстрым взглядам на мелкий экран, поэтому мы три контрастных цвета превратили в два размытых и увеличили шилды, оттянув внимание». Действительно, сравнивая «было» и «стало» недоумеваешь, зачем портить хороший картостиль.

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

Те же претензии, что появились у меня к новому стилю Mapbox, высказывали относительно стиля MAPS.ME, великолепно переделанного командой «Урбики». И действительно, в сравнении с феерверком цветов новые дороги выглядели бледновато. Но выкатить стиль — это половина работы, и «Урбика» потом ещё полгода дорабатывала цвета и линии по комментариям: чуть больше контрастности, чуть иные размеры.

У нового стиля навигации Mapbox много заметных проблем. Например, по исследованиям, текст легче читается не на белом, а на чуть менее контрастном фоне. А ночной стиль стал слишком ярким: на картинке в блоге выглядит красиво, но в машине ночью я бы предпочёл едва различимые дороги, как слева. Но раз навигационный стиль стал из обрубка презентационного стал самостоятельным, дизайнеры, я уверен, сгладят все проблемы по отзывам пользователей своего API.

Обледнение стиля свойственно всем веб-картам, от Google и Here до «Космоснимков» и OpenStreetMap. Кричащие цвета не помогают в использовании карты совместно с другими геоданными: маркерами, линиями, тепловыми картами. Переход от ярких дорог и выделяющихся точек заведений к белым линиям и унифицированным иконкам сродни смене высказывания «Смотрите! У нас дороги! И POI!» на «вот вам однородная карта, готовая к любым применениям». Другими словами, чем менее кричаще, более бледно выглядит карта, тем она взрослее и серьёзнее.

На этой иллюстрации вы видите самый взрослый стиль на основе OpenStreetMap в мире (если не считать MapSurfer Gray). Он красивый и не помешает ничему, что вы наложите поверх. Разумеется, это странный способ оценивать стили: цветовая гамма и количество элементов не являются мерилом качества.

Дизайн картостиля — это непрерывная работа по отделению важного от второстепенного. Медитирование над палитрой. Чтобы красиво, но неброско. Информативно, но не перегруженно. Привычно, но не копия. И поверх всего — задача для стиля, без которой не стоит даже начинать (но все начинают). Рано или поздно задача меняется или просто утверждается, и карта меняет вид. Это нормально и всегда к лучшему. Без задачи невозможно осмысленное улучшение, а с задачей... Ну да, получается бледно.

17 мая   картостили

Этому дала, этому не дала

Стив Беннет в марте сделал замечательный интерактивный сайт, где можно окинуть взглядом предложения сервисов геокодирования и оценить потенциальные затраты на каждый. Посмотреть на нюансы бесплатных API и узнать, что миллион запросов в месяц (нормально для курьеров) обойдётся в миллион рублей, да и то — не каждый готов предоставить.

Карточки геокодеров занимательно аннотированы: например, по качеству («LocationIQ: ★☆☆ OpenStreetMap», «Google: ★★★ Top-notch») или по использованию с чужими подложками (почти все проприетарные сервисы запрещают). Встречаются комментарии типа «находятся в Белизе», «запрещают показывать пользователю координаты», «обязательно кэшируйте».

Меня заинтересовало яркое предупреждение «нельзя отображать на OSM или других открытых картах» у TomTom и я пошёл читать их условия использования. И боже мой, как там всё хорошо!

Условия начинаются с перечисления компаний, которым запрещено использовать Maps API (раздел 4). Среди них — Amazon, Google, GetTaxi (ныне Gett) и Lyft. Убера нет. Пункт 9.12 запрещает сравнивать карты TomTom с конкурентами, что нарушает BBBike.

А что с OpenStreetMap? Пункт 9.4 запрещает выводить результаты геокодирования на любой сторонней карте, а результаты обратного геокодирования (координаты → адрес) — можно, но только не на «Open Street Maps» или любой другой открытой карте.

Но почему? Может, TomTom затаили злобу на открытое сообщество после неудачной попытки FUD в 2012 году? Или считают наш стиль недостаточно прекрасным для их данных? Всё проще — и сложнее для нас. Причина в вирусности нашей лицензии, что они и поясняют в пункте 16.2.3: «не совмещайте данные из Maps API с открытыми программами или данными, если это может привести к требованию публикации данных под открытой и/или вирусной лицензией». Условия ODbL настолько туманны, что проще запретить даже приближаться к открытым картам.

Заверните всё, пожалуйста

Overpass API версии 0.7.54 вышел больше года назад и в нём было так много нового, что Роланд завёл блог проекта, чтобы похвастаться полезными применениями. Язык запросов был и так сложен, но там появились выражения: если, например, добавить (if:count_tags() == 0), то получите объекты без тегов. А чтобы выбрать дороги с повышенной скоростью, пригодится (if:number(t[maxspeed])>110). Наконец, появился важный селектор отбора по идентификатору (id:123,456,...).

Со дня на день выйдет следующая версия API. Роланд уже неделю обновляет описание языка запросов в вики. Там, разумеется, много непонятной дичи вроде операторов цикла и условия, а также «цикла до тех пор, пока результат не стабилизируется». Добавили новые операторы для (if:...): is_closed() и length() для линий, count_by_role(...) для отношений.

Есть и штука, которая будет немедленно полезна каждому, кто когда-либо делал запросы: фильтр nwr, который объединяет в себе node, way и rel. Больше не нужно перечислять все три типа в запросах по тегу: достаточно nwr[shop=pet] — и получите все зоомагазины, каков бы ни был их тип. И самое главное — фильтр уже работает на основном сервере!

В списке запросов для тестирования новой версии можно найти пример, который ещё лучше сократит ваши запросы:

nwr[amenity=recycling](if: t["recycling:glass"] || t["recycling:paper"] || t["recycling:clothes"]);
15 мая   overpass
Ранее Ctrl + ↓