Добрый день.
Нет ли возможности выводить на opentopomap.ru маркер и формировании ссылки на карту, как например - https://www.openstreetmap.org/?mlat=57.4455&mlon=39.7470#map=13/57.4455/39.7470 ?
Работает через #marker - https://opentopomap.ru/#marker=14/57.4455/39.7470. Или вам нужно что-то большее?
Спасибо! То что надо!
Рассматривая особенности построения горизонталей
https://opentopomap.ru/#map=16/61.11740/76.59863 ,
понял, что мне очень не хватает скважин и наименования кустов
https://www.openstreetmap.org/#map=16/61.1174/76.5986&layers=D
очень не хватает скважин и наименования кустов
Я бы сказал в целом, что name у landuse=* был бы нелишним.
wowik:очень не хватает скважин и наименования кустов
Я бы сказал в целом, что name у landuse=* был бы нелишним.
В данном случае ref=* будет важнее
Добавил отрисовку waterway=drystream (сухие русла ручьёв). Стиль такой же, как у пересыхающего ручья, только используется цвет линий рельефа.
Картостиль opentopomap.ru не показывает гоночные не-автомобильные трассы.
Тэги в данном случае
leisure=track
sport=roller_skating
Сделал. Стоит учитывать, что при рендеринге leisure=track имеет меньший приоритет, чем любой highway. Поэтому спортивный трек будет появляться только тогда, когда на линии не будет тега highway. Также, трассы sport=bobsleigh, surface=ice и surface=snow заливаются голубым цветом.
Ещё добавлена отрисовка точечных объектов barrier типов ‘block’, ‘debris’, ‘gate’, ‘sliding_gate’, ‘lift_gate’, ‘swing_gate’, ‘chain’, ‘yes’, ‘bollard’, с учётом запрета доступа access, foot, motor_vehicle типов ‘no’, ‘private’, ‘forestry’, ‘agricultural’. Для страны забории это оказалось важным. При рендеринге тип barrier не учитывается, а учитываются только ограничения, накладываемые им.
Соответственно:https://opentopomap.ru/legend/barrier_z18.png - доступ запрещён, как для foot, так и для motor_vehicle.
https://opentopomap.ru/legend/barrier_z18_foot.png - доступ разрешён для foot, запрещён для motor_vehicle.
https://opentopomap.ru/legend/barrier_z18_mv.png - доступ запрещён для foot, разрешён для motor_vehicle.Если доступ разрешён обоим категориям, то ничего не рисуется, как и раньше.
Иконка привязывается к ближайшей дороге. Если дороги рядом не обнаруживается, то иконка не рисуется.
К сожалению “запертые ворота” отрисовываются перпендикулярно проходящей дороге, поэтому если дорога пересекает барьер под углом, получается некрасиво. А если дорога не обозначена, то ворота могут стать перпендикулярно забору Вот как здесь: https://opentopomap.ru/#map=18/59.68890/30.43670
К сожалению “запертые ворота” отрисовываются перпендикулярно проходящей дороге, поэтому если дорога пересекает барьер под углом, получается некрасиво.
Это только кажется, что таким символом обозначаются ворота в заборе. На практике там может быть любой другой дорожный барьер, не обязательно имеющий отношение к забору. Это больше значок прав доступа, а не физического объекта. Поэтому совершенно не факт, что его нужно позиционировать относительно забора, а не дороги.
Это может иметь смысл, только если рендерить точку barrier=gate отдельно от других барьеров, с привязкой к забору, а не к дороге. Но всё равно, точечный объект при рендеринге становится линейным. И тут может стать некрасиво на углах забора, резких перегибах и т.д. То есть, для полной красоты все ворота должны быть линейными объектами и в базе. Как, например, мосты. Но линейных ворот в базе всего 0.034% от всех ворот, и поэтому на полную красоту пока рассчитывать не приходится.
А если дорога не обозначена, то ворота могут стать перпендикулярно забору
Это происходит из-за того, что алгоритм позиционирования значка ищет ближайшую дорогу в радиусе 3-х метров, и позиционируется относительно неё. Сделано это для того, чтобы рендерились препятствия с неточным позиционированием относительно дороги. Но если через барьер никакой дороги не проходит, а в радиусе 3-х метров есть какая-то тропинка, то он ошибочно привязывается к ней, и рендерится. Думаю, я попробую уменьшить радиус поиска до более компромиссного.
А зачем искать в 3-х метрах, а не прямо пересечение с дорогой?
Это больше значок прав доступа, а не физического объекта. Поэтому совершенно не факт, что его нужно позиционировать относительно забора, а не дороги.
Это может иметь смысл, только если рендерить точку barrier=gate отдельно от других барьеров, с привязкой к забору, а не к дороге. Но всё равно, точечный объект при рендеринге становится линейным. И тут может стать некрасиво на углах забора, резких перегибах и т.д. То есть, для полной красоты все ворота должны быть линейными объектами и в базе. Как, например, мосты. Но линейных ворот в базе всего 0.034% от всех ворот, и поэтому на полную красоту пока рассчитывать не приходится.
Может быть имеет смысл уменьшить размер значка? В стандартном стиле значок “зачеркнутых ворот” вообще всегда ориентирован по горизонтали, но у него такой маленький размер, что это совсем не бросается в глаза.
А зачем искать в 3-х метрах, а не прямо пересечение с дорогой?
Из-за того, что:
opentopomap=# SELECT planet_osm_point.osm_id as node_id, ST_Distance(planet_osm_point.way, planet_osm_line.way) as distance
from planet_osm_point, planet_osm_line where planet_osm_point.barrier IN ('block', 'debris', 'gate', 'sliding_gate', 'lift_gate', 'swing_gate',
'chain', 'yes', 'bollard') and planet_osm_line.highway IS NOT NULL AND ST_DWithin(planet_osm_point.way, planet_osm_line.way,1) AND
ST_Distance(planet_osm_point.way, planet_osm_line.way) > 0 LIMIT 20;
node_id | distance
------------+---------------------
6335229567 | 0.652256400442125
6383076822 | 0.347329950699121
4879850217 | 0.00176391671509317
6709690309 | 0.217341423964735
6709690336 | 0.113966045827994
5968364270 | 0.350461459255921
3753418376 | 0.00497629672938214
5542250037 | 0.170489284424466
5254177593 | 0.0109934973856311
7783514033 | 0.303132289221544
3713339848 | 0.00241383208866235
5692470541 | 0.00111056901716455
6085601292 | 0.0256974801765485
4732181078 | 0.00199527523212845
5049374719 | 0.00296677284412729
3590207884 | 0.658437988963735
4152133398 | 0.00355684702561035
2349446419 | 0.468091580837245
4367451417 | 0.697566707374447
4367451416 | 0.317517851001572
(20 строк)
Без сортировки и общего количества строк, поскольку тогда нужно очень напрягать базу.
Если посмотреть полученные node_id на openstreetmap.org, то окажется, что некоторые барьеры, которые в первом приближении вроде бы расположены на линии дорог, на самом деле на них не находятся, а отстоят от них на небольшое расстояние, указанное в столбце distance. Это лучше видно в iD. Думаю, к такому приводят какие-то ошибки при редактировании. Но, если не учитывать эту особенность, такие барьеры не будут рендериться.
Может быть имеет смысл уменьшить размер значка? В стандартном стиле значок “зачеркнутых ворот” вообще всегда ориентирован по горизонтали, но у него такой маленький размер, что это совсем не бросается в глаза.
Не получится. У них минимальное количество пикселей для безошибочного считывания прав доступа. Кроме того, они соответствуют ширине дорог.
Я ошибся в количестве линейных ворот на два порядка, забыв умножить на сто. Итак, в общемировой базе их на самом деле 3,4%, в базе opentopomap.ru чуть меньше - 2,24%. И, что примечательно, ни стандартный стиль mapnik, ни мой рендер их не отрисовывают. OsmAnd тоже о них ничего не знает. Соответственно, если вы хотите увидеть свои любимые ворота на карте, не рисуйте их линией. Мир пока к этому не готов.
Если посмотреть полученные node_id на openstreetmap.org, то окажется, что некоторые барьеры, которые в первом приближении вроде бы расположены на линии дорог, на самом деле на них не находятся, а отстоят от них на небольшое расстояние
Я ткнул в первые три. Вторые и третьи ворота просто не соединены с дорогой, это как бы ошибка. В первом же случае ворота корректно стоят на дороге, но рядом эта дорого пересекается с другой, и расстояние считается до неё.
В общем чтобы по красоте нужны три случая: поперёк дороги, вдоль забора если нет дороги и сферические ворота в вакууме.
karnavalny:Если посмотреть полученные node_id на openstreetmap.org, то окажется, что некоторые барьеры, которые в первом приближении вроде бы расположены на линии дорог, на самом деле на них не находятся, а отстоят от них на небольшое расстояние
В общем чтобы по красоте нужны три случая: поперёк дороги, вдоль забора если нет дороги и сферические ворота в вакууме.
На мой взляд наооборот:
- вдоль забора
- поперек дороги, если нет забора
- сферические ворота в вакууме.
выявить такие ворота и закинуть задчау в мапрулетку. авось и вычистятся.
Думаю, я попробую уменьшить радиус поиска до более компромиссного.
Радиус поиска уменьшил до 0,5 м.
С Новым Годом!
karnavalny:Думаю, я попробую уменьшить радиус поиска до более компромиссного.
Радиус поиска уменьшил до 0,5 м.
Часть ворот вообще пропала, например вот эти https://www.openstreetmap.org/node/7392648528
Есть предложение как-то обозначать детские площадки, хотя бы контур.
С Новым Годом!
Спасибо, вас так же!
Часть ворот вообще пропала, например вот эти https://www.openstreetmap.org/node/7392648528
Этот случай я описывал в первом сообщении, посвященном barrier. Цитирую:
При рендеринге тип barrier не учитывается, а учитываются только ограничения, накладываемые им.
Если доступ разрешён обоим категориям, то ничего не рисуется, как и раньше.
Иконка привязывается к ближайшей дороге. Если дороги рядом не обнаруживается, то иконка не рисуется.
Есть предложение как-то обозначать детские площадки, хотя бы контур.
Я подумаю над этим. Но пока мне не кажется хорошей идеей отображать детские площадки на топографической карте.
При рендеринге тип barrier не учитывается, а учитываются только ограничения, накладываемые им.
Если доступ разрешён обоим категориям, то ничего не рисуется, как и раньше.
Иконка привязывается к ближайшей дороге. Если дороги рядом не обнаруживается, то иконка не рисуется.
Возможно стоит отдельно обрабатывать случай barrier=gate. В 99% случаев это ворота в заборе, а заборы вообще без ворот выглядят несколько странно.
vonrockos:Есть предложение как-то обозначать детские площадки, хотя бы контур.
Я подумаю над этим. Но пока мне не кажется хорошей идеей отображать детские площадки на топографической карте.