.NET library for geodata, mapping

1.2k views Asked by At

We have a web-based application with a mapping component (ASP.NET/SQL Server 2005, Google Maps API). The mapping component is evolving - it started out as a simple, nice-to-have feature and is gradually becoming more of a cornerstone of the application; so we're starting to need to perform more sophisticated mapping tasks. I'm trying to figure out what the best platform for that is. Some examples of what we need to do:

  • Read and write KML
  • Find all points within a certain distance of a given point
  • Find which polygon contains a point (e.g. what province is this point in)
  • Find which polygon contains a given polygon (e.g. what province is this district in)
  • Import data from other formats such as ArcGIS shapefiles
  • (Maybe) Serve map tiles ourselves, instead of relying on the Gmaps API

Some of this we already do, just with our own code. We store coordinates as pairs of decimal columns, shapes as KML fragments, and have implemented some standard algorithms (point-in-polygon, etc.) in our own code. So far we haven't relied on any third-party components, open-source libraries, or spatial data components, but I'd like to find a solid platform for this stuff that's well tested and will give us room to grow.

Some options I'm looking at include:

  • SQL Server 2008 spatial components for storying & querying geodata
  • SharpMap or NetTopologySuite for manipulating geodata in .NET code

Are there other options I should consider? What are your recommendations?

3

There are 3 answers

2
Muad'Dib On

you should check out the ESRI api. silverlight, javascript, flex, even java and iOS versions. It will do everything you describe here, and more.

0
Kirill Bezrukov On

I would you recommend to see MapAround. It is GLP3 and has almost the same features as SharpMap but with performance optimization

0
MarkJ On

A spatially-enabled database would be great for the "find" tasks in your question. Since you are already using SQL server, a logical choice would be to go to 2008 so you get the spatial extensions.

Oracle and PostGreSQL also have good spatial extensions. MySQL doesn't.