Картостиль veloroad для печати маршрутов

Аналогично, tilemill на убунте не удалось вылечить от сегфолтов даже пересборкой почти всего.

Долго плясал с бубном - развернул tilemill на винде, пробросил postgres из виртуалки в винду - тот же глюк с непонятными ошибками в стиле. Непонятно.

Я кажется понял в чём дело. Стиль использует операторы CartoCSS, которые работают в tilemill только с версии 0.10.2, а у них на сайте бинарники 0.10.1

Нет, у меня 0.10.1.

Итак, у меня полтора месяца не разворачивался стиль veloroad, но я нашёл в чём дело. Он работает с версиями tilemill >=0.10.2, а стабильная версия сейчас - 0.10.1 Я взял dev-бинарник на странице https://www.mapbox.com/blog/tilemill-adds-support-for-esri-filegdb-format/, и теперь наслаждаюсь рендерами Сахалина вместе с Северной Кореей.

Привет.
Я упаковал get veloroad в контейнер Docker.
В сборке настроены
Postgresq, Postgis, Mapnik, Apache2, mod_tile, renderd, osm2pgsql, carto и Nik4
Тоесть теперь если вы хотите поднять на VDS или на локальной машине стек рендеринга осм но не хотите тратить 2 дня на установку и настройку, достаточно проделать установить Docker, сделать pull образа https://registry.hub.docker.com/u/dkiselev/nik4web/ и запустить контейнер


sudo apt-get install docker.io
sudo docker pull dkiselev/nik4web
sudo docker run -p 8081:80 -i -t dkiselev/nik4web /bin/bash
startup

После чего, если вы зайдете по адресу localhost:8081/nik4 - вы получите локальную копию http://tile.osmz.ru/get/ с загруженой свердловской областью.

Само по себе это безусловно не достижение, но теперь вы можете редактировать стиль (установлены openstreetmap-carto и veloroad) и легко получать свгшки с отредактированным стилем. Можете загрузить нужную вам область, если ее нет на http://tile.osmz.ru/get/ При этом в основной рабочей системе у вас не болтаются apache, mod_tile и остальные элементы стека рендеринга.

  • Секономленное на установке и настройке мапника и сотоварищей время можно потратить на свой собственный стиль.

Вот за это просто громадное спасибо!

присоединяюсь к предыдущему оратору! спасибо!

Проверьте в начале, все ли работает :slight_smile:

как минимум запускается

Про контейнеры, если кто пользуется, нужен ли вам TileMill?

У мапкрафта кстати есть недостаток (в сравнении с hot-osm) нельзя сплитануть кусок. Это добавляет кучу работы создателю пирога. В hot’е для того кто создает пирог все гораздо проще, добавляется 1 полигон а дальше рисовальщики сами если что разберуться.

надо отдельную тему про контейнеры. нужно osm-bright, а tilemill заодно.

K TileMill только придется цепляться через ssh xforwarding с мапингом ssh из контенера на локальный порт

ssh -X localhost:5000 tilemill

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

tilemill же искаропки ставится со всем, зачем для него контейнер?

Ну если у тебя все в контейнере то и тпйлмил запихивается в контейнер чтоб не тягать стили и прочее туда-сюда. Т.е. в контейнере он нужен чтобы удобнее было редактировать те стили что внутри лежат

Уже не первый день мучаюсь с подключением данного слоя к SASPlanet, может кто делал уже - подскажите какую ссылку вставлять?

сотворил на скорую руку https://yadi.sk/d/U4Bq5NB1dNvFR

Спасибо большое!

Лошадиные тропы потерялись?

Error 1 happened.
Command line:
/home/zverik/get-veloroad/nik4/nik4.py --ppi 300 --format png --margin 7 --bbox 48.3717 54.2964 48.3813 54.3045 --size 297 210 /home/zverik/get-veloroad/osm/osm.xml /tmp/tmphrfPi7 --vars

Output:

Traceback (most recent call last):
  File "/home/zverik/get-veloroad/nik4/nik4.py", line 313, in <module>
    mapnik.load_map_from_string(m, style_xml, False, style_path)
RuntimeError: ERROR:  column "horse" does not exist
LINE 1: ... null end)), ('aeroway_' || aeroway)) as feature, horse, foo...
                                                             ^

Full sql was: 'SELECT * FROM (select way,coalesce(('highway_' || highway), ('railway_' ||(case when railway='preserved' and service in ('spur','siding','yard') then 'INT-preserved-ssy'::text when (railway='rail' and service in ('spur','siding','yard'))  then 'INT-spur-siding-yard' when railway in ('light_rail', 'narrow_gauge', 'funicular', 'rail', 'subway', 'tram', 'spur', 'siding', 'monorail', 'platform', 'preserved', 'disused', 'construction', 'miniature', 'turntable') then railway else null end)), ('aeroway_' || aeroway)) as feature, horse, foot, bicycle, tracktype, case when access in ('permissive') then 'permissive'::text when access in ('destination') then 'destination'::text when access in ('no', 'private') then 'no'::text else null end as access, construction, case when service in ('parking_aisle','drive-through','driveway') then 'INT-minor'::text else 'INT-normal'::text end as service, case when oneway in ('yes', '-1') and highway in ('motorway','motorway_link','trunk','trunk_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','residential','unclassified','road','service','pedestrian','raceway','living_street','construction') then oneway else null end as oneway, case when layer is null then '0' else layer end as layernotnull from planet_osm_line where (highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'residential', 'road', 'unclassified', 'service', 'pedestrian', 'living_street', 'raceway', 'bridleway', 'footway', 'cycleway', 'path', 'track', 'steps', 'platform', 'proposed', 'construction')  or aeroway in ('runway','taxiway') or railway in ('light_rail', 'subway', 'narrow_gauge',  'rail', 'spur', 'siding', 'preserved', 'funicular', 'tram', 'monorail', 'platform', 'miniature', 'turntable', 'disused', 'construction')) and (tunnel='yes' or tunnel='building_passage' or covered='yes') order by layernotnull, z_order) as tunnels LIMIT 0'
  encountered during parsing of layer 'tunnels' in Layer at line 4418

Сегодня впервые обнаружился странный человек из Металлостроя (пригород Петербурга), который решил выкачать абсолютно все тайлы. На третьей сотне тысяч в кэше кончилось место. Сейчас почистил, человек продолжил качать. Забанил его, ищу простой способ выдавать таким людям тайлы «вы это зря, напишите администратору».