How to Make Virtual Earth 3D Live Forever
When we announced that we're "discontinuing investment" in VE3D earlier this year, many of you expressed concern that this would mean you can't use VE3D anymore. I deal with technical issues, so let me address those. There's certainly nothing time-bomby in the code, so it'll keep right on functioning as it always did. The obvious concern is that VE3D is very much a web-connected bit of code, and what happens if the servers we run get turned off?
Well, the first thing to say is that we really have no reason to turn them off. Most of the data VE3D uses is also used in our other products, and that which isn't doesn't represent a significant cost in server capacity. But that's not a technical thing to say, is it? And I said I deal with technical issues, so what DOES happen if the servers get turned off?
If you're using the built-in default data sources, VE3D stops working. It won't crash or anything, but it'll be pretty boring: no data, nothing to see. But, as you know, you can replace those data sources quite readily. So it should be easy to just point it somewhere else, right?
Well, slight complications, then good news and bad news. The complications stem from the fact that we never designed the system from the ground up to be completely separated from the mothership. So, the system does make some assumptions about what servers it can see. Fortunately, using Reflection you can do just about anything, and I've put together a Windows Forms sample that controls (or removes) those assumptions on a flag-by-flag basis.
The good news is that by using the right combination of flags, you can have the code run only against servers you control, or even against no servers at all, using only locally stored/generated data. In these configurations you no longer care if our servers are on or off, and the code is easily copy/pastable into your own projects (just pay attention to where each flag is implemented in the startup process).
The bad news is that Weather, DEM, and Model data is a bit tricky. I haven't spelled out precisely how to supply your own data, because unlike web mapping imagery data there really isn't a standard, even a de facto one. So I provide pointers in the code to where you need to look to write your own sources, but you'll need to do the lifting on your own.
Have fun, and please contact me with questions and comments. Thanks, it's been great!