The last several weeks have been quite hectic - busy on a number of fronts, which is a thankful thing, given the economy has slowed down a bit - but here is something quick that I wanted to share - I was awarded "Most Valuable Professional" (MVP) status by Microsoft for some of my ongoing work in Virtual Earth. Hierarchically, there isn't exactly a "VE MVP" program, but VE falls within Microsoft's broader Live Platform.
The last few months have been hectic, with a lot of proposal writing and other things flying around - and as I continue to redefine and revisit and look toward new types of approaches and ways to tackle problems in architecting geospatial solutions, I have been making an effort to poke around and look at alternatives. Some of the major drivers for alternatives are licensing costs - Oracle is certainly not cheap - and the others are technical, finding fast and easy ways to publish and interact with geospatial data, provide interoperability and consume it in a wider variety of clients, e.g. OGC Web Map Service, KML, GeoRSS and the like...
So of late, I have been digging deeper with a stack consisting of PostGIS, GeoServer and GeoWebCache - and I must say I am impressed with what I'm seeing so far:
Here, hundreds of thousands of facilities points, being served up by PostGIS and GeoServer, and published as a tile layer in GeoWebCache. Firstly, the production ArcIMS/Oracle boxes I've been using would be struggling to render this much data quickly. Secondly, it would take a custom tile server or other middleware to get them into Virtual Earth - yet here I was able to get these results, start to finish, in less than an hour. Same data in Google Earth as KML, again GeoServer provides some very interesting and compelling out-of-the-box functionality...
Again, the question I have been asking myself is in what the solution needs to look like - and here, we can have some hybridized approaches, depending on how static or dynamic the data is, and how much analysis we want to do, perhaps with products like GeoWebCache and GeoServer serving base data and tiles, and ArcGIS Server 9.3 providing modeling and analytical capabilities. This coming year will be interesting, to say the least...
For developers using Virtual Earth, the Virtual Earth API version 6.1 was released a few days ago:
Official SDK Documentation: http://msdn2.microsoft.com/en-us/library/bb429619.aspx
Other discussion:
- Steve Lombardi's Blog (Microsoft) on 6.1 Enhancements: http://virtualearth.spaces.live.com/Blog/cns!2BBC66E99FDCDB98!14129.entry
- Chris Pendleton's Blog (Microsoft) on 6.1 Enhancements: http://blogs.msdn.com/virtualearth/archive/2008/04/11/new-virtual-earth-api-release-virtual-earth-6-1.aspx
- Johannes Kebeck's Blog on 6.1 Enhancements: http://johanneskebeck.spaces.live.com/Blog/cns!42E1F70205EC8A96!3858.entry
Overview of changes: http://msdn2.microsoft.com/en-us/library/bb412561.aspx
Virtual Earth Map Control SDK, version 6.1
What's New in the Map Control?
Welcome to version 6.1 of the Virtual Earth map control. This page explains the new features for version 6.0 and 6.1 on a high level. To see a detailed list of the objects, methods, and properties that have changed, see the Version Changelist.
Version 6.0 and 6.1 of the map control includes improvements in the following areas:
- Enhanced accuracy
- Additional functionality
- Enhanced performance
Enhanced Accuracy
The Virtual Earth team is committed to constantly improving the accuracy of the map control. This release of the map control includes improvements in the following areas.
- Enhanced Geocoding. The map control integrates multiple geocoders and datasets to provide the most relevant and accurate results. You can perform these searches using the VEMap.Find Method.
- Rooftop Geocoding. Rooftop locations are the most precise geocoding results available in the United States today. Rooftop geocoding is now available through the map control VEMap.Find Method.
- Consistent Pushpin Accuracy. When switching between aerial and birdseye views, pushpin accuracy is maintained, delivering a more seamless experience. Use the VEMap.SetShapesAccuracy Method to get the accuracy you desire.
Additional Functionality
This release of the map control includes additional functionality in the following areas.
- Printing support. Use the VEMap.SetPrintOptions Method to enable printing support.
- Reverse Geocoding. Reverse geocoding allows the user to find places based on a specific point on the map. Use the VEMap.FindLocations Method to accomplish this.
- Traffic-based Routes. A new option allows the use of available traffic information in route calculations, enabling quicker routes and more accurate route times during heavy traffic periods. Use the VERouteOptions.UseTraffic Property to turn on this feature.
- Birdseye Map Style with Labels. A road label overlay increases the usability of the Birdseye map style. This map style is called BirdseyeHybrid and is a new member of the VEMapStyle Enumeration.
- Walking Directions. Provide users the option to walk to their destination by returning walking directions instead of driving directions. To return walking directions, set the VERouteOptions.RouteMode Property to VERouteMode.Walking.
- Multipoint Routing. A new method takes multiple points for a route instead of just start and end points, allowing for more complex trip planning. Localized directions are also available in this version. Use the VEMap.GetDirections Method to get a multipoint route.
- Bulk Addition of Shapes. A new method to add multiple pushpins in one call while maintaining high performance and avoiding performance slowdowns. Use the VEMap.AddShape Method to add multiple pushpins.
- Improved Shape Control. You can now specify how a shape object appears relative to other shapes or tile objects, providing greater control in viewing data and objects. Use the VEShape Class to create shapes.
- MapCruncher (Beta). MapCruncher Beta for Microsoft Virtual Earth makes it easy to publish maps overlaid in an application using the Virtual Earth map control. See the MapCruncher Web page for further information.
- 3D Altitude Settings. Altitudes for three-dimensional objects can now be specified in meters.
- Updated interactive SDK. A new version of the Virtual Earth Interactive SDK is available, demonstrating the new functionality of the Virtual Earth Map Control. See the Virtual Earth Interactive SDK Web page for further information.
Enhanced Performance
There have been significant speed and accuracy improvements for pushpins and shapes, even in high numbers. Performance enhancements also include faster map panning.Version Changelist is available here: http://msdn2.microsoft.com/en-us/library/bb412440.aspx
Along the historic maps vein, another ancient map receiving a lot of press of late is the Tabula Peutingeriana - this one I find tremendously fascinating, being a view of the Roman world of nearly 2000 years ago. As a kid, I grew up in Germany, near Roman ruins of the Limes Germanicus and other features, and as such, I have always been fascinated with all things ancient.
Presently, the Tabula Peutingeriana is being added to the UNESCO Memory of the World Register as an important artifact, and, given its extreme fragility, was recently placed on public display for one day in Vienna on November 26th.
The Tabula Peutingeriana is a copy of a Roman cursus publicus, which was a schematic roadmap of roads, cities and other features as developed and used in the Roman Empire. There are no longer any known copies of the original Roman cursus publicus charts, however the Tabula Peutingeriana is believed to have been transcribed from an original one by a thirteenth-century monk in Colmar, and consists of a number of sheets with schematic diagrams showing stops along routes, very similar to a modern-day subway map.
As such, it displaces many features to fit the route rather than attempting to be cartographically correct, and as such, it does not represent latitude and longitude in a conventional sense - instead accomodating the routes and features along them first and foremost, resulting in a very long, skinny map generally oriented west to east.
The geographic extent of the map is staggering, spanning the British Isles to India and Sri Lanka, showing what would have been trade and military routes, the infrastructure and cultural exchange that would have gone on in Roman times.
One of the things that I was playing around with over the weekend is trying to match up features as shown on the Tabula Peutingeriana to modern features - one of the tools I was playing around with is Microsoft Research's MapCruncher for Virtual Earth:
While I wouldn't expect MapCruncher to be able to rubbersheet a schematic map such as the Tabula Peutingeriana to a conventional map, it has nonetheless given me many insights just in being able to match up ancient designations and routes to their modern counterparts in a managed fashion, and it has made for a fun rainy (or snowy, as the case may be) day project.
I finally got around to upgrading my mobile platform. I had been toting around my Motorola cellphone, iPaq, Holux GPSlim 240 bluetooth GPS, and all of the associated iGo tips and other associated cables...
I looked at a number of units, Blackberries, Treos, Nokia N95 (very nice), along with the Samsung BlackJack (BlackJack II coming soon), Motorola MotoQ and others - but ultimately narrowed things down to Windows Mobile, as I have a lot of software for that platform (ArcPad, navigation, et cetera) - and Windows Mobile can run your selection of Java VM as well - best of both worlds.
Yesterday, I ended up getting the HTC TyTn II (also known as AT&T Tilt and by a few other names) - and I'm pretty happy with it thus far. It's the only Windows Mobile unit that I came across to feature BlueTooth, WiFi, 3G Data, and integrated GPS. It also has a 3 megapixel camera to boot.
I'm still looking to pick up a nice big MicroSD card, so I haven't yet loaded it up with a lot of stuff, but I have been playing with Google Maps Mobile, Microsoft Live Search Mobile (Virtual Earth), and Mobile GMaps on the Esmertec JBed JVM that ships already installed on the HTC unit. Notably, when I went to Esmertec's site, I was greeted with an Android info page, so I may be looking at gPhone apps as well.
Pretty nice, so far! I am looking forward to developing some things that take advantage of this new platform...
Posting live from EPA's Environmental Symposium in St. Louis - One of the things that's being discussed there is a challenge put forth by Bill Ruckelshaus, former EPA Administrator, who is now heading up the Puget Sound Initiative, to clean up this natural resource that forms a big part of Northwest Washington State.
As part of this, they established a wiki, and are having mashup camps to rapidly get as much content relating to Puget Sound and its' environment as possible:
In a few short hours, I was able to develop a Virtual Earth mashup, which performs MetaCarta searches against EPA and other federal and state documents, pulls in EPA Toxic Release Inventory for Washington State as a KML layer, WMS layers for USGS Wetlands and Land Cover (NLCD), as well as NHD layers showing streams and impaired waters.
There is also a great OpenLayers-based mashup builder and other tools - anyone interested in improving the environment in the Puget Sound area will be encouraged to participate as things move forward.
I also built a standalone version here: http://www.synergist-tech.com/Demo1/PugetSound.html
It's been a very busy few weeks, so I haven't had much chance to post... things going on with Virtual Earth, ArcIMS Route Server and GDT/TeleAtlas, survey-grade GPS data collection, emergency response, logistics, modeling and simulation, and plenty of other things flying around.
It's all fun stuff, but I always enjoy rolling the sleeves up and getting dirty... doing the AJAX thing, mashing various web services with Virtual Earth's V5 API via pure JavaScript clients as various proof-of-concept applications.
Here's one quick app: Virtual Earth and the NASA MODIS WMS server:Here I'm showing the VE and MODIS side-by-side, both views refresh dynamically. The next step will be to explore the "Roll Your Own Tile Server" approach to seamlessly getting custom WMS content directly into VE.
The next one was even more fun: Virtual Earth and the MetaCarta JSON API:All pure Web 2.0, neogeo, slippy AJAXIAN goodness, "Look, Ma! No "SUBMIT" button!!" Type in your query, (searching for documents about toxic substances here...) and it fetches results from the MetaCarta appliance and sprays them back into the VE map view. Pan, zoom, and instantly you get new stuff popping up. All self-contained in a few k of DHTML, CSS and JavaScript, no Java, .NET, Ruby, Python or other infrastructure needed. Both written in a total of about 2.5 hours, just noodling around in the APIs without any real thought ahead of time.