Today's post is a little different in that it's a open source GIS set of utilities and tools. Maybe not as "fun" as games and stuff, but fun is in the eye of the beholder (or something like that...
What is DotSpatial?
DotSpatial is developed by members of the MapWindow GIS open source team, and the broader OSGeo .NET developer community. Please join the OSGeo .NET mailing list . You can also see a list of our steering committee members and join our growing list of volunteers
Project Vision: DotSpatial aims to provide a free, open source, consistent and dependable set of libraries for .NET, Silverlight and Mono, enabling developers to easily incorporate spatial data, analysis, and mapping into their applications thereby unleashing the massive potential of GIS in solutions for organizations and communities of all types in a nonrestrictive way.
High Speed Video Demos: If you are new to DotSpatial, start by watching these videos. Note that the name spaces have changed a bit from these videos, but this is a great way to see what DotSpatial is all about.
Standard Architecture Demo
Double Map Layout
To see how easy it is to use, check out this tutorial on CodeProject
DotSpatial is an open-source project that contains controls which can be used to manipulate and display geographic information. This article provides a quick overview and functional code that will help you get started with DotSpatial. Some of the basic operations that can be performed include: loading a shape file, panning and zooming.
- Downloading DotSpatial
- Creating a project
- Changing Target Framework
- Adding Toolbox items
- Laying out the user interface
- Adding DotSpatial references
- Setting control properties
And you've got a simple running example DotSpatial app. Just feed it some data (for which links are also provided)
Included in the download from the CodePlex project is a Demo app that lets you see the features in action. Here's a snap of it with a couple data sets downloaded from Natural Earth Data, 1:10m Physical Vectors and Diva-GIS
If you're new to GIS, it's a game of layers. Each data set is a different layer. So you create a new Map, then you add layers. These layers are what I downloaded from Natural Earth Data. (So you don't File/Open the data downloaded, you add a layer and then select the data downloaded... does that make sense?)
This project provides you with the UI tools to add this kind of capability to your applications (Note its licensed as LGPLv2.1).
So lets take a brief peek at the actual project. The list of support/third party assemblies is interesting;
Here's a broader overview of the source;
Finally here's a snap of the Solution;
As you can see, this is a complex project. What's nice is that the complexity doesn't matter if you're just consuming the binary assemblies (a shown in the CodeProject Project). All the code is there if you want to spelunk, but if all you want to do is add cool GIS stuff to your app's the binaries are waiting for you....