This project has moved and is read-only. For the latest updates, please go here.

Looking for dedicated develoepers

Topics: SharpMap Project
Aug 3, 2006 at 12:00 AM
I'm looking for some dedicated SharpMap developers who want to join this project and take it to the next level.

You should have a thorough knowledge of GIS, .NET practices and patterns, as well as experience with SharpMap.
Aug 3, 2006 at 4:39 AM
Sounds and looks interesting.
Aug 3, 2006 at 6:42 PM
I don't know about "taking it to the next level" in terms of writing large features from scratch, but I'd certainly contribute fixes and smaller enhancements. I've used SharpMap for some time and done a good deal of work on it for demonstration purposes, so I know the code. I was also working on a DirectX rendering engine to replace the current GDI+, but with WPF, that might be moot...
Aug 3, 2006 at 11:36 PM
DirectX-based rendering is something that I would really like to see in SharpMap, and I would believe that that will qualify as taking SharpMap to the next level ;-)
Aug 4, 2006 at 8:41 PM
I would be interested in helping out. Currently I'm working on a Smart Client app using SharpMap for use in Search and Rescue and Emergency Response. The 3 areas I need to figure out and/or implement are MrSid support (the NAIS imagery is critical), Printing ( I need to be able to quickly generate maps with scale, North Arrows and legends) and MS SQLExpress support ( I'll be looking at Ricardo Stueben's Spatial implementation and the sample Spatial database from Microsoft). If there is anything in here that sounds useful, I'll be happy to contribute.

Aug 4, 2006 at 10:00 PM
Fair enough - how do I start?
Aug 5, 2006 at 12:21 AM
I'm interested on help this proyect. How I can help?
I can write C#, but I'm not a GIS expert.
Aug 5, 2006 at 9:10 AM
Yuu can get Mr.SID support by using Christians GDAL plugin.

North arrows are easily done by using GDI+ to draw an image on top of the rendered map.
Aug 5, 2006 at 4:59 PM
I managed to get MrSid implemented yesterday. Next on the agenda is diving into the MSExpress Spatial DB.

Aug 6, 2006 at 12:28 AM
I am not sure I can be totally dedicated, but I would be interested in helping.

Aug 15, 2006 at 4:36 PM
Ive been looking the project over. Most impressive. The speed and reliability of the renderer is nice and on the fly transforms. nice..

One thing this definately needs is some sort of XML based map markup language.. simular to ArcXML or GML with StyleSheets..

Aug 15, 2006 at 8:12 PM

I can't really see why XML would be better than a C# or VB.NET script.
- It's faster
- It's easier to parse (.NET 2.0 can compile scripts while the app is running)
- It's is always fully implemented and supports all extensions
- Making a "save" method is just as possible as with XML (just use reflection)
- It's typesafe
etc. etc. etc.
Aug 16, 2006 at 5:26 PM
well mainly because, you have to look at a wider range of map preparing consumers.

A simple InitMyMap() method that returns a SharpMap object and implements proper error checking and cleanup process isn't really a big deal to you, or even to me.. as programmers, that sort of construct seems the easiest route.

But what thats leaves is that a person wanting to add or modify the look and style of the a generated map, has to be intimiate with the code. XML configuration for creating many instances of the same type of class is pretty common practice. You see it a lot in the Java world, and it definately has its merits. I can tell you now, if I were to implement this system in a production environment and I were married to modifying the c# every time someone wants a map layer added or to look different, It would get very old.

Aug 16, 2006 at 5:35 PM
And as far as being TypeSafe and what not.. what im talking about is an XML based map layer definition.

For example, where you have the MAP name value pair being passed in, the switch determines which Init function to call.. and those init functions return a SharpMap object, simply either a new constructor overload or public static that returns an sharpMap passing in an XML document and perhaps even a style sheet.

This would allow SharpMap to implement proper checking and layer configuration, every time, based on a well formed XML schema. It could help define a common Datasource as well, so you wouldnt have to keep creating that.. It could help define line and fill style, general colors and even URIs to raster symbols.

You could use the same signature for GML with StyleSheet rendering as well.

I dunno, its just a suggestion.. and I mean, I will probably end up putting something like that in place so I can use this in my work environment.

That is, if you dont mind
Aug 16, 2006 at 11:10 PM
No I don't mind. Any additions to SharpMap would of course benefit SharpMap.
My point is that for the average consumer C# is just as "hard" as XML. XML is for being interpreted by computers or for exchanging data, not for humans to use.
You can also aeasily create a workspace manager that outputs the nessesary code (I once even created an example that could export Sharpmap code directly from ArcGIS, based on the current workspace).

One approach could be to use an XSLT that transform an XML you define to C#, and then compile the result. The XSLT parser in .NET 2.0 is actually VERY fast. The elements in the XML could just be named after the class properties, which would make it quite easy to make.
Aug 18, 2006 at 11:36 PM
I think you give the average it map product consumer more credit than they probably deserve..

I might point out, its just a common feature you see in many internet map renders/"engines".

And yah.. I was definely thinking XSLT would be the way to go.. especially for converting common ArcXML definitiions and requests (which a majority of our web mapping applications use) for sharp map generation.

Its still my opinion though that expecting a non developer to add a new C# method into an existing class and make sure the appropriate script changes are made whereever they may be required, is a bit lofty, and will limit the audience of the product.. just my .02
Aug 19, 2006 at 8:18 AM
What I don't understand is how a non-developer would implement SharpMap in the first place? Knowing XML is not enough in any case.
Aug 19, 2006 at 11:17 AM
...furthermore if you require the average user to be able to change the look and feel of a map, create a UI for the user instead of forcing him to figure out how to do XML.
Aug 21, 2006 at 5:40 PM
Well the UI idea is of course, ideal. Based on the structure of similar products (ArcIMS, GeoServer,eSpatial etc), a UI that creates an abstraction for map design.

What is interesting is the idea that this UI would make actual c# to be injected into the system and compiled.. That sounds very interesting and I'd love to see how that can be done.

I guess, I still am thinking of a system in which, a factory structure is used with some sort of control language or editable text. (such as XML).

Are you saying it would be too slow? to parse the xml, and then create the layers as defined?
Aug 25, 2006 at 4:16 PM
Hi Morton,
i hope i can help join Sharpmap new versions
Sep 18, 2006 at 12:11 PM
I would definitely be interested.

I am a GIS developer, with a fair knowledge of GIS (and it's various data formats, projections, blah blah blah), and develop Web-based GIS and GPS applications. I also have a keen interest in Managed DirectX, as well as the Mono .NET projects. I have implemented some demo projects and GPS-tracking applications in SharpMap, and am busy writing my own classes to do distance-based (least-distance / fastest-route) mapping applications running in SharpMap.

I am willing to contribute time and effort to raise SharpMap to the next level.

Where to from now?

Dewald Troskie
GIS Developer
Pretoria, South Africa
Sep 18, 2006 at 4:25 PM
Hi Dewald

You could dig through our issue list and pick one or more items you
could/would work on.
You can join into IRC to talk to us directly for concrete questions.

Sep 18, 2006 at 4:47 PM
GISDeveloper -

One of the 1.0 issues is the implementation of the Dimensionally Extended 9-intersection model. Volleyknaller is doing some work on that now, and perhaps a number of us could divide the task and create both implementation and a set of unit tests.

There are also a good deal of 2.0 tasks to work on. If you are most interested in the DirectX engine, I'd be happy to work with you on it. Before work gets started, though, we need to have some dialog on the basic architecture of the 2.0 release. There are some other threads in the project management thread on that.
Sep 20, 2006 at 12:20 PM
Hi Guys,

OK, I will probally be more interested at looking at the 2.0 stuff and the DirectX (are you going to use Managed Code, or is the CLR going to handle the rendering ?) rendering goodies, and need a brief on the 2 architecture. Downloaded the alpha release of 2. I am going to look into the file locking (stream locking on bit streams of N bytes) issue as per the Issue Tracker. Is this fine?

BTW, which IRC server / channel can I get hold of you on ?

Thanks in advance,

Sep 20, 2006 at 5:35 PM

channel: #Sharpmap

Sep 20, 2006 at 6:26 PM
Hi GISDeveloper -

Looking at the locking sounds good to me. I'll post the source.

Actual byte-level locking on a file isn't hard - it's managing the locks and handling the updates to the shapefile.

Since shapefiles are sequentially indexed, and the record number serves as the record key, the sequence of bytes in the file is crucial. So, if you wanted to add or remove points from a feature (or remove records), you'd end up having to lock the whole file anyway to make the change.

It's a problem with files - they are sequential data strucutres, and the shapefile format - no key-based indexes.
Sep 20, 2006 at 8:15 PM
The usual workaround for this, is to just to change the feature as a null-feature, and create a new feature at the end of the file in the cases where the size exceeds the original object.
This is also why you have a "compact database" feature in Microsoft Access and many other databases. There are also tools for performing this task on shapefiles.
Sep 20, 2006 at 9:28 PM
Ah - delete and insert == update;

Do you know what happens to the dbf? Does the record get skipped on parsing a null geometry, or is it marked with the deleted indicator as well?

Glad modern databases use pages, keys and indexes.
Oct 26, 2006 at 5:31 PM
I'd like to add my Pocket PC changes to the source. I'll make sure they don't break anything.
Who do I contact? I have a lot of experience both in GIS and in C#

Nov 13, 2006 at 3:24 PM
how can i get in touch with the project coordinator?
I already posted my help offer, but nobody got in touch with me:

please also consider me for contributing.
I am a developer with 5 years experience on c#, 3 years experience on java, 8 years of experience on ESRI (ArcGIS Desktop, ArcObjects, ArcIMS, ArcSDE) and some experience with MapServer and PostGIS. Good knowledge of UML. I can use 20 hours per week in contributing at SharpMap

I would be very much interested to contribute in the following areas:
-DataProvider: PostGIS and MySQL Spatial, also for editing
-Writing an implementation for something like a mapfile (MapServer) or AXL (ArcIMS) for SharpMap
-OpenGIS WFS and WMS
Nov 23, 2006 at 3:03 AM
You might wanna try the IRC channel on freenode.
Dec 1, 2006 at 7:25 PM
I am sorry, but at my job place I have not access to IRC :-(
Dec 5, 2006 at 6:43 PM
I think the SharpMap is a dead project.
Its founder has been employeed recently by ESRI on ArcGIS Server team and he stoped development on SharpMap.

Check out this url:

it has more information about it in the log file.

However I am planning an opensource GIS project based on C#, LINQ, WPF etc.
Will you be interested on it ?

Jan 5, 2007 at 1:09 PM
I suppose it is only as dead as you want it to be...It is certainly a good structure to add onto. The problem as I see it, there doesn't seem to be anyway to add stuff into the source, as Codeplex is all locked up, and there is no way to contact the administrators. Help?