Two questions

Nov 15, 2007 at 4:59 PM
1. Does SharpMap 2.0 support MsSqlSpatial? We were using it with 0.9, but I don't see how to use it with 2.0. If it does support it, is there an example of how to use it? If not, how would we go about implementing MsSqlSpatial support?

2. Is there a way to do a hit test in 2.0 that actually checks to see if the hit intersects with a given feature? I've noticed that the hit tests in 0.9 often return multiple features that are close to one another, but not necessarily the actual feature thats was clicked on. Is this because of the bounding box being larger than the point clicked on?

Let me know if these are dumb questions; we're trying to evaluate sharpmap and get a feel for the features and technology. Thanks in advance for any responses.
Nov 17, 2007 at 1:17 PM
On your second question... SharpMap 2.0 is still using it's own geometry objects. The hit test does a bounding box test, rather than a true IGeometry.Contains implementation. However, the guys are working hard to replace the SharpMap geometries with the GeoAPI interfaces and the NetTopologySuite geometry object implementation. For now, to get good geometry operations with SharpMap, you have to port the objects to NTS objects, perform the operations, and port them back.

For what it is worth, we've been using the GeoAPI interfaces and NTS pretty intensely for the past month, and I'm absolutely thrilled with them. We've decided to hold off on using SharpMap until the migration to use the GeoAPI interfaces is stable.
Coordinator
Nov 17, 2007 at 7:50 PM
On the first question, not yet. The data provider interfaces are quite stable at this point, so a porting could be started, but it's a question of resources. If someone wanted to take this on, I'm sure we could coordinate with Ricardo (the MsSqlSpatial author).
Nov 19, 2007 at 11:46 PM


Magnum4610 wrote:
On your second question... SharpMap 2.0 is still using it's own geometry objects. The hit test does a bounding box test, rather than a true IGeometry.Contains implementation. However, the guys are working hard to replace the SharpMap geometries with the GeoAPI interfaces and the NetTopologySuite geometry object implementation. For now, to get good geometry operations with SharpMap, you have to port the objects to NTS objects, perform the operations, and port them back.

For what it is worth, we've been using the GeoAPI interfaces and NTS pretty intensely for the past month, and I'm absolutely thrilled with them. We've decided to hold off on using SharpMap until the migration to use the GeoAPI interfaces is stable.


Huh. So is a viable plan of action with respect to this question:

1. Use the current hit test, which uses a bounding box, until GeoAPI is implemented
2. Once GeoAPI is implemented, swap over to using something more like IGeometry.Contains() (which is what I believe I want--basically, I want to know, for certain, whether or not a hit occured in some geometry, and in particular, inside of some polygon)

I'm going to be working on this project for several months, and it sounds like 0.9 will not support hit tests that check actual feature geometry?
Nov 19, 2007 at 11:50 PM


codekaizen wrote:
On the first question, not yet. The data provider interfaces are quite stable at this point, so a porting could be started, but it's a question of resources. If someone wanted to take this on, I'm sure we could coordinate with Ricardo (the MsSqlSpatial author).


If you had to estimate how substantial of a task this is, would it be a few days/weeks/months?
Coordinator
Nov 20, 2007 at 12:44 AM
Edited Nov 20, 2007 at 12:45 AM
@kidjan -

To answer both questions:

Version 0.9 could support GeoAPI, but it won't be me doing it, so unless someone else takes on the task (which was supposed to be the thing which pushed v0.9 to v1.0), it won't get done. v2.0 will be the only way to do true geometrical relationships natively, although you can always fall back to the NTS provider in v0.9. I know this works, and apparently has generally acceptable performance. v2.0 will be considerably faster due to a number of architectural improvements, however.

I suspect that an MsSqlSpatial port would take a few days. I converted the PostGIS provider from v0.9 to v2.0 in about 4 hours, but I've had practice with the codebase...

[Update: correcting grammar.]
Nov 20, 2007 at 1:08 AM

Version 0.9 could support GeoAPI, but it won't be me doing it, so unless someone else takes on the task (which was supposed to be the thing which pushed v0.9 to v1.0), it won't get done. v2.0 will be the only way to do true geometrical relationships natively, although you can always fall back to the NTS provider in v0.9. I know this works, and apparently has generally acceptable performance. v2.0 will be considerably faster due to a number of architectural improvements, however.

I suspect that an MsSqlSpatial port would take a few days. I converted the PostGIS provider from v0.9 to v2.0 in about 4 hours, but I've had practice with the codebase...


In your opinion, if I'm starting a new winforms app, should I be using 0.9 or 2.0, and what would be the potential risks of working with 2.0 assuming we're looking to release an application sometime in Q2 of next year?

We're pretty much "sold" on SharpMap--it's a great project :)--but we're still sort of dancing around the issue of what release we should use to start doing serious development on. Any advice would be much appreciated.
Coordinator
Nov 20, 2007 at 1:24 AM
Well, given that we are using SharpMap v2.0 for a major production app, I'd say that either I'm crazy or it's a good bet. I prefer to believe the latter. ;) The code is fairly solid and the interfaces fairly stable at this point, so there shouldn't be much rework going forward from Beta 1. There are some holes here and there, but it does map display and interaction (pan, zoom, query) quite well at this point, and the key missing features (true spatial relations and labeling) are being added now or will be added next. Of course, if you find any issues, contributions are warmly welcomed. :)
Developer
Nov 20, 2007 at 7:33 AM

Magnum4610 wrote:
For what it is worth, we've been using the GeoAPI interfaces and NTS pretty intensely for the past month, and I'm absolutely thrilled with them. We've decided to hold off on using SharpMap until the migration to use the GeoAPI interfaces is stable.


What kind of problems you've found? Integration problems or performance/errors?
Nov 20, 2007 at 9:28 AM
Integration problems. We are using the Nov 5 builds of GeoAPI, ProjNet, and NTS and they are working well for us. Shortly after that, NTS and GeoAPI started getting modified to support generics. We quickly learned we needed to let codekaizen get completely through that migration before we grabbed any updated code. We're waiting for him to give us a heads up when all four projects are back in sync. Sounds like that will be about any day.