OpenStreetMap Forum

The Free Wiki World Map

You are not logged in.

#1 2010-10-05 19:29:36

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

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

Offline

#2 2010-10-05 19:30:53

vvoovv
Moderator
Registered: 2008-03-04
Posts: 2,256

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

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

Offline

#3 2010-10-05 19:39:10

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,321
Website

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

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


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#4 2010-10-06 04:14:41

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

запуска 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 <module>
    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, что должно было быть в одном из архивов. видимо он сильно хочет. как быть?

Offline

#5 2010-10-06 10:58:08

vvoovv
Moderator
Registered: 2008-03-04
Posts: 2,256

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

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

Offline

#6 2010-10-06 16:45:28

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

стянул мапника отсюда:
svn export http://svn.openstreetmap.org/applicatio … ing/mapnik
там уже был файл osm.xml, и в нем не было <Layer>, содержащих 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 нашел только один слой:
<Layer name="misc_boundaries" status="on" srs="&osm2pgsql_projection;">
     <StyleName>boundary</StyleName>
     <Datasource>
       <Parameter name="table">
       (select way,name,boundary from &prefix;_polygon where boundary='national_park') as boundary
       </Parameter>
       &datasource-settings;
     </Datasource>
</Layer>
закомментировал его, результат тот же. причем этот предательский layer 'world' (в ошибке, выдаваемой generate_image.py) не знаю где искать. что не так делал? может это быть из-за того, что я не изменил следующее:
#---------------------------------------------------
#  Change this to the bounding box you want
#
ll = (-6.5, 49.5, 2.1, 59)
#---------------------------------------------------
в скрипте generate_image.py?

Offline

#7 2010-10-06 17:12:08

vvoovv
Moderator
Registered: 2008-03-04
Posts: 2,256

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

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

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

Offline

#8 2010-10-06 17:39:03

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

#grep -Rni world .
./archive/osm-template-fontset.xml:16:<Style name="world">
./archive/osm-template-fontset.xml:7071:<Layer name="world" status="on" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over">
./archive/osm-template-fontset.xml:7072:    <StyleName>world</StyleName>
./archive/osm-template-fontset.xml:7075:      <Parameter name="file">%WORLD_BOUNDARIES_DIR%/shoreline_300</Parameter>
./archive/osm-template-fontset.xml:7082:      <Parameter name="file">%WORLD_BOUNDARIES_DIR%/processed_p</Parameter>
./archive/osm-template-fontset.xml:7089:      <Parameter name="file">%WORLD_BOUNDARIES_DIR%/builtup_area</Parameter>
./archive/osm-template.xml:4:<Style name="world">
./archive/osm-template.xml:7059:<Layer name="world" status="on" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over">
./archive/osm-template.xml:7060:    <StyleName>world</StyleName>
./archive/osm-template.xml:7063:      <Parameter name="file">%WORLD_BOUNDARIES_DIR%/shoreline_300</Parameter>
./archive/osm-template.xml:7070:      <Parameter name="file">%WORLD_BOUNDARIES_DIR%/processed_p</Parameter>
./archive/osm-template.xml:7077:      <Parameter name="file">%WORLD_BOUNDARIES_DIR%/builtup_area</Parameter>
./inc/layer-shapefiles.xml.inc:19:<Style name="world">
./inc/layer-shapefiles.xml.inc:46:<Layer name="world" status="on" srs="&srs900913;">
./inc/layer-shapefiles.xml.inc:47:    <StyleName>world</StyleName>
./inc/layer-shapefiles.xml.inc:50:      <Parameter name="file">&world_boundaries;/shoreline_300</Parameter>
./inc/layer-shapefiles.xml.inc:57:      <Parameter name="file">&world_boundaries;/processed_p</Parameter>
./inc/layer-shapefiles.xml.inc:64:      <Parameter name="file">&world_boundaries;/builtup_area</Parameter>
./inc/layer-shapefiles.xml.inc:71:      <Parameter name="file">&world_boundaries;/110m_admin_0_boundary_lines_land.shp</Parameter>
./inc/layer-shapefiles.xml.inc:78:      <Parameter name="file">&world_boundaries;/10m_populated_places.shp</Parameter>

это то, что может быть интересным. глянул archive/osm-template-fontset.xml:7071, вот что там есть:
<Layer name="world" status="on" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +     over">
     <StyleName>world</StyleName>
     <Datasource>
       <Parameter name="type">shape</Parameter>
       <Parameter name="file">%WORLD_BOUNDARIES_DIR%/shoreline_300</Parameter>
     </Datasource>
</Layer>
я так полагаю, что надо комментировать все, что содержит %WORLD_BOUNDARIES_DIR% ?

Offline

#9 2010-10-06 17:48:53

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

хм, закомментировал все, что связано с world_boundaries в этих двух файлах. теперь ругается следующим образом:
Traceback (most recent call last):
  File "./generate_image.py", line 37, in <module>
    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) ... ну пока буду разбираться с ошибками и верить в конечность ошибок...

Offline

#10 2010-10-07 19:13:13

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

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

Offline

#11 2010-10-07 19:39:33

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,321
Website

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

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


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#12 2010-10-07 19:45:56

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

ага! победил эту штуку путем добавления необходимых полей в таблицу вручную и комментирования слоев в случае невозможности последнего.
последний, надеюсь, вопрос: как правильно задать мне bounding box (не совсем понял эти minlat,minlon,maxlat,maxlon из ./osm2pgsql --help) в
#---------------------------------------------------
#  Change this to the bounding box you want
#
ll = (-6.5, 49.5, 2.1, 59)
#---------------------------------------------------

Offline

#13 2010-10-07 19:48:36

Komяpa
Member
From: Minsk
Registered: 2009-04-14
Posts: 1,321
Website

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

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


world processing is what we do.
[OSMF BY Team] [http://komzpa.net/] [jabber: komzpa@gmail.com] [mobile/SMS: +375257407159]

Offline

#14 2010-10-07 20:07:31

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

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

Offline

#15 2010-10-07 20:15:37

milohoffman
Member
Registered: 2010-07-30
Posts: 18

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

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

Offline

Board footer

Powered by FluxBB