I am a very newbie on GIS and also programming especially C#. I am trying to develop a program to:

  1. display map from GeoTIFF, DTED (level 2 I guess), shapefiles and JPEG type of files.
  2. display movement a vehicle with regards to velocity input
  3. display latitude, longitude, elevation, pitch and roll
  4. vehicle icon representing correct geographic location
  5. calculate actual distance travelled

I have been told to use SharpMap library and I am doing it on Microsoft Visual Studio 2010.

Any tips how to start using the SharpMap library and to program? Any pro on SharpMap that might help me?

  • 1
    Do you want a Web app or a desktop app?
    – Pablo
    Jun 12, 2012 at 11:06
  • Have you considered using OpenLayers? You can accomplish your 5 tasks with it, OL is very well documented and there is a lot of users. After a quick look at sharpmap I noticed that it has poor documentation. Also here on GIS SE there is ~660 questions about openlayers vs. ~35 about sharpmap.
    – Pablo
    Jun 12, 2012 at 11:14

2 Answers 2


I am currently using SharpMap for Winforms Desktop App written in C#. I use sharpmap to display ESRI shape files.

The sample application is pretty good. Not sure how accurate distance calculations in SharpMap are but seems fine. Probably depends on your GIS base files.

A fair assessment is that the documentation is fair to poor. But its written in C# which is a big help when you debugging issues.

I wish the project was more active.


I have worked on my PhD project in the field of Intelligent Transport System, which has similar development requirements as you mentioned in this post. In that project I have done a C# based software prototype to demonstrate the integration of GPS, GIS,wireless communication, and other algorithms.

Primarily I have adopted Dotspatial components to develop this prototype. It is an excellent GIS/GNSS library which you can adopt its Positioning Component and GIS Component to perform what you need in a short time. I have also touched with SharpMap this year and I think it has similar function like Dotspatial, and it is a fairly light-weight and easy-to-use library. Therefore, regarding to your question, my suggestions are:

1.Display map from sharpfile (Both Dotspatial and SharpMap can do this easily via one hour tutorial)

2.Display movement of a vehicle with regards to velocity input (I think you might need GPS?, and Dotspatial has GPS component to do it. SharpMap has a sample application to show variable object in layer. I think you also can use paint event to display your vehicle as a dot, or trajectory)

3.Display latitude, longitude, elevation, pitch and roll (latitude, longitude and elevation can be easily captured from map and GPS, dependent on your data sources. For pitch and roll, I think you might need mathematical transformation and calculations from sensors, e.g. accelerometers)

4.Vehicle icon representing correct geographic location (see question 2, SharpMap has a sample application)

5.Calculate actual distance travelled (Dotspatial source codes have classes to describe this concept in geographical space. I remember SharpMap has one as well, but I am not sure).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.