разбить данные по частям

Доброго времени суток!
Я тут новенький, но узнал про ОСМ уже где-то 8 месяцев назад.
Мне вот очень интересно, как самым просто способом достать данные из ОСМ файла.
Насколько я понял они там хранятся в произвольном порядке, просто потом отрисовывающая программа сама определяет что над чем находится.

Вот в чем мой вопрос:
может кто делал такое - доставал все данные ОСМ файла в отдельные файлы, из которых уже в определенном порядке нужно было отрисовывать на карте.

Если кто делал, может кинет мне исходник?
(c++, java, delphi)

Заранее благодарен.

что-то не совсем понятно, в какие “отдельные файлы” надо вытаскивать данные.
по какому принципу их делить?