Let us look at building a GIS Silverlight application with a map control. Silverlight enables this by the DeepZoom composer and MultiScaleTileSource class which can be used to host the map (ofcourse by creating another custom control).
Tile Map Service:
Tile Map Service is a specification by the Open Geo Spatial Consortium which states the basic rules that need to be implemented by the Map Servers so that the clients can access them seamlessly. Infact in this case we need some map controls using the above controls like MultiScaleTileSource to show the images served by the map servers’ using these Tile Map Services. There are a host of public map servers available in the internet like Yahoo Tile Map Service, OSM Tile Map, Blue Marble and more., All these services provide the maps as Tiles which are nothing but small chunks of the map images generated in the map server which are served asynchronously for our applications to display.
These can be used very easily to host the maps very easily using some third party map controls like DeepEarth which is opensource and a lot of other commercial providers. I faced some issues with DeepEarth, but we can discuss those in some other article. Infact we’ll need one dedicated and basic article of how to use the deepearth control for hosting a map in a silverlight application. In the meanwhile you can visit the above url to get some info if you need it urgently.
Indeed, at this point there are lot of Map providers who offer this Tile Map Service like Yahoo, OSM, Blue marble etc., But the catch here is that their data is not up-to-date enough.
Silverlight Map control for Google:
We can use our existing Html host control. Infact Silverlight 4 offers a inbuilt control but unfortunately I am still stuck with Silverlight 3 due to several reasons. So let’s go ahead and use this control.
How this is built?
Sample Files for Google Silverlight Map Control:
Click here to download the sample project for the above.