A recent Cartotalk post caught my attention about a new Infographic at the NYTimes. If you don't want to follow the link, the basic gist of it is they have set up a series of interactive 3D maps of the Vancouver Olympic area. As per usual, they are well made and fast. The poster's original question was how they were made. I responded with my thoughts, but I really don't know how it was made. It got me thinking, and wondering, if I could do something similar. Well, not one to let silly things such as inexperience or lack of knowledge get in my way, I decided to go for it. The area I chose to work with was the Huangshan Mountains (Yellow Mountains) in China. The tools I used, and had at hand were: FlashDevelop (Flex 3.3 SDK), Papervision (most recent swc), Global Mapper (version 9), and Google Sketchup version 7. I had a leg up in that I've worked with Papervision when experimenting with Augmented Reality (FLAR). I don't have much Google Sketchup experience so it was a bit of a crash course.
To obtain the data, I used Global Mapper. I highly recommend this program whether you have an expensive GIS or not. This program will save you loads of time converting between files, downloading files, and clipping them. It's also really fast. I just downloaded SRTM and Landsat data for my project area. I ended up picking an area that was quite hilly and exagerated. This actually became a problem later.
In order to use the terrain with Flash and Papervision I needed it in the open Collada format. The only program I had to create collada files was Google Sketchup, and just the free versio. Luckily there were a couple of formats available for the import: dem, dxf, and 3DS. Global maper exports to both dem and dxf. I initially tried a DEM but that created a really ugly model. Then I played around with DXF mesh and DXF Face. Both seemed to work better. Because I had picked this SRTM data in an area with great elevation variability I needed to reduce the elevation height to create a reasonable mesh. This was done through Global Mapper's control panel and the layer's properties. I set mine to .05 scale factor. When exporting to the DXF 3D face file, I also changed it so that it had a 250 metre by 250 metre grid. The key here is that you export files that are manageable. I dxf file will probably need to be less than a mb, and the image I used was around 3mb (which seemed ok).
I'm no Sketchup expert, but was able to figure things out by following this tutorial. The key steps to follow are the smoothing step and edit group before adding the texture. When you import your dxf file it will not be grouped, so you need to do that step yourself. While I was in sketchup I used those tools to add a square block underneath. I used the Intersect with Selection tool to erase the parts of the block I didn't need, and added a different texture. Once I was happy with the model, I exported it to a Google Earth KMZ file. For those that don't know, KMZ is just a zip file, so change the kmz to zip and then open this. Your model should be stored in a models folder with a .dae extension. Textures are stored in the images folder. From there I just parsed them using papervision.
There are some really good papervision tutorials available here and here. That's where the PaperBase.as file originated. Because of some earlier experimenation, I actually found DAE worked better than the Collada parser. The code is available here. A demo version is available here. Click and drag the mouse to cause the camera to move.
I make no claims that this is a replica of the NYTimes piece, but hopefully would get you started. The model needs to be placed properly and the interaction needs to be worked on. I was primarily concerned with getting terrain data into flash, from there it is up to the real designers :). Also, considering I got this up and running in a few hours speaks to the quality. But the ease of which it was done is a testament to the power of papervision and Google Sketchup rather than any particular skills of mine.
Feel free to take the code and use it for whatever, there isn't a licence, but I claim no responsibility and there is no warranty available. Use at your own risk.