8

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 !

3
  • Google has a lot of processing power...
    – Fezter
    Commented Jun 24, 2013 at 6:05
  • 4
    @Fezter I think you missunderstood the question
    – azpublic
    Commented Jun 25, 2013 at 1:45
  • @azpublic: How about your work now?
    – giser
    Commented Mar 22, 2014 at 5:21

1 Answer 1

11

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: https://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.

3
  • 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
    Commented Jun 25, 2013 at 1:11
  • Added a few comments to the answer. Hopefully this helps! Commented Jun 25, 2013 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! :) Commented Jun 28, 2013 at 2:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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