So there are no ideological or licensing reasons for not using them, that's good to hear.
Showing the tiles from Wikimapia is rather crippled, because it shows a name only for the objects which are at the center of the tile,
so even zooming to the max won't show you a label for most objects (just
try it out yourself, and compare to the web interface at
wikimapia.org).
On the other hand, the vector-based API that Wikimapia provides will
also give you an object description, and it will give you a
name/description in a selected language, if available.
Also, with vector maps you'll have all the labels rotated correctly when you fix the map rotation to the compass.
Currently I'm trying to implement Wikimapia vector API support, no promises about when it will be done though.
I already added the code that will download an .xml vector data for the given tile, now I'm trying to understand how to output that on the screen.
Is it better just to convert the vector data to the .obf format on the fly? That means making a separate.obf file for each tile, I think that's overkill for the memory usage, though it's quite simple.
Or just hack into the ResourceManager.java, and replace BitmapFactory.decodeFile() call with a function that will produce a bitmap picture out of the .xml vector data, and call BitmapFactory.decodeFile() for other formats? That seems like the fastest way to get it working (but the labels won't rotate).
Is it better to create another OsmandMapLayer subclass, that will show that .xml data? That's most complicated way, however most correct one in the long term (later I may wish to add support for photos and user comments, they are not provided through the API though, however you already have the code to fetch Wikipedia articles, it may be reused I think).