OpenStreetMap

Diary Entries in Russian

Recent diary entries

English version

На последней встрече совет OSMF дал добро на внедрение новой версии OSM API. Полную стенограмму можно найти на вики. Краткое содержание:

🧐️️️️️️Валидация

Правки ломающие геометрию или топологию будут отклонятся, для некритичных ошибок будет API будет возвращать HTTP-статус 267 Doubtful But Okay

🛣 Новая модель данных

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

Такой подход также позволит описывать нелинейные геометрии, что выводит картографирование на абсолютно новый уровень 🚀

📃 Новый формат данных

На смену моральноустаревшему формату XML придёт человекочитаемый YAML. Это позвозит удобно редактировать карту в любом текстовом редакторе и изучать пакеты правок с помощью таких инструментов таких как git diff. Поддержка формата JSON останется.

👮‍♂️Премодерация

Правки новичков будут попадать в очередь премодерации. Одобрять правки сможет любой картограф, мапивший 42 дня за последний год. Избежать очереди можно будет оплатив членство в OSMF.

💵 Премиум-функции

Помимо отключения премодерации, картографы, оплачившие членство в OSMF, получат приоритет при обращении к DWG и OSMF. Длительность блокировок для премиум-картографов будет уменьшена вдвое.

💎 Новый cgimap

Текущая реализация cgimap, написанная на C++, не отвечает требованиям безопасности, поэтому будет переписана на Rust Ruby, на котором уже написана большая часть сайта.

Posted by sannoization on 22 March 2024 in Russian (Русский). Last updated on 19 April 2024.

Всем привет, занимаюсь маппингом с февраля, а все началось с поста Андрея Ситника в Мастодоне

Поставил себе streetComplete и понеслась

Что нужно чтобы вкатиться в маппинг с 0

Карты и редактирование

  • StreetComplete — самый простой способ редактировать данные, пока гуляешь до магазина / работы / парикмахерской, едешь на другой конец города. Также можно записывать GPS-треки. Пока есть только версия для Android, но разработчики уже занимаются версией для iOS
  • EveryDoor — альтернатива StreetComplete для iOS
  • OpenStop — приложение для редактирования информации об остановках
  • Organic Maps — оффлайн карты от создателей maps.me с возможностью редактирования, в последнем релизе (неделя с 18 по 24 марта 2024 года) в android-версии вернули авторизацию через OSM-аккаунт
  • сам этот сайт, на котором я пишу эту запись в дневнике — для некоторой advanced-доработки объектов
  • OsmAnd — чтобы смотреть разные наложения карт. В нём тоже можно редактировать объекты, но не так удобно, как в StreetComplete.
  • OSMTracker — чтобы писать GPS-треки для дальнейшего маппинга дорожек.

Треки с зеркалами

  • Mapilio (для тех кто в РФ) — чтобы создавать зеркала, которые интегрируются с OSM. В РФ очень мало пользователей, в Нижнем Новгороде кроме меня никто треков с зеркалами не писал, в Москве навскидку треков <50. Проект существует недавно, развивается, планируют добавить поддержку панорам с дронов.
  • Mapillary, KartaView (для тех кто не в рф) — тоже чтобы создавать зеркала, интегрируются в OSM, из этих сервисов треков с зеркалами больше всего.

Advanced

  • SCEE — StreetComplete Expert Edition, форк от StreetComplete. Приложение можно больше настроить под себя, расширен набор квестов и имеется возможность редактировать тэги, однако я бы его назвал нестабильным.
  • josm — мощный продвинутый редактор для OSM, написанный на Java. Для его использования нужна установленная Java.
  • GEOFABRIK OSM Inspector — валидатор для почти всего

Просмотр данных

  • f4map — OSM в 3D с освещением в реальном времени. Чтобы был повод ставить правильные теги simple3d
  • How did you contribute to OpenStreetMap? — штука для просмотра статистики по пользователям OSM

Напишите в комментариях, какие приложения / сервисы можно добавить в эту подборку

Смотришь на OSM-карту на сайте универа:

Смотришь на фотографию:


Смотришь на свой двор в MapComplete, а там ларьки какие-то на дороге стоят:

Смотришь в окно (ну а чтобы и вы увидели, на яндекс.панорамы):

Открываешь Rapid и успокаиваешься: это AI нараспознавал. С OSM всё в порядке.

А вот картоделы свернули куда-то не туда. Точнее их всё устраивает. Это давно гугл с автораспознаванием показал.

Posted by Zkir on 5 March 2024 in Russian (Русский).

OSM в руках синьки и норкоманов – это несомненный успех.

Если по существу вопроса – если раньше мы жили в гипо-информационном обществе, то теперь живем в гипер-информационном. Что-то спрятать не получится, придется привыкать.

С другой стороны, когда я на свой майнкрафт-сервер приделал онлайн карту, тоже далеко не все игроки обрадовались.

OSM in the hands of alcoholics and drug addicts is an undoubted success!

Previously we lived in a hypo-information society, now we live in a hyper-information society. It is not possible to hide something, you’ll have to get used to it.

On the other hand, when I attached an online map to my Minecraft server, not all players were happy.

Малые Диковичи - имеются: названия улиц, номера и тип домов.

Малые Дворцы - имеются: названия улиц, номера и тип домов.

Сернички - имеются: названия улиц, номера и тип домов.

Кривое село - имеются: названия улиц, номера и тип домов.

Иванисовка - имеются: названия улиц, номера и тип домов.

Болгары - имеются: названия улиц, номера и тип домов, насосная станция, сеть ЛЭП. В том числе отрисовано садовое товарищество “Сосновка” (чуть севернее от Болгары по Н-232).

Просцы - имеются: названия улиц, номера и тип домов.

Конотоп - имеются: названия улиц, номера и тип домов.

Клин - имеются: названия улиц, номера и тип домов.

д. Городище - имеются: названия улиц, номера и тип домов, медицинское землепользование.

п. Городище - имеются: названия улиц, номера и тип домов, водные объекты (в т.ч. Святое озеро), инфраструктура железной дороги, промышленная зона, трубопроводная инфраструктура (газ), социальные объекты.

Староселье - имеются: названия улиц, номера и тип домов.

Location: 225716, Брестская область, 225716, Беларусь

Состояние некоторых населённых пунктов от 27.02.2024 в Пинском районе:

Малый Холожин - имеются: названия улиц, номера и тип домов, местная подстанция (КТП-439). Упорядоченные сельхоз. угодья вокруг деревни.

Большой Холожин - имеются: названия улиц, номера и тип домов.

Лисятичи - имеются: названия улиц, номера и тип домов, подстанция ТП-1114, номера и тип домов. Исправлена геометрия водоёма и местной фермы.

Доброславка - имеются: названия улиц, номера и тип домов, кладбище и землепользование фермы.

Большая Вулька - имеются: названия улиц, номера и тип домов.

Понятичи - имеются: названия улиц, номера и тип домов.

Перекрестье - имеются: названия улиц, номера и тип домов.

Location: 225716, Брестская область, 225716, Беларусь
Posted by Axus Wizix on 17 February 2024 in Russian (Русский).

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

Location: Пушкарная, Центральный округ, городской округ Курск, Курская область, Центральный федеральный округ, 305000, Россия

улицы, блин На скриншоте присутствуют:

  • улица Наполеона Орды
  • улица Филатова
  • переулок Филатова
  • улица Тисовая
  • улица Медицинская
  • улица Немцевича

И у зданий весьма неочевидная принадлежность к улицам. Не каждый Друзь сможет в эту логику.

Location: Медицинский городок, Московский район, Брест, Брестская область, 224027, Беларусь

Обновление локальной postgres базы OSM через osm2pgsq заработало, не прошло и двух месяцев.

osm2pgsql-replication update -v -d gis  --max-diff-size 100 --  -G --hstore --tag-transform-script ~/src/openstreetmap-carto/openstreetmap-carto.lua -C 0 --flat-nodes ~/data/nodes.bin --number-processes 8 -S ~/src/openstreetmap-carto/openstreetmap-carto.style

Самое обидное, что не понятно, что конкретно изменилось. Если придется переустановить убунту, а похоже придется, то всё снова может отвалиться.

Так чтобы там не писали на switch2osm, свой тайловый сервер – это побольшей части магия.

На англофоруме намекнули, что шестиугольная сетка нашей генерализированной карты наводит на мысли о компьютерной игре.

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

random civ 6 map (Для наглядности, случайная карта из игры Civ6)

Карта Земли для цивилизации исключительно на основе данных осм – это было бы прикольно.

Географическая модель в Civ6 крайне примитивна, есть всего 5 типов местности, которые являются скорее типами почвы/климата:

  • SNOW (вечная мерзлота)
  • TUNDRA
  • GRASSLAND (более плодородная почва)
  • PLAIN (немного менее плодородная почва)
  • DESERT

есть 3 типа «особенностей»:

  • FOREST (Лес)
  • JUNGLE (Тропический лес, джунгли)
  • WETLAND (Болота)

(особенности они потому что их можно свести, или наоборот, насадить, а с почвой/климатом ты особенно ничего сделать не можешь )

и три типа рельефа:

  • FLAT (равнина, плоскость)
  • HILLS (холмы)
  • MOUNTAINS (горы)

Казалось бы, проще некуда. Однако, не смотря на это, у нас в OSM до сих пор нет подходящих данных (и это после почти 20 лет рисования).

У нас нас нет толком обозначенной вечной мерзлоты и тундры, нет различия между «лугами» и «равниной», а также нет различия между лесами и джунглями (мы все еще спорим о wood vs forest и только 10% лесов имеют теги, указывающие тип листвы. Хорошие новости что в в OSM достаточно болот :)

C рельефом еще хуже. OSM никогда не задумывался как карта рельефа. В OSM встречаются natural=hills и natural=mountain\massif (которые я все нафиг отфильтровал) но я подозреваю, что они не образуют систематического покрытия. (Кстати, не худо еще раз посмотреть на эту часть natural=*)

Так что няшки мои, пока в Цивилизацию играем на картах Земли, сделанных вручную, как и двадцать лет назад. Посмотрим, что будет в осм еще через двадцать лет :)

Забацал саморекламу объявление об OpenLandcoverMap на английском языке: https://community.openstreetmap.org/t/announcement-openlandcovermap/108392

Посмотрим, будет отклик или нет :)

А еще у меня теперь новый домен: OpenLandcoverMap.org

Может надо было OpenGeneralizedMap.org, ну да бог с ним.

Posted by Zkir on 12 January 2024 in Russian (Русский).

Аральское море – последнее большое черное пятно на нашей карте.

Еще раз подчеркну, что несомненное достоинства генерализованной карты в том, что на ней видно все объекты, выражающиеся в масштабе карты, а не только некоторые, как в osm-carto ).

Сейчас Аральское Море обозначено как natural=dry_lake.

Вопрос, чтобы нам с ним сделать (снова наполнить водой не предлагать) ?

  1. Снять с него natural вообще – поскольку на территории бывшего моря есть самые разные ландшафты – водоемы, пески, болота(!), и как я вижу по найденным в интернете фотографиям – кустарники и солончаки. Этого даже не заметит никто, потому что на стандартной карте natural=dry_lake не отображается.

    Возможно, это даже правильно, потому что определение natural=dry_lake говорит, что это не просто сухая земля, а место, которое хотя бы иногда заливается водой, и оно становится мелким озером. В отношении Арала что-то я в этом сомневаюсь.

  2. Заменить natural=dry_lake на natural=desert, потому что на месте бывшего моря возникла новая пустыня, Аралкум? Так новую пустыню хотя бы будет видно на стандартной OSM карте. Может хоть за это поставят золотые памятники, за открытие новой пустыни для осм-сообщества.

  3. Оставить теги в покое, и рендерить natural=dry_lake так же как natural=desert. В конце концов, natural=desert тоже очень общий тег, но OpenLandCoverMap он уже попал. С многосоткилометровыми полигонами придется разобраться отдельно. Может они в отдельный слой пойдут.

  4. Вообще выкинуть теги natural=dry_lake и natural=playa как негодные.

Пишите мнения в коментарии))

Запилил всё-таки отдельную статистику по тегам для OpenLandcoverMap

http://osm2.zkir.ru/landcovers/renderedtags.html

Так она выглядит понятнее чем на TagInfo. Видно, что рендерится, что не рендерится и что с чем складывается.

А еще видно, что процесс объявления тега устаревшим (“deprecation”) на самом деле (до конца) не работает.

Старые сельскохозяйственные теги: landuse=farm, landuse=field, landuse=agriculture, landuse=pasture по прежнему достаточно сильные, чтобы засветиться на генерализированной карте. Area Score – это количество 6-ти километровых гексов, которые этот тег занимает, и является на нем главным!

И это не смотря на то, что их выпиливали сотнями(!) тысяч!

landuse_farm_history.png

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

В прошлый раз я писал об этом тут:

А в следующий раз надеюсь поговорим о landcover=*

Posted by Zkir on 11 January 2024 in Russian (Русский).

landuse=forestry – какой-то новомодный и очень странный тег. Видимо natural=wood и landuse=forest скучно вдвоем, и решили добавить третий.

Из описания не совсем понятно, обозначает он деревья, или нет, и деревья должны быть нарисованы отдельно, традиционным способом

forestry image (типичное Forestry согласно осм-вики)

You may also tag the the wooded area with natural=wood and/or landcover=trees. this is orthogonal with the forestry area.

Вы можете [если хотите] обозначить деревья как natural=wood и/или landcover=trees. Это ортогонально зоне forestry.

Вот так и написано, ортогонально!

А еще Мерриам-Вебстер считает, что forestry это не сколько “лесничество”, сколько “лесоведение”.

Так и живем.

Пример: https://www.openstreetmap.org/relation/13163840

Location: Falstone, Northumberland, North of Tyne, Англия, Великобритания

(!) It’s a draft written in Russian. I don’t like machine translation, so the English version needs to be worked on separately. (!) This material can cause conflicting feelings

Большие правки бесят. Но больше bbox-ов меня бесит реакция вахтёров на них. За три года я увидел лишь одну адекватную попытку бороться с проблемой… Но давайте по порядку.


Я бы разбил большие правки на:

Правки больших отношений/линий

Они неизбежны. Хорошая новость: таких объектов мало, а значит таких правок будет мало.

Правки пересекающие 180-ый меридиан

… возникают при откате этимологии массовых правках на территориях разделённых им. Или при редактировании объектов около него.

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

Ну не, переделывать bbox мы не хотим. А что если бы OSM API выставляло бы пакету правок тег с адекватным bbox? Тогда бы инструменты просмотра правок могли бы отбрасывать такие правки и они бы не мешалась.

Правки только тегов

Есть компания RocketData, которая занимается импортом POI и поддержанием их актуальности. Мечта! Но неет, сообщество это бесит. Лучше мы будем изучать тысячи маленьких правок. Удачи.

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

Проблема не ограничивается рокетдатой. Есть ещё исправления опечаток, нормализация названий улиц и т.п. Я и сам вахтёрю и меня такие правки бесят. Почему?

  1. Потому что они засоряют https://osm.org/history А фильтров там никаких нет.

  2. Их сложно проверить. А ведь, эти правки даже не меняют никакой геометрии!

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

Круто Ну Етож Круто

Правда почему-то это работает только для небольших правок….

Мнение: массовые исправления тегов в одной большой правке — нормально. Опять же, OSM API могло быть указывать в тегах пакета правок, что он изменил только теги объектов.

Аналогия для программистов:

Представьте компанию, кодовая база которой измеряется терабайтами. В компании много отделов, в каждом используют различные бибилотеки. И вот вам нужно срочно обновить везде библиотеку, в которой нашли уязвимость. Или наоборот откатить сломанную версию.

А теперь у вас есть куча репозиториев с кодом, в каждом из которых нужно внести отдельное изменение. Наверное круто было бы иметь монорепозиторий и одним коммитом обновить библиотеку? Так компании так и делают https://habr.com/ru/companies/yandex/articles/482926/

Так и в осм. У какой-то сети магазинов изменился сайт? сделайте отншение всех магазинов сети Измените его везде одной правкой. Какая разница, когда открыв свой район в osm.org/history вы увидете одну большую правку или одну предназначенную для вашего города?

4. Случайное редактирование в удалённых друг от друга местах

Например. Прилетаете вы со StreetComplete, Organic Maps на другой континент и вам сразу хочется что-нибудь замапить. Но взамен вы за это получите упрёк в комментариях к правке: https://github.com/streetcomplete/StreetComplete/issues/4582

Правильная реакция: прийти на GitHub к разработчику, поставить 👍 к проблеме и оставить маппера в покое.

Бывает иначе. Решали когда-нибудь задания в MapRoulette? Тогда вы знаете как надоедает постоянно отправлять свои правки. Поэтому вы решаете несколько близких заданий за раз. В какой-то момент вас отправляет на несколько километров.  Вы редактируете и отправляете правку.

tink.jpg

Хотя JOSM при отправке предупредит. Только что дальше делать-то? Удобно разбить правку в iD и JOSM нельзя.

Единственный редактор, который научился разбивать правки — EveryDoor. И хоть он работает только с точками, я не вижу проблемы в других редакторах, чтобы сделать хоть какое-то разбитие пакета правок. Хотя бы, чтобы разбить случайные правки в Чили и на Камчатке.

Мнение: пока в редакторах нет функции разбиения больших правок или хотя бы предупреждения, что вы затронули большую территорию — отстаньте от мапперов и идите на GitHub к разработчикам.

else

Остальные большие правки это либо нарочно большие правки, либо откаты больших правок:)

Наш скромный проект раскручивается, набирает обороты и даже получает некоторое признание :) У нас теперь есть страничка на Taginfo:

https://taginfo.openstreetmap.org/projects/openlandcovermap#tags

TagInfo – обалденно полезная и удобная вещь, а “проекты” так вообще гениальнейшая идея. Можно посмотреть не только какие теги определены в вики, и даже не только какие теги реально есть в базе, но и кто какие теги действительно использует.

Сделать свой проект на TagInfo оказалось намного легче чем я ожидал, потребовалось всего несколько строчек кода. В итоге, мне не нужно пилить свой фронтэнд, чтобы показывать статистку по тегам в генерализованной карте.

И вопреки тому, что написано на TagInfo, данные о тегах, предоставленные нашим проектом как раз полные, потому что это не какой-то отдельный список тегов, про который я забуду через 2 дня, а это скрипт собирает теги с базы и файла стиля карты (CartoCSS).

Так вот, можно посмотреть, какие теги попадают в генерализованную карту, какие из них рендерятся а какие – нет.

Можно также сделать определенные выводы, например что не все natural=* одинаково полезны. natural=* сочетает в себе совершенно разные (и даже не вполне рядосопоставленные) типы объектов.

Примеры:

  • natural=wood – это лес, а natural=tree – это отдельностоящее дерево.
  • natural=blockfield – это курум, каменная россыпь, а natural=stone – это отдельный камень.
  • natural=bare_rock – это голая поверхность земли, а natural=rock – отдельная скала.

А вот еще прикол, которого я даже не ожидал.

  • natural=scrub – это заросли кустарника, а natural=shrub – это отдельный куст! Смотрите не перепутайте!

natural=tree/rock/stone/shrub надо пожалуй исключить, потому что нельзя отдельные деревья генерализировать в лес :)

Posted by Zkir on 3 January 2024 in Russian (Русский). Last updated on 5 January 2024.

Друзья, всех с наступившим новым годом!

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

А я между тем поборол tilemill и всё-таки сделал онлайн-карту ландшафтов (покрытий, landcovers).

Смотреть можно тут:

http://osm2.zkir.ru/landcovers/

картинка для привлечения внимания, было-стало

Показываются ландшафты (natural+landuse), населенные пункты и, по приколу, горные вершины. Отображаются зумы с нулевого по восьмой. Обновление по требованию.

В ближайших планах:

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

В предыдущий раз мы говорили о покрытиях и генерализации тут:

Продолжаем тему генерализации. Как известно, генерализация – это отбор и обобщение той информации, которую мы хотим показать на карте, особенно мелких (обзорных) масштабов.

В OSM c генерализацией все 20 лет всё совсем печально. Напоминаю, мапник на 4-м зуме пустой абсолютно.

Но мы же не будем сидеть сложа руки? Всего несколько строчек кода, и вуаля, на карте появились города:

Посмотреть картинку в нормальном разрешении можно тут.

Видно не только Екатеринбург и Пермь, а вылезла даже Дудинка, Туруханск и Ленск.

Ни у кого такого нет, даже у гугла, а у меня есть. Вот интересно, мне поставят золотые памятники при жизни?

UPD. Вот в комментах пишут, что всё у всех есть, существует даже плагин для QGIS, который умеет вычислять “картографическую значимость” горных вершин и населенных пунктов. Это только на openstreetmap.org генерализации нет, потому что это не интересно osm-cообществу.