конвертация mapcss -> mapnik2 с помощью komap

Товарищи, подскажите, пожалуйста!

Каким образом сие действо проводить, мысли сейчас:

  1. Установка komap http://wiki.openstreetmap.org/wiki/Komap (учёт зависимостей по README).
  2. Сконвертиковать тестовый mapcss-файл, например:

. ./komap.py -s power.mapcss -f komap.conf > osm2.xml

  1. Подсунуть получившийся osm2.xml мапнику и получить нужные тайлы. К слову, возможно ли сделать фон прозрачным?

Вопросы:

  1. Правильно ли я мыслю?
  2. Правильно ли вычитал параметры конвертера?
  3. Есть ли какие-либо упрощённые редакторы mapcss?

progserega,

https://github.com/kothic/kothic

  1. зависимостей может быть слегка больше, чем в readme, поправки для readme приветствуются;
  2. python komap.py -s power.mapcss -c komap.conf > osm2.xml

python komap.py --help никуда не отменялся :3

  1. есть http://osmosnimki.ru/mapcss/editor.html, из которого можно делать что-то на свои нужды.

примеры mapcss идут в комплекте с репозиторием.

Поставил всё, что описано.
Выдаёт такое:


# python komap.py --help
  File "komap.py", line 219
    replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(translate("name",'абвгдезиклмнопрстуфьАБВГДЕЗИКЛМНОПРСТУФЬ','abvgdeziklmnoprstuf’ABVGDEZIKLMNOPRSTUF’'),'х','kh'),'Х','Kh'),'ц','ts'),'Ц','Ts'),'ч','ch'),'Ч','Ch'),'ш','sh'),'Ш','Sh'),'щ','shch'),'Щ','Shch'),'ъ','”'),'Ъ','”'),'ё','yo'),'Ё','Yo'),'ы','y'),'Ы','Y'),'э','·e'),'Э','E'),'ю','yu'),'Ю','Yu'),'й','y'),'Й','Y'),'я','ya'),'Я','Ya'),'ж','zh'),'Ж','Zh')) AS name""",('name:en','int_name','name:be'))
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^
SyntaxError: invalid syntax

Версия питона: python3.2

На версии python 2.7 --help отработал.

Сконвертировал, запустил - работает.
mapcss - это вещь! Конфиг mapnik-а, конечно ни в какое сравнение не идёт по читаемости.

Единственный момент, для подсоединения через сокет пришлось немножко пропатчить:

diff -ru kothic_orig/src/komap.conf kothic/src/komap.conf
— kothic_orig/src/komap.conf 2013-02-06 16:17:11.000000000 +1100
+++ kothic/src/komap.conf 2013-02-08 09:38:40.000000000 +1100
@@ -3,9 +3,12 @@
db_proj = +init=epsg:3857
table_prefix = planet_osm_
db_user = postgres
+db_passwd = XXXXXX
db_name = drsk_gis
+db_host = localhost
+db_port = 5432
db_srid = 900913
world_bnd_path = /opt/osm/mapnik/world_boundaries
cleantopo_dem_path = /raid/srtm/Full/CleanTOPO2merc.tif
srtm_dem_path = /raid/srtm/srtmm.vrt
diff -ru kothic_orig/src/komap.py kothic/src/komap.py
— kothic_orig/src/komap.py 2013-02-05 11:11:22.000000000 +1100
+++ kothic/src/komap.py 2013-02-08 09:35:10.000000000 +1100
@@ -78,6 +78,9 @@
libkomapnik.table_prefix = config.get(“mapnik”, “table_prefix”)
libkomapnik.db_user = config.get(“mapnik”, “db_user”)
libkomapnik.db_name = config.get(“mapnik”, “db_name”)
+libkomapnik.db_passwd = config.get(“mapnik”, “db_passwd”)
+libkomapnik.db_host = config.get(“mapnik”, “db_host”)
+libkomapnik.db_port = config.get(“mapnik”, “db_port”)
libkomapnik.db_srid = config.get(“mapnik”, “db_srid”)
libkomapnik.icons_path = config.get(“mapnik”, “icons_path”)
libkomapnik.world_bnd_path = config.get(“mapnik”, “world_bnd_path”)
diff -ru kothic_orig/src/libkomapnik.py kothic/src/libkomapnik.py
— kothic_orig/src/libkomapnik.py 2012-07-10 11:59:58.000000000 +1100
+++ kothic/src/libkomapnik.py 2013-02-08 09:37:34.000000000 +1100
@@ -27,6 +27,9 @@
table_prefix = “”
db_user = “”
db_name = “”
+db_passwd = “”
+db_host = “”
+db_port = “”
db_srid = “”
icons_path = “”
world_bnd_path = “”
@@ -343,13 +346,16 @@
true
%s
%s

  •    <Parameter name="password">%s</Parameter>
    
  •    <Parameter name="host">%s</Parameter>
    
  •    <Parameter name="port">%s</Parameter>
       <Parameter name="srid">%s</Parameter>
       <Parameter name="geometry_field">way</Parameter>
       <Parameter name="geometry_table">%s%s</Parameter>
       <Parameter name="estimate_extent">false</Parameter>
       <Parameter name="extent">-20037508.342789244, -20037508.342780735, 20037508.342789244, 20037508.342780709</Parameter>
     </Datasource>
    
  • “”"%(layer_id, db_proj, subs, interesting_tags, table_prefix, geom, sql, intersection_SQL, db_user, db_name, db_srid, table_prefix, geom)
  • “”“%(layer_id, db_proj, subs, interesting_tags, table_prefix, geom, sql, intersection_SQL, db_user, db_name, db_passwd, db_host, db_port, db_srid, table_prefix, geom)
    elif type == “postgis-process”:
    return “””

    @@ -364,13 +370,16 @@
    true
    %s
    %s
  •    <Parameter name="password">%s</Parameter>
    
  •    <Parameter name="host">%s</Parameter>
    
  •    <Parameter name="port">%s</Parameter>
       <Parameter name="srid">%s</Parameter>
       <Parameter name="geometry_field">way</Parameter>
       <Parameter name="geometry_table">%s%s</Parameter>
       <Parameter name="estimate_extent">false</Parameter>
       <Parameter name="extent">-20037508.342789244, -20037508.342780735, 20037508.342789244, 20037508.342780709</Parameter>
     </Datasource>
    
  • “”"%(layer_id, db_proj, subs, sql, intersection_SQL, db_user, db_name, db_srid, table_prefix, geom)
  • “”“%(layer_id, db_proj, subs, sql, intersection_SQL, db_user, db_name, db_passwd, db_host, db_port, db_srid, table_prefix, geom)
    elif type == “coast”:
    if zoom < 9:
    return “””

progserega, оформи pull-request в гитхабе, вмержу в основную ветку :3

Оформил, надеюсь всё правильно оформил:

https://github.com/kothic/kothic/pull/13