Я вот только недавно начал заниматся с картами. В течении недели изучал, как примерно это "устроено".
Цель - рисовать свою карту, точнее tile для Gmap'a (tile). Я выбрал mapnik + postgis (У меня стоит Windows XP).
Проблема в следующем: при запуске скрипта (python'a) винда выдает ошибку:
Инструкция по адресу "0x00000000" обратилась к памяти по адресу "0x00000000". Память не может быть "read".
картинка создается, но пустая (с белым фоном).
Если вместо postgis использовать Shapefile - то все нормально работает.
Postgis установил только вчера, так что плохо знаю, как там и что там.
Приведу небольшой код (как я работаю примерно).
Создаю таблицу:
Код: Выделить всё
CREATE TABLE points ( the_geom geometry, name varchar );
INSERT INTO points ( 'POINT(30, 40)', 'first' );
Теперь python
Код: Выделить всё
from mapnik import *
...
lyr = Layer('newlayer')
tab = '(select * from points) as point'
lyr.datasource = PostGIS(host='localhost',user='Anton',password='blablabla',dbname='map',table=tab)
...
Код: Выделить всё
<Map srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs " bgcolor="rgba(0,0,0,0)">
<Style name="point">...</Style>
<Layer name="world" status="on" srs="+proj=latlong +datum=WGS84">
<StyleName>point</StyleName>
<Datasource>
<Parameter name="type">postgis</Parameter>
<Parameter name="host">localhost</Parameter>
<Parameter name="dbname">map</Parameter>
<Parameter name="user">Anton</Parameter>
<Parameter name="password">12345</Parameter>
<Parameter name="table">(select * from points) as point</Parameter>
<Parameter name="estimate_extent">false</Parameter>
<Parameter name="extent">29,39,31,41</Parameter>
</Datasource>
</Layer>
</Map>
Может кто-нибудь приведет небольшой код с созданием таблицы, чуть-чуть данных, соединением с postgis и рендером картинки? Очень надеюсь на вашу помощь.