In the first part of this series of blog posts I mentioned that SharePoint 2010 provides build-in support for Silverlight Web Parts and that you can simply upload a XAP-file to a document library and render the application in this web part. In this second part we want to have a look at connecting Bing Maps from a mapping web part to a SharePoint list.
One option to connect a Bing Maps Silverlight control to a SharePoint list or image library is the SharePoint Map Integration Layer or short SMIL. SMIL is available for free download on Codeplex and Per Fahlen who is based in Sweden and works for Sweco Position is one of the project coordinators. SMIL allows you to add data fields to standard SharePoint lists and image libraries in order to store location information. A Silverlight client can be used to geocode addresses or manually position locations. In addition it provides a listener that extracts location information from the Exchangeable Image File Format (EXIF) in the image metadata during the upload process. And then there is of course the web part which visualizes the location information in SharePoint sites. Once a SharePoint list or image library is location enabled by adding the SMIL data field, its content is made accessible through GeoRSS-feeds and it shows up as a layer in the web part.
The web part is based on the Bing Maps Silverlight control and leverages the DeepEarth Toolkit. The use of the DeepEarth Toolkit opens up a lot of potential since it provides a lot of great additional features like a digitizer, a time-slider, a magnifier, etc.
SMIL was originally designed for the Microsoft Office SharePoint Server 2007 but by just changing the version number from 12 to 14 in the installer scripts it will work with SharePoint 2010 as well – with one exception: the EXIF-extractor. There appears to be something hardcoded but if that’s a critical feature for you, you can always download the source code from Codeplex and make the necessary modifications.
Let’s have a quick lap around SMIL.
After installing SMIL the first thing we have to do, is to make our SharePoint list location-aware and we can do that by simply creating a new column:
As the column type we choose SMIL.Coordinate.
When we add now a new item or edit an existing one, we will find a new data field with a Silverlight application linked to it that allows us to geocode addresses or simply point to a location on the map. The list will then expose all geocoded items through a GeoRSS feed.
Now we can simply add the SMIL.Client Web Part to our page.
The web part will automatically pick up the feed and show them in a list of SMIL layers. You can simply show or hide these layers by ticking a box.
The same process also works with image libraries:
There are certainly a lot of things hat people would like to have in addition to the features mentioned above but I really think it’s a great start and if you look at the issue tracker on Codeplex you will find that Per has already a lot of plans.
In the next part of this series of blog posts we will have a look at thematic mapping and connection to databases.