Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Most of the question is in the title.

If you are on android (I believe its the same on IOS) and use maps you will notice the quality of the maps app and how the vector maps are drawn in a very fluid manner.

From what I understand, they are delivering vector tiles wich are encoded using protocol buffers which is pretty easily achievable on my side. However I was wondering how they managed to achieve real-time rendering of vector tiles in such a fluid manner.

I am currently using mapsforge to render vector based maps but the rendering times of tiles are pretty far from what I can see in google maps.

Any ideas on how I can approach such awesomness ? What kind of voodoo tricks are they using ?

Thanks for any insight !

share|improve this question
    
Google has a lot of processing power... –  Fezter Jun 24 '13 at 6:05
2  
@Fezter I think you missunderstood the question –  azpublic Jun 25 '13 at 1:45
    
@azpublic: How about your work now? –  giser Mar 22 at 5:21

1 Answer 1

up vote 9 down vote accepted

Google has built their own vector map rendering engine based on OpenGL ES version 2: https://developers.google.com/maps/documentation/android/start#requiring_opengl_es_version_2

Here's a link about OpenGL ES on Android:

http://developer.android.com/training/graphics/opengl/index.html

OpenGL lets you leverage the underlying power of the GPU and get performance on par with 3D mobile game engines. Given the complexity of most high-end mobile games these days, rendering out some vector map tiles and 3D buildings seems like it would be on the low end of performance requirements.

This is why the requirement of the Maps API V2 is Android 2.2 and higher, since the OpenGL ES Android libraries also require Android 2.2 and higher.

As far as implementing your own version of this, I'd look into some general 3D rendering examples using OpenGL ES and available libraries for Android.

This SE post has some info: http://stackoverflow.com/questions/9450308/android-latest-open-source-3d-libraries-for-android

...and this: http://ntt.cc/2011/05/08/8-open-source-android-game-engines.html

I haven't seen any 3D OpenGL ES engines aimed at map rendering, but they might exist.

share|improve this answer
    
Thanks Sean. You are most likely right about OpenGL. Do you have any ideas how I could roll my own OpenGL based map renderer. Or is there any open source library I could use as a starter ? Thanks. –  azpublic Jun 25 '13 at 1:11
    
Added a few comments to the answer. Hopefully this helps! –  Sean Barbeau Jun 25 '13 at 14:02
    
@azpublic Found the definitive reference stating that Maps API v2 uses OpenGL and added it to the answer - I knew I had read this somewhere! :) –  Sean Barbeau Jun 28 '13 at 2:04

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.