Virtual Earth and SQL Spatial Evening UK this Thursday!

If you’re in London this Thursday you can’t miss Johannes and Simon presenting on Virtual Earth and SQL Server 2008 Spatial. It sounds like an awesome event, I wish was I was there.


Come along to the SQL Usergroup hosted by Microsoft on the 16th April for a great evening focusing on spatial data and how you can integrate virtual earth and SQL Server to do some amazing things. Virtual Earth provides great features for visualising, performing routing and locating places, SQL Server allows for data to be stored, searched together they provide a great solution. To register go to   (If you can’t make the evening we are doing the same thing in the afternoon )

This evening will be hosted by Johannes Kebeck and Simon Sabin

18:00 – 18:30 Meet & Greet
18:30 – 18:40 Intro, what’s in the news, Q&A.
18:40 – 19:40 End to End Spatial Data with Johannes Kebeck


Johannes will walk through an end to end scenario of getting spatial data into SQL Server and then getting it out and displaying it visually. We will look at the sources of data and how you can manage different types of data i.e. data from GPS systems and data from Ordance Survey. And from a visualisation point of view will look at the options with Virtual Earth including the Ajax control, the web services and recently announced silverlight control. Through out this session Johannes will look at some of the obstacles you might face in working with spatial data.
19:40 – 20:00 Networking with refreshments (sponsored by Microsoft)
20:00 – 21:00 Managing Spatial data in SQL Server with Simon Sabin

Once you have your data in SQL Server how do you query it and how do you make your queries perform. In SQL Server 2008 spatial indexes where introduced that all you to perform complex spatial queries and get performance. However spatial indexes aren’t always best. We will look at the types of situation where spatial indexes aren’t the best solution and look at those which are.

Microsoft London Cardinal Place 100 Victoria Street London SW1E 5JL

Virtual Earth Resources April 2009

This is a simple list of the various resources available for your development needs.

Sign up for you developer account here:

Official Microsoft:

Community sites:

Follow me on twitter for latest VE news as it happens:

  • – great news and articles about windows live
  • Geoweb Guru – news and in depth Geo Articles
  • MP2K – the magazine for MapPoint

Community Projects:




Get all the VE blogs in one feed of the All blogs Aggregated


Free GIS Data Sources:


Please let me know if I’m missing anything, I’ll repost this regularly (3 months) with the latest links.

New Version of Virtual Earth 3D released

johnWeeGoToday the Virtual Earth team announced the new version of the 3D control. To install simple goto to and click on the 3D button. Checkout New York rendering very quickly with trees and weather! I noticed a new 3D option also “Use ansiotropic filtering”.


The full list of new features for the 3D control from NikolaF (you should subscribe to the VirtualEarth3D blog for everything VE3D):

Initialized event
A new event on RenderEngine that simplifies the startup scenario.  Check out SimpleForm to see it.  Remember that use of this event or FirstFrameRendered is now required!

Anisotropic Filtering
Greatly improves the appearance of terrain when at an angle.  It’s off by default, since there are some graphics cards that don’t play nice with it (usually old and rare, but still).  You can turn this on through the website in the options box, or you can set it programmatically.  See SimpleForm.

Dem Data
The ability to supply custom DEM data, and have it automatically stitched into existing data.  Previously DEM datasources did not work very well, mostly because we did not automatically stitch.  They are still a bit trickier than imagery, but there’s a new sample DemData to help you out.

An interface that allows automatic and efficient query of a location to determine elevation as data changes.  ActorDataSource now uses it.  Essentially, you register this object and report its Lat/Lon position.  If the ground or other solid object moves or changes there, you will get a call to update.

Manual Rendering
Manual render functions that allow use your own thread as the render thread, good for offline rendering or incorporation into another product.  RenderEngine.ManuallyInitializeRender and ManuallyRenderNextFrame.

Datasource ConnectionParameters
Helper function for specifying data sources without a content manifest.  The string parameter was very hard to use, this is nicer.  There are also a few new options, like allowing caching of data specified this way.  See TerrainImages.

Allow display of a stylized sky with constellations.  This is used on the website in Road Mode, but you can set it yourself.  See SimpleForm.

Support for running code built against previous control versions, if it meets certain requirements.  I’ve outlined this in  To show it working, I’ve set up a page with samples built from the previous version and from the new version.  Both sets work just fine with the new release.

Pixel-width lines
GeometryManager supports pixel-width 3D lines (previously only single-pixel or meter-width).  See the Camera sample.  We also now have nice looking text labels.  See the XFile sample.

Constant value datasources
Helper functions for supplying flat color or elevation data.  The Mandelbrot sample uses one to display flat elevation.  Please note that a DEM and an Imagery datasource are actually required for proper display.  These constant value sources are useful for this case.

Terrain Scaling
WorldEngine.Min/MaxElevationScaling.  It is actually possible to have varying scale based on your altitude, but there is some cost associated and I recommend that you set the two values equal to each other.  Our default value is 1.0, unscaled.

Override Loading Screen
You can now render (or suppress) the loading screen (affectionately known as "The Circle Of Hope" since our first version, back when the startup flow was a bit less stable than it is now).  In the very simplest case, write this:

class MyControl : GlobeControl
    protected override void OnPaintLoading(…)

This will get you a black screen.  You can also grab a reference to the control’s Graphics object from the PaintEventArgs and draw anything you like.

Building culling value
Allows control of how many buildings are displayed, based on distance and size of the buildings.  WorldEngine.BuildingCulling.  The effectiveness of this varies on hardware — some hardware benefits a great deal, some very little.

Turn on/off street level navigation
Can turn off some of the special navigation effects that occur when right next to the ground, such as sticking to the ground, and the screen drag regions on the sides of the screen when at low altitude.  WorldEngine.Enable*.

Silverlight3 Pixel Shaders and Virtual Earth

johnWeeGoKeith posted this awesome Silverlight3 demo showing that although the new Virtual Earth control is Silverlight2 you can happily put this in the newer framework. With this in mind I put together this little sample showing how you can use the new Pixel Shaders to drastically modify the map control. The sample makes use of the project as described by Morten Nielson.

View the live demo here if you have Silverlight3 running on your test machine:

My favourite is the Zoom Blur, it would be interesting to enable this during zoom animation.

Tracy Whitelaw speaking at Girl Geek Dinner 5

For Girl Geek Dinner 5 in Brisbane we’re fortunate to have Tracy Whitelaw as our guest speaker who will talk about women in gaming which is very appropriate for our Girl Geek Guitar Hero night!  If you haven’t signed up for the event you can register here:

tracywhitelaw Tracy Whitelaw is a self-confessed geek and gadget girl who creates robot brains in her position as the Chief Knowledge Engineer at artificial intelligence company ‘MyCyberTwin’. Based on the Gold Coast, Tracy works in an environment that delivers fully customised personalities and characters to a number of companies and businesses including NASA, AMP, NAB, PBL Media and others.

Holding a BSc(Hons) degree in Behavioural Science, Tracy has long had an interest in the social construction of identity in popular media forms. She specializes in studying trends in society, how individuals act within a social milieu, and in helping MyCyberTwin technology be rich in response to these patterns. She has been involved in online technology for a number of years.

Her particular areas of specialisation are online worlds, gaming, character creation and formation of identity in popular culture.  With a passion for emerging technology and how it is used, Tracy enjoys the challenges of creating engaging characters who keep users entertained and informed. She combines this with her interest in video-games and gaming culture, working voluntarily as the PA for a number of female based gaming websites. She writes freelance for a number of online and print sources, primarily about her passions for gaming, culture and geekiness.


Virtual Earth Silverlight Thematic Overlay with VideoBrush

Shown at Mix last month in Chris Pendleton’s introduction to the new CTP Silverlight control this demo adds a set of simple polygons representing most of the countries of the world to the map, colouring them based on their Carbon emissions in 2004, green is comparatively good while red is bad.

View the live demo here.


The data itself comes from a SQL 2008 spatial database, you can setup the data yourself if you like by following the steps outlined in this previous article or simple download the database backup below.

For something a little special and in the spirit of the rich media support of Silverlight if you roll over the USA or Australia the Brush will use a video.


The code is pretty straight forward but their are some tricks in regards to simplifying the geography out of SQL for performance, ripping all the individual polygons out of each country and encoding them into something fast and small to send over the WCF service. The issue is we don’t have any support for SQL Geography types in Silverlight, I like many other hope this will change are are actively creating our own open source libraries to help.

Rather then query all the data in one hit I have throttled it to only 10 countries per request with a known number of 250 countries (easy to make this more flexible by having the actual record count returned in the service)

The cool video rollover is achieved by having one MediaElement on the Control hidden (Opacity is 0) and then you can essentially pipe the content to any polygon. I encapsulated in the my own “VideoPolygon” class inheriting from the Virtual Earth “MapPolygon”. It starts the correct video on mouseenter and restores on mouseleave, here is the full code:

using System;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using Microsoft.VirtualEarth.MapControl;

namespace SoulSolutions.ThematicSQL2008
    public class VideoPolygon : MapPolygon
        public VideoPolygon(string videoURL, MediaElement commonMediaElement)
            if (videoURL.Length > 0)
                VideoURL = new Uri(videoURL);
                CommonMediaElement = commonMediaElement;

                MouseEnter += VideoPolygon_MouseEnter;
                MouseLeave += VideoPolygon_MouseLeave;

        public Uri VideoURL { get; set; }
        public MediaElement CommonMediaElement { get; set; }
        private Brush previousstate;

        private void VideoPolygon_MouseLeave(object sender, MouseEventArgs e)
            Fill = previousstate;

        private void VideoPolygon_MouseEnter(object sender, MouseEventArgs e)
            previousstate = Fill;
            CommonMediaElement.Source = VideoURL;
            Fill = new VideoBrush
                SourceName = CommonMediaElement.Name,
                Stretch = Stretch.UniformToFill

The full source code is available here (381KB), the database backup is here (3.3MB). It is just a demo and a little rough, some throttling around the mouse enter and leave events would be a nice addition. The trick with the deployment is to change the connection string in the web.config to point to your database and if your not running on “localhost:1093” then you need to change the WCF service endpoint in the ServiceReferences.ClientConfig.

I hope you enjoy this, it gives a tiny glimpse of what is possible with this new control. As an aside I found it very interesting to zoom out to see the world wrap and pan across the map to see how the control handles shifting the polygons to the centre sub control.

Virtual Earth Wrap Up March 2009

March was a big month for Virtual Earth, if you missed something here is the VE Wrap Up:

Silverlight CTP Released

The big news was the release of the Silverlight Virtual Earth control CTP. This is the next generation of mapping for the web and something you simply must consider today for your future applications.

finally Chris Pietschman has a tonne of good stuff:

GeoSynth Announced

Pocket-lint announced that the long awaited integration of PhotoSynth and Virtual Earth will take on Google’s Street view later in the year. This has the potential to go well beyond a simple street view with user generated content not being limited to where a car can travel. How Microsoft will handle the potential unlimited amount of data, privacy concerns and processing requirements however was not mentioned.


It was interesting to see three references to “GeoSynth” in the Silverlight CTP control’s SDK documentation.

InfoStrat.VE, WPF and Surface


InfoStrat have released an open source project on codeplex to bring you the power of Virtual Earth for WPF and of coarse Microsoft Surface. I haven’t yet had the time to check this out myself but I have watched their video in awe previously.

BizSpark to include Virtual Earth

BizSpark Hot on the heals of the successful DreamSpark program that gave professional Microsoft development tools to all students, BizSpark aims to equip new innovative startups with the development software and initial Production software to get them moving. If you’re a startup then you can receive a special pricing for Virtual Earth to get your brilliant idea out there.

Check out all the details on Chris Pendleton’s blog.

ESRI Silverlight Control

The leaders in Desktop GIS have released their beta control built on Silverlight/WPF and incorporating Virtual Earth. There is a tonne of great samples including some fun widgets here:


Additionally ESRI announced ArcGIS 9.3.1 would get access to the rich imagery and road tiles from Virtual Earth as part of a further extension of the relationship with Microsoft.

  • ArcGIS Desktop
    • Free, limited annual allotment for users who are current on maintenance
    • Annual subscription with unlimited transactions available for purchase
  • ArcGIS Explorer
    • Access Virtual Earth and share transactions as part of an existing ArcGIS Desktop license.
    • ArcGIS Explorer users who do not have an ArcGIS Desktop license can evaluate Virtual Earth at no cost for 90 days.
    • Annual subscription with no transaction limits is available for purchase.
  • ArcGIS Server
    • Built-in 90-day evaluation of Virtual Earth, after which an annual, transaction-based subscription can be purchased

What have the VE MVPs been up to?

This month was the annual MVP summit at Microsoft headquarters in Redmond, so I put together a Silverlight map of all the MVP’s using Virtual Earth. It was awesome to see each other in person and talk to the VE team.

Ricky posted a series on the starts of a flight simulator for Virtual Earth 3D, with that API only recently documented this is a great resource to check out.


Geoff has been busy organising some great Webcasts, stayed tuned for details on his blog.

Richard’s is the place to get all your latest web GIS news.

Finally Chris on top of all his Silverlight CTP posts keeps adding to his great open source VEToolkit on codeplex, this time with a prototype for ASP.NET MVC support.

Another massive imagery release

A whopping 21TB of imagery was added to the Virtual Earth platform in March providing a huge amount of international coverage. As always Chris Pendleton brought us the complete news:


Next Month

Personally I was travelling around the world during March, meeting the VE team in Redmond and then a nice holiday through Egypt. April is going to be big also with many people doing great things with the Silverlight control, I hope you enjoyed this summary and leave me a comment if you’d like a regular monthly update along the same format.

Girl Geek Dinners Brisbane – Dinner 5 announced

girlgeekdinner It’s only 4 weeks till out next Girl Geek Dinner!

Girl Geek Guitar Hero Gaming Night

This month, Microsoft have kindly lent us their office so we’re going to something a little different: a night of games! There will be a few games and consoles to choose from. 


Why not:

  • Sharpen up your guitar, drum and singing skills and have a go at Rock Band and or Guitar Hero on Xbox 360
  • Play some tennis or do some yoga on the Nintendo Wii
  • Or bring along your favourite game to share with others.

Who is invited?

If you are a geek and a girl or know of one who is willing to escort you then you are welcome and encouraged to come along. There is a technical focus with the intention of having fun and connecting with other women in IT.

Who pays for dinner?

This month is not sponsored so you will have to pay for your own dinner

Where + When

Date: Thursday 30th April, 2009

Time: 5:30 pm

Where: Microsoft Office, Level 9, 1 Waterfront Place, Brisbane



School Girls and Virtual Earth at TTYA 2009

ttya09 We’ve been invited back to this year’s Technology Takes You Anywhere event, held on the 6th April. Last year we wore ourselves out showing 100’s of girls how to use an XBox controller to fly around Virtual Earth and find famous landmarks.  They seemed to have fun so we thought we’d do something similar this year, inspired by Brian Peak’s demo, and also get them to use the Wii Fit Board and controllers to add some extra fun in the day.

About the Event

Technology Takes You Anywhere is a special event aimed at increasing girls interest in technology and their confidence with using it. Through this event girls will be exposed to a range of different technologies. Older girls will also discover the diverse range of challenging and rewarding pathways that exist within the ICT industry.

Girls attending this event will have the opportunity to listen to speakers from a range of fields and on topics from biotechnology to creating programs for mobile phones. They will also experience hands-on workshops and visit MyMultiMedia. MyMultiMedia will include and animated film festival and activities such as robotics, forensic science, interactive whiteboards, music-making and videography as well as web, e-commerce and graphic design.

Technology Takes You Anywhere is not about excluding boys. It is about engaging girls with technology and raising awareness of the possibilities that are available to them. It is about encouraging girls to take up ICT and science-based subjects at school and in tertiary studies. It is about levelling the playing field so that young women have the same sorts of opportunities for employment in the ICT industry as men currently have.

The objectives of the day

  • Changing Attitudes, Changing Practice, Increasing Engagement
  • Increase interest, confidence and competence in the use of a range of information, communication technologies.
  • ICT is fun, people-oriented and can take you anywhere.
  • Gain awareness that information, communication technology offers a diverse range of pathways to challenging, rewarding, future-based careers.