opentopomap.cz – топографические карты opentopomap для наших условий

Это хорошая идея, спасибо. Сделаю.

У меня режим по умолчанию, т.е. без поддержки postgis’овских мультиполигонов.

Спасибо за инфо, я посмотрю.

Так и я написал, нет нужды создавать из earth_bank полигоны.
https://github.com/openstreetmap/osm2pgsql/blob/master/docs/lua.md

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

Возможно, но это странно, поскольку:


opentopomap=# select  count(*) from planet_osm_polygon where ST_NumInteriorRings(way) > 0;
 count  
--------                                                                                                                                                                                                                                                      
 335205                                                                                                                                                                                                                                                       
(1 строка)

То есть всего лишь 0.73% полигонов в базе имеют дырки.

P.S. Поскольку внятной документации на osm2pgsql нет, желающие могут более подробно изучить исходники этой программы, и найти там ответ. :slight_smile:

Я воздержусь от подобного скрипта. Это может принести гораздо больше проблем, чем пользы. Мне кажется, что пользователь должен уметь пользоваться area=no или резать линии, в зависимости от контекста, тем более это есть в документации.

area=no избыточен, ибо семантика тега уже наделяет его свойством линейности. И корректная обработка данных возложена на потребителя. Это что называется - мапить под рендер.

Ок, на вскидку, не сильно погружаясь в тему скриптов и прочее. Есть inner в полигоне, нарисованный замкнутой линией, который пользователь отметил ещё и как, скажем, cliff. Так что это, линия, или вложенный полигон? Как тут отличать?

Так это два разных объекта, для cliff это внешний контур. Когда у вас в дырке леса озеро, оно же синим заливается, а не лесом.

Как я понял из документации, cliff - это точка, или линейный объект. https://wiki.openstreetmap.org/wiki/Tag:natural%3Dcliff Или где-то ошибка? Но на его месте может быть earth_bank, например. :slight_smile:

Не совсем понял вопроса. Но дополню по предыдущему. Это в ОСМ одна геометрия для двух объектов - для одного это дырка, для другого это основной контур. А в базе это уже два совершенно разных объекта - один объект с дыркой, а второй лежит поверх дырки. И в данном случае он вполне может быть не полигоном на дырке, а только её контуром, от этого первый объект никак не затрагивается.

Но изначально эта линия-дырка ведь имеет один osm_id? Соответственно, в pbf это один объект? И в два объекта она превратится только тогда, когда этот pbf обработается osm2pgsql? А вы уверены, что если скрипт сообщит, что это линия, а не полигон, osm2pgsql сможет корректно вырезать дыру в полигоне, который outer? Кто-то так уже делал в реальности? Есть примеры?

Скрипт сообщает, что вот эти теги и вот эту геометрию рассматривать как линию/полигон. Ваш же не смущает как это мультиполигон из отрезков превращается в полигон.

Я более детально углубился в вопрос. Оказывается, этот скрипт используется в openstreetmap-carto как более продвинутый аналог стилей. Но только проблема в том, что в этот скрипт нужно конвертировать все стили сразу, фильтровать им только cliff и earth_bank не получится. Но на такой эксперимент на продакшне я сейчас не готов, да и времени на это пока нет. И тесты по производительности нужно делать. Тем более, что нельзя сказать, будто это решает серьёзную проблему. Я уважительно отношусь к вашему мнению, freeExec, но мне кажется, что если пока в wiki описаны все особенности отрисовки natural, natural=cliff и natural=earth_bank, это и проблемой-то не является и не является рисованием под рендер. Но я понимаю, что с такой фильтрацией просто удобнее, хотя бы будет меньше вопросов от плохо читающих документацию пользователей, и со временем я, наверное, её сделаю, если импорт со скриптом не будет потреблять намного больше ресурсов.

Мне непонятна другая вещь. Например, в русскоязычной wiki указано, что cliff может быть и полигоном. И этот посыл поддержан, например, в сборке для garmin у ValentinAK. Там реально рисуется полигон с камешками. Может быть, natural=сliff рано удалять из полигонов? :slight_smile:

Вообще, из здравого смысла, обрыв - все-таки линейный объект. Cliff-полигон это какой-то древний костыль для обозначения площади, занятой камнями. Но есть же natural=scree для свободных камней и natural=bare_rock для прикрепленных, и даже устаревающий natural=bedrock.

И вообще в англовике: https://wiki.openstreetmap.org/wiki/Tag:natural%3Dcliff
нет площадных обрывов.

На лугу точки плохо заметны, лучше, наверное, маленьким кружком обозначить.

Заметил, что с тегами просеки man_made=cutline cutline=section линия просеки рисуется без обводки, а дорога (highway=path) - с обводкой.
Понимать так: просека - это просто просека и для нее достаточно пунктирной линии, а для дороги это дополнительный тег, что мол широко прорублен лес?
По вики cutline используется только для прямых линий просек, никак не для дорог, что в Ru, что в En.

Во-первых, где вы там увидели слово “только”? Во-вторых, там сказано: "Если дорога (обычно highway=track) или highway=path) проходит прямо по просеке, то к ней надо добавить и тег просеки. "

Подписывает name для лесных кварталов?

Добрый день!
В первую очередь огромное Вам спасибо за Ваш труд!

Очень нравится стиль карты, но мне, как туристу очень не хватает на ней таких POI как водопады :slight_smile:
Буде крайне признателен если они появятся…

Водопады, их название и высота: waterway=waterfall (+name +height)

Названия хребтов вроде есть, только они сами не прорисованы?! natural=ridge

Заранее благодарю!

В таком варианте они меньше всего замусоривают карту.

Да, именно так и задумано, это доп. информация о дороге. Просто просеки отмечаются пунктиром для большей контрастности.

Нет, подписывается ref. См. https://opentopomap.ru/#map=14/56.37728/42.32440

Пожалуйста.

Сделаю через некоторое время. Постараюсь, как в Генштабе.

Именно так.