Сколько вики не читал и Котяру не спрашивал, нормального понимания у меня так и не сложилось. Объясните, плиз.
Сначала что, собственно, нужно: возможность из реплицируемой базы (читай: того, что подняли на первом сервере Рамблера), быстро вытаскивать OSM объекты (точки с тэгами, веи и отношения) для заданного bbox.
Теперь что я (не)понял: osmosis’ом реплицируется OSM’овская схема, которая http://wiki.openstreetmap.org/wiki/Database/Model. Но там индексы только по ID. Есть также мапниковская схема, которая не реплицируется (?), а закачивается целиком (?) osm2pgsql - вот там rtree индексы по bbox’ам, но данные уже как-бы не осмовские (т.е. отношений уже нет, полигоны хранятся не списком id вершин, а списком координат точек, и, например, уже нельзя сказать что POI принадлежит полигону и т.д.). Тогда как работает API, которое и осмовские данные и, очевидно, индексы по bbox, и, соответственно, как решается исходная задача?
Рассказываю: есть два типа баз, создаваемых осмосисом на основе планеты
база АПИ
база постгис-симпл
База апи - это полная калька с того, что крутится на серерах ОСМа.
База постгис-симпл это особая схема, в которой используются прелести постгиса, такие как, в частности индексы по геометриям.
На сервера рамблера поднята база номер раз. Выдергивание из нее ббокса делается жуткими джоинами на основе координат точек. Отсюда тормозность работы апи и ограничение по размеру ббокса.
Но! Сразу по окончании импорта данных в первую базу я намерен поднять там и вторую тоже. И вот в ней уже есть геометрии для точек и веев, индексы по ним. То есть запросы по ббоксу или точка-в-полигоне делаются средствами постгиса (GEOS если быть точнее), а не джоинами. Что в разы быстрее.