Nokia 3D WebGL Map experiments

February 4, 2012

Recently, I ‘ve been very excited with Nokia’s 3D webGl mapping platfom. It’s really exciting that they achieved a Google Earth-like experience, using no plugin at all, just pure WebGL (supprted by Chrome and Firefox, more to come.)

Digging a little deeper, it seems that C3 Technologies, a SAAB spin-off,  is responsible for generating the 3D models in an automatic way, however there isn’t a lot of information available online since Apple bought them 6 months ago. A nice video that explains the technology behind the 3D extraction process can be found here.

Having launched a streetview-like service in Greece, I do appreciate all innovations in the Web-GIS field and in this case, Nokia has really set the bar higher, so I just had to take a closer look at their service. It seems that I wasn’t the only one, and looking for more information I found @praeclarum’s really good write-up describing how to grab the geometry of the 3d models, as well as Michal’s post with similar results.

Picking @praeclarum’s code up, I forked his code to add the functionality to texture the 3D geometries with photorealistic textures. You could see the resulting Collada file in any 3D viewer like Sketchup.

The code is available here (Github), has some Windows-specific headers, but should be very easy to compile in other platforms as well.

Next steps

What would be very interesting would be to find out how does the tiling scheme Nokia uses actually works. It seems for the 2D maps it’s using the same Spherical Mercator-based tiling scheme Google and Bing also use. However this is not the case for the 3D n3m files.

For example, the Statue of Liberty area can be seen:

Google Maps:
zoom=19, x= 154308, y=197167
http://khm0.google.com/kh/v=102&x=154308&y=197167&z=19&s=Ga

Nokia Maps Satellite:
zoom=19, x= 154308, y=197167
http://3.maptile.lbs.ovi.com/maptiler/v2/maptile/newest/hybrid.day/19/154308/197167/256/png8?token=fee2f2a877fd4a429f17207a57658582&appId=nokiaMaps 

Nokia Maps 3D:
zoom 19, x= 154308, y=??? 327120 ???
http://c.maps3d.svc.nokia.com/data4/19/3215/7143/20/map_19_327120_154308.n3m 

The URL parameters for the 3D n3m file don’t follow the same tiling scheme of the other 2.
Let me know your thoughts on this. Any feedback on the above would be very helpful.

2 Responses to “Nokia 3D WebGL Map experiments”

  1. It’s actually the same tiling scheme in the .n3m files, just turned around a little to account for (I think) normal expectations of a bottom-left origin in 3D graphics compared to a top-left origin in spherical mercator tiles. My code’s all on Github now, have a look at the coordinatePath() function:

    https://github.com/migurski/NokiaWebGL

    I’m a bit stuck with the height lookup tables in function coordinateHeights() – my output looks exactly right in Oakland, and exactly wrong in SF where the Transamerica Pyramid ends up looking strangely squat.

  2. With regard to the numbers, note that 327120 = 2^19 – 197167 – 1 and 197167 = 2^19 – 327120 – 1.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.