Advice Needed: SharpMap 0.9 vs 2.0

Topics: SharpMap v2.0, WinForms Controls
Mar 29, 2008 at 4:48 PM
Hello,

I am in the process of building a Windows application that requires some simple GIS features. I've been trying to familiarize myself with SharpMap 0.9 (DemoWinForm has been extremely helpfu), but have come to understand that some of the features I would need to develop are already being incorporated in V2.0. The features I need are:

1) I need to be able to display GIS data (shapefiles only)

2) I need to be able to draw circles or rectabgles on the map and extract information on all features within these regions.

3) I might (most likely will) need to be able to change some of the attributes of certain features in the map (none of the geographic attributes of the features just data related to the features - such as a street name or the number of lanes)

My understanding is that all of this will be part of V2.0, but a full version with documentation has not been released yet. I was wondering if I should just stick with V0.9 as these extensions may not be too complex to do myself, or if I should go with an available beta version of V2.0, given these requirements. Some tips on how to go about doing this stuff would also be very helpful. I appreciate codezakian's quick responses to some of my past inquiries!

Cheers!
Apr 3, 2008 at 10:24 PM
Sjabari,

I am myself a newcomer to SharpMap, but I've had to answer this question for myself as well. The functionality you describe is
fairly easily implemented using SharpMap 0.9, and in my opinion, the lack of documentation for v.2 outweighs the additional functionality.
1. V 0.9 can display shapefiles without any trouble.
2. V 0.9 will allow you to draw selection-shapes on the map using the standard Windows image namespace. Using those shapes to select
map-features will require using the NTSprovider, which is implemented as a Sharpmap Extension. Using the "standard" SharpMap
spatial-relations methods apparently doesn't work well with shapefiles (it will use the bounding-box of the shapes).
3. Editing attributes is doable using the standard .NET data-access classes, as you're just editing a record in a DBASE table. The trick
is to be certain that the record you're editing is in fact the one for the the feature you've selected. If there's a unique-id field in the
attribute table, that's not a problem. But if there's not, you may have to iterate through the whole shapefile to get the record-number
for the selected shape, so you can be sure you're editing the correct record in the database table.

If that's all you want to do, I think v0.9 is fine. However, you should consider 2.0 if
1. you're anticipating that your application will expand and will need to draw on more advanced functionality
2. you're comfortable digging through C# code to figure out how it works.

Since I'm a Visual Basic guy, and pretty new to .NET, that last one was a deal-breaker for me, so I'm sticking with 0.9.

I hope that helps.

Robertvw


sjabari wrote:
Hello,

I am in the process of building a Windows application that requires some simple GIS features. I've been trying to familiarize myself with SharpMap 0.9 (DemoWinForm has been extremely helpfu), but have come to understand that some of the features I would need to develop are already being incorporated in V2.0. The features I need are:

1) I need to be able to display GIS data (shapefiles only)

2) I need to be able to draw circles or rectabgles on the map and extract information on all features within these regions.

3) I might (most likely will) need to be able to change some of the attributes of certain features in the map (none of the geographic attributes of the features just data related to the features - such as a street name or the number of lanes)

My understanding is that all of this will be part of V2.0, but a full version with documentation has not been released yet. I was wondering if I should just stick with V0.9 as these extensions may not be too complex to do myself, or if I should go with an available beta version of V2.0, given these requirements. Some tips on how to go about doing this stuff would also be very helpful. I appreciate codezakian's quick responses to some of my past inquiries!

Cheers!

Apr 6, 2008 at 9:07 PM
robertvw,

Thanks for your reply. It looks like I will stick with V0.9. I agree that the lack of thorough documentation for 2.0 is a deal-breaker.

Thanks again!


robertvw wrote:
Sjabari,

I am myself a newcomer to SharpMap, but I've had to answer this question for myself as well. The functionality you describe is
fairly easily implemented using SharpMap 0.9, and in my opinion, the lack of documentation for v.2 outweighs the additional functionality.
1. V 0.9 can display shapefiles without any trouble.
2. V 0.9 will allow you to draw selection-shapes on the map using the standard Windows image namespace. Using those shapes to select
map-features will require using the NTSprovider, which is implemented as a Sharpmap Extension. Using the "standard" SharpMap
spatial-relations methods apparently doesn't work well with shapefiles (it will use the bounding-box of the shapes).
3. Editing attributes is doable using the standard .NET data-access classes, as you're just editing a record in a DBASE table. The trick
is to be certain that the record you're editing is in fact the one for the the feature you've selected. If there's a unique-id field in the
attribute table, that's not a problem. But if there's not, you may have to iterate through the whole shapefile to get the record-number
for the selected shape, so you can be sure you're editing the correct record in the database table.

If that's all you want to do, I think v0.9 is fine. However, you should consider 2.0 if
1. you're anticipating that your application will expand and will need to draw on more advanced functionality
2. you're comfortable digging through C# code to figure out how it works.

Since I'm a Visual Basic guy, and pretty new to .NET, that last one was a deal-breaker for me, so I'm sticking with 0.9.

I hope that helps.

Robertvw


sjabari wrote:
Hello,

I am in the process of building a Windows application that requires some simple GIS features. I've been trying to familiarize myself with SharpMap 0.9 (DemoWinForm has been extremely helpfu), but have come to understand that some of the features I would need to develop are already being incorporated in V2.0. The features I need are:

1) I need to be able to display GIS data (shapefiles only)

2) I need to be able to draw circles or rectabgles on the map and extract information on all features within these regions.

3) I might (most likely will) need to be able to change some of the attributes of certain features in the map (none of the geographic attributes of the features just data related to the features - such as a street name or the number of lanes)

My understanding is that all of this will be part of V2.0, but a full version with documentation has not been released yet. I was wondering if I should just stick with V0.9 as these extensions may not be too complex to do myself, or if I should go with an available beta version of V2.0, given these requirements. Some tips on how to go about doing this stuff would also be very helpful. I appreciate codezakian's quick responses to some of my past inquiries!

Cheers!