Рендер тайла по требованию (mapnik)

Есть необходимость рендерить конкретные участки карты по требованию. Я сделал как указано в вики http://wiki.openstreetmap.org/wiki/Mapnik.
Импортировал OSM данные, поставил Mapnik, сгенерировал конфиг скриптом generate_xml.py.
Но когда я пытаюсь рендерить тайлы, они выглядят не так как я ожидаю.

Скрипт, который я накопипастил для рендера:

#!/usr/bin/python

import sys
import mapnik

width = 256
height = 256

# Here goes code which imports vars (left, top, right, bottom, style and output) from script params

mymap = mapnik.Map(width, height)
mapnik.load_map(mymap, style)

map_bbox = mapnik.Box2d(left,bottom,right,top)
mymap.zoom_to_box(map_bbox)

mapnik.render_to_file(mymap, output)

В результате рендера этих 4х участков получается странная картина:

-0.5616, 51.5771, -0.5313, 51.5959
-0.5313, 51.5771, -0.5009, 51.5959
-0.5616, 51.5582, -0.5313, 51.5771
-0.5313, 51.5582, -0.5009, 51.5771

У меня нет абсолютно никакого опыта работы с ГИС. Подскажите, пожалуйста, куда копать?

думаю, копать нужно здесь
Вот еще на тему
http://wiki.openstreetmap.org/wiki/RU:Mapnik:_Rendering_OSM_XML_data_directly
и это http://forum.openstreetmap.org/viewtopic.php?id=13898&p=1 в части мапника
нужно проштудировать

Похоже, что координаты ббокса перепутаны.

Вроде бы правильно.
(left:-0.5616, bottom:51.5771, right:-0.5313, top:51.5959)
left < right && bottom < top

latitude ведь увеличивается от южного полюса к северному [-90, 90], это значит, что координата верхней точки должна быть больше, чем нижней, я ничего не путаю?

(minlon, minlat, maxlon, maxlat).

Значит правильно всё с bbox’ами

Может нужно в определённой пропорции (maxlon - minlon) / (maxlat - minlat) передавать скрипту?

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

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

Так и было. Посмотрел в исходники mapnik’a там есть параметр, определяющий поведение при масштабировании. По умолчанию стоит значение GROW_BBOX.

Доступные варианты:

GROW_BBOX,
GROW_CANVAS,
SHRINK_BBOX,
SHRINK_CANVAS,
ADJUST_BBOX_WIDTH,
ADJUST_BBOX_HEIGHT,
ADJUST_CANVAS_WIDTH,
ADJUST_CANVAS_HEIGHT

Поменять из скрипта можно следующим образом:

mymap.aspect_fix_mode = mapnik.aspect_fix_mode.GROW_CANVAS

Большое спасибо всем кто откликнулся!