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?
you should check out the ESRI api. silverlight, javascript, flex, even java and iOS versions. It will do everything you describe here, and more.