использование mapnik'а для отрисовки карт, нарисованных в JOSM

подскажите, пожалуйста: для примера я нарисовал пару домиков в своем поселке, сохранил локально и хочу попробовать отрендерить. поставил постгрес, постгис, osm2pgsql. с базами сейчас нет никаких проблем. но! в мануалах везде качаются world boundaries и пр… что это такое? и можно ли мне обойтись без них, и просто отрендерить свой колхоз? качать 500 мб не плющит…

world boundaries - это береговые линии континентов. Они тебе не нужны

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

запуска generate_image.py, он ругается на отсутсвие папки world_bounaries, ладно, создаю ему ее и он ругается следующим образом:
[milo@milo mapnik]$ MAPNIK_MAP_FILE=“osm.xml” MAPNIK_TILE_DIR=“tiles/” ./generate_image.py
Traceback (most recent call last):
File “./generate_image.py”, line 37, in
mapnik.load_map(m,mapfile)
RuntimeError: /home/milo/craps/tiles/mapnik/world_boundaries/shoreline_300 does not exist (encountered during parsing of layer ‘world’)

теперь ему не хватает shoreline_300, что должно было быть в одном из архивов. видимо он сильно хочет. как быть?

В файле osm.xml надо убрать или закоментировать тег , содержащий и world_bounaries и shoreline_300

стянул мапника отсюда:
svn export http://svn.openstreetmap.org/applications/rendering/mapnik
там уже был файл osm.xml, и в нем не было , содержащих world_bounaries или shoreline_300. ну да ладно. запустил
./generate_xml.py --host localhost --user whoami --dbname gis --symbols ./symbols/ --world_boundaries ./world_boundaries/ --port 5432 --password ‘something’
, правда, так и не понял что он делает… вернемся к osm.xml, со словом boundaries нашел только один слой:

boundary


(select way,name,boundary from &prefix;_polygon where boundary=‘national_park’) as boundary

&datasource-settings;


закомментировал его, результат тот же. причем этот предательский layer ‘world’ (в ошибке, выдаваемой generate_image.py) не знаю где искать. что не так делал? может это быть из-за того, что я не изменил следующее:
#---------------------------------------------------

Change this to the bounding box you want

ll = (-6.5, 49.5, 2.1, 59)
#---------------------------------------------------
в скрипте generate_image.py?

ll - это координаты области, которую нужно отрисовать.
Сейчас стоят координаты какой-то области в Англии. Надо свои координаты поставить.

Но сначала надо разобраться со слоем world. Поищи поиском в файлах, где встречается world

#grep -Rni world .
./archive/osm-template-fontset.xml:16:
./archive/osm-template-fontset.xml:7071:
./archive/osm-template-fontset.xml:7072: world
./archive/osm-template-fontset.xml:7075: %WORLD_BOUNDARIES_DIR%/shoreline_300
./archive/osm-template-fontset.xml:7082: %WORLD_BOUNDARIES_DIR%/processed_p
./archive/osm-template-fontset.xml:7089: %WORLD_BOUNDARIES_DIR%/builtup_area
./archive/osm-template.xml:4:
./archive/osm-template.xml:7059:
./archive/osm-template.xml:7060: world
./archive/osm-template.xml:7063: %WORLD_BOUNDARIES_DIR%/shoreline_300
./archive/osm-template.xml:7070: %WORLD_BOUNDARIES_DIR%/processed_p
./archive/osm-template.xml:7077: %WORLD_BOUNDARIES_DIR%/builtup_area
./inc/layer-shapefiles.xml.inc:19:
./inc/layer-shapefiles.xml.inc:46:
./inc/layer-shapefiles.xml.inc:47: world
./inc/layer-shapefiles.xml.inc:50: &world_boundaries;/shoreline_300
./inc/layer-shapefiles.xml.inc:57: &world_boundaries;/processed_p
./inc/layer-shapefiles.xml.inc:64: &world_boundaries;/builtup_area
./inc/layer-shapefiles.xml.inc:71: &world_boundaries;/110m_admin_0_boundary_lines_land.shp
./inc/layer-shapefiles.xml.inc:78: &world_boundaries;/10m_populated_places.shp

это то, что может быть интересным. глянул archive/osm-template-fontset.xml:7071, вот что там есть:

world

shape
%WORLD_BOUNDARIES_DIR%/shoreline_300


я так полагаю, что надо комментировать все, что содержит %WORLD_BOUNDARIES_DIR% ?

хм, закомментировал все, что связано с world_boundaries в этих двух файлах. теперь ругается следующим образом:
Traceback (most recent call last):
File “./generate_image.py”, line 37, in
mapnik.load_map(m,mapfile)
RuntimeError: PSQL error:
ERROR: column “lock” does not exist
LINE 2: (select way,waterway,disused,lock,name,
^
Full sql was: ‘select * from
(select way,waterway,disused,lock,name,
case when tunnel in (‘yes’,‘true’,‘1’) then ‘yes’::text else tunnel end as tunnel
from planet_osm_line
where waterway in (‘weir’,‘river’,‘canal’,‘derelict_canal’,‘stream’,‘drain’,‘ditch’,‘wadi’)
and (bridge is null or bridge not in (‘yes’,‘true’,‘1’,‘aqueduct’))
order by z_order
) as water_lines limit 0’
(encountered during parsing of layer ‘water_lines’)
видимо чегойто в базе не хватает, хотя вроде все по инструкции делал (http://wiki.openstreetmap.org/wiki/Mapnik) … ну пока буду разбираться с ошибками и верить в конечность ошибок…

кому не жалко пары минут, выложите, пожалуйста create table-скрипт для вашей таблицы planet_osm_line и по возможности пару слов о том, что создало эту таблицу у вас. благдарен.

milohoffman, osm2pgsql -d gis -m belarus.osm.bz2. Всё есть в вики, нужно просто читать немножко внимательнее.

ага! победил эту штуку путем добавления необходимых полей в таблицу вручную и комментирования слоев в случае невозможности последнего.
последний, надеюсь, вопрос: как правильно задать мне bounding box (не совсем понял эти minlat,minlon,maxlat,maxlon из ./osm2pgsql --help) в
#---------------------------------------------------

Change this to the bounding box you want

ll = (-6.5, 49.5, 2.1, 59)
#---------------------------------------------------

один из способов получить ббокс - дозумиться до нужного места и выдрать его из ссылки по клику по кнопке “Get Image” на http://latlon.org/sketch

все, разобрался сам. всем спасибо

ну вот разве что со стилями напарил немного - реку не видно совсем…