You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#26 2011-06-30 08:23:37

Jekader
Member
From: Chisinau, Moldova
Registered: 2010-10-10
Posts: 167

Re: при рендеринге получаю пустую картинку PostGis+Mapnik+Python?

Sviridenko wrote:

порядок в конфиге правильный получается...
а если не секрет как хоть теги в xml зовутся, которые ограничивают масштаб отображения слоя?

      <MaxScaleDenominator>25000</MaxScaleDenominator>
      <MinScaleDenominator>5000</MinScaleDenominator>
вот эти

Offline

#27 2011-06-30 08:33:48

Sviridenko
Member
Registered: 2011-06-27
Posts: 15

Re: при рендеринге получаю пустую картинку PostGis+Mapnik+Python?

усе) получилось) убрал из my_osm.xml все слои которые не относятся к базе и увидел Иркутск) всем большое спасибо)

Offline

#28 2011-07-13 08:58:01

Sviridenko
Member
Registered: 2011-06-27
Posts: 15

Re: при рендеринге получаю пустую картинку PostGis+Mapnik+Python?

Тут "внезапно" встал вопрос) так как все основные продукты привязаны к оракловой базе, есть огромное желание перенести базу с постгиса на оракл) про oracle spatial  все слышали но хотят именно сменить постгис на оракл а все остальное оставить как есть...
такое вообще реально?

ЗЫ от проекта надо всего лишь показывать карты пользователю с наложенным слоем(железные дороги + интенсивность движения по ним например)

Offline

#29 2011-07-13 09:51:51

Sergey Astakhov
Member
From: St.Petersburg, Russia
Registered: 2009-11-13
Posts: 5,808

Re: при рендеринге получаю пустую картинку PostGis+Mapnik+Python?

Sviridenko wrote:

Тут "внезапно" встал вопрос) так как все основные продукты привязаны к оракловой базе, есть огромное желание перенести базу с постгиса на оракл) про oracle spatial  все слышали но хотят именно сменить постгис на оракл а все остальное оставить как есть...
такое вообще реально?

ЗЫ от проекта надо всего лишь показывать карты пользователю с наложенным слоем(железные дороги + интенсивность движения по ним например)

Oracle Spatial - сильно не рекомендую. Труха унутре. Намучались с ним изрядно. Начиная от необъяснимых тормозов на простейших операциях и заканчивая поломкой пространственных индексов при update. Если только на readonly с небольшой нагрузкой - ещё может сгодиться.

Offline

#30 2011-07-13 09:57:05

Sviridenko
Member
Registered: 2011-06-27
Posts: 15

Re: при рендеринге получаю пустую картинку PostGis+Mapnik+Python?

так как раз основное стремление - это просто поменять постгис на оракл и все, то есть оставить ту же структуру таблиц что была в постгисе(тут не понятно что делать с полями типа geometry), оставить мапник(тут вопрос что делать с xml, в котором стоят typedatasource - postgis) и тд и тп... это вообще имеет смысл заморачиваться и искать или делать что-то свое, или просто оставить пост гис? просто не охота разводит зоопарк баз данных, хотелось бы все оставить на оракле

Про спатиал слышал точно такие же мысли - и не удобная и функциональность фиговая)

Offline

#31 2011-12-09 09:22:54

ZeALoT
Member
Registered: 2011-12-09
Posts: 1

Re: при рендеринге получаю пустую картинку PostGis+Mapnik+Python?

Sviridenko wrote:

Сразу признаюсь познания в предметной сфере очень малы...

Сначала скажу, что есть. Есть база PostGis полученная с помощью osm2pgsql. Соответственно в ней таблички planet_osm_line, planet_osm_nodes, planet_osm_point, planet_osm_polygon, planet_osm_rels, planet_osm_roads, planet_osm_ways, geometry_columns.

geometry_columns имеет следующие записи:
oid     f_table_catalog   f_table_schema     f_table_name      f_geometry_column  coord_dimension      srid                type
53680       "''"                   "public"      "planet_osm_line"          "way"                         2                 900913    "LINESTRING"
53669       "''"                   "public"      "planet_osm_point"        "way"                         2                 900913         "POINT"
53691       "''"                   "public"      "planet_osm_polygon"    "way"                         2                 900913      "GEOMETRY"
53701       "''"                   "public"      "planet_osm_roads"       "way"                         2                 900913      "LINESTRING"


Таблички даже чем то заполнены(заполнял картой иркутска), в них есть записи с какими-то улицами и тд и тп.

Далее я пытаюсь использовать mapnik для получения картинки с картой(пока что вопрос стоит только получения банальной png). Для этого на питоне был написан такой вот код:
"
import mapnik
from mapnik import *

z = 10
imgx = 1000 * z
imgy = 1000 * z
m = mapnik.Map(imgx,imgy)

m.background = mapnik.Color('white')
s = mapnik.Style()
r = mapnik.Rule()
r.symbols.append(mapnik.PolygonSymbolizer(mapnik.Color('black')))
r.symbols.append(mapnik.LineSymbolizer(Color('darkorange'), 2))
r.symbols.append(mapnik.PointSymbolizer('excel.png', 'png', 20, 20))
s.rules.append(r)
m.append_style('My Style',s)

mapnik.Datasource=mapnik.PostGIS(host='localhost',
    user='user',
    password='password',
    dbname='gisutf8',
table='(select way from planet_osm_point)POINT'
)
ll=(103.859,52.605,104.761,52.046)
prj=mapnik.Projection("+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")
c0=prj.forward(mapnik.Coord(ll[0],ll[1]))
c1=prj.forward(mapnik.Coord(ll[2],ll[3]))
bbox=mapnik.Envelope(c0.x,c0.y,c1.x,c1.y)
m.zoom_to_box(bbox)
im = mapnik.Image(imgx,imgy)
mapnik.render(m, im)
view = im.view(0,0,imgx,imgy) # x,y,width,height
view.save("image.png",'png')
"
Код выполняется без вылетов или ошибок, но на выходе я почему то получаю девственно белую .png, так вот вопрос - где я накосячил???
ЗЫ у меня уже голова сломалась в поисках - сначала думал база ошибочно создалась или наполнилась, потом что координаты неправильно задал, теперь даже не знаю

Я пока еще не так хорошо разбираюсь в mapnik API, но мне кажется что Datasource должен задаваться для слоя:

...
data_layer = mapnik.Layer('Layer')
data_layer.datasource = mapnik.PostGIS(host='localhost',
    user='user',
    password='password',
    dbname='gisutf8',
    table='(select way from planet_osm_point)POINT'
    )
...

ну и добавляем слой в карту, назначаем ему стиль, фильтры ... Поправьте если не прав.

Offline

Board footer

Powered by FluxBB