I am pleased to announce, I managed to create an onBoard port for OpenStreetMap API. A few months ago I tought about how could this been done, and finaly, past week I had some time to work on that. With map version you can explore map as well as draw on any place – when zoomed to max. The tool that was created I consider as a very smooth map explorer, I am not affraid to say much smoother than official explorer from OpenStreetMap or Google Maps even considering short time spent on developing it, and I am not mentioning possibility to rotate the map or possibility to have an Android app in few hours.
While developing I noticed that I made a very fortunate decision back in may 2010, when I decided to switch to 256×256 px grid (partition size) for onBoard, becase all the major map API providers use the same. So in this way I was able to implement maps just as underlying layer for each partition, without any extra transformation. Another thing that was to be done was deep zoom-level optimization. I only worked with 2^5 zoom-levels before, but with maps I tried up to 2^18 and fixed some slow code. I also noticed a strange bug with DisplayObject when used scales higher than 1/(2^14) or 2^14 – only some scales were valid, the other were somehow rounded to near unknown valid value what made it unusable. So another cheat/optimization there. 😉
The final map application extends 95% of the original one. To mount it over different map api provider is a question of changing 10 lines of code. I was also able to port it over google maps from my local machine, in fact it was my first attempt, but their api to be used correctly requires some more coding or results in crossdomain issues once running live (based on server you call). So I have choosen OpenStreetMap as their api just worked.
There are also some other map API (or common api) providers:
… and some other flash/javavscript based map explorers: