XNA and GIS (1) - Introduction
Put very simply, our ultimate goal is to build a mapping application from scratch. Obviously, this will take some time so we will split this objective into several smaller projects. The first set of projects will work towards creating a program that features mapping, “mash-up” capabilities, and GPS integration.
Why build a GIS from scratch when there are both open source and proprietary mapping applications available? Because it’s fun…and it provides a tremendous learning experience on the core topics of geography and computer science. Having complete control over the program, from the map engine to the interface, also presents the unique opportunity to create an application designed exactly the way you want.
Can it be done? Definitely - in the past 2 years, I’ve built several prototype mapping applications in both 2-D and 3-D. Some concessions are necessary to avoid unrealistic development times but the end result is still very satisfying.
The first major decision is what programming environment to use. I’ve become partial to C# in recent years so that is what we will use to code the projects. The added benefit of using C# and Visual C# Express is XNA.
While we could build a static mapping application, it is much more exciting to build a dynamic program that shares characteristics with video games. Accomplishing this requires using a graphical framework instead of traditional “forms-based” design. Fortunately, the XNA Framework from Microsoft fits the bill perfectly. XNA follows in the path of DirectX, offering a free API for building games without all the hassle of graphical programming. XNA programs, unlike DirectX, can also be compiled to run on XBox 360 consoles as well.
Where do we start? First I encourage you to download Visual C# Express if you have not done so already. Then go ahead and install XNA Game Studio Express (really just an add-in to C# Express). There are also a lot of great sites appearing with XNA tutorials like XNA Resources.com and XNA Development.com. Next time we will introduce some basic XNA topics and how they relate to GIS and mapping.