I looked into the source code of osmconvert. Then I wrote my own programs:
- Count OSM makes some statistics.
- Filter OSM removes unnecessary attributes.
- Renumber OSM renumbers the IDs sequentially starting from zero.
After the IDs are renumbered some data can be stored in arrays and the IDs can be used as indexes. This saves memory and it's faster than hash tables or trees. Calculating bounding boxes will be fast for example.
Now the data have to be turned into a quad tree. Then it has to be saved into one file so that everything that you want to draw can be retreived as fast as possible. I have never done this before. I have no idea where to start. Any advice?
Then I have to draw it. I'll use QuickDraw GX for the text and QuickDraw for the rest. I draw it at 200% and then scale it 50% using QuickTime. Then I'll have some antialiasing. If I define this in a plugin then you can write your own plugin.
And it has to be able to export PNG tiles.