This project is read-only.

Spatial Reference Systems and Projections

Jan 26, 2009 at 7:33 PM
To what level do we want to support the vast number of Spatial Reference Systems (SRS) and Projections out there? 

Traditionally, classes for SRSs and Projections have been developed and supported as independent entities.  RoadWarrior has suggested that a projection subclass an SRS which is a very interesting idea.  I suggest that a projection implement an SRS interface, but not subclass it.  Of course, this is affected by what SRSs and projections are supported.  I think that we should keep it limited to a VERY small number and not create another GIS.  Where do we draw the line?
Jan 26, 2009 at 8:29 PM
Edited Jan 26, 2009 at 8:35 PM
The line is simple.  The system should only be as complex as it has to be and no more.  If you have a particular coordinate system that needs to be implemented, then do it.  This isn't acedemia and we don't need analysis paralysis. 

From my understanding WKB, WKT, GML, KML, do not have a separate entity for projection from the SRS or CRS.  Up till now we have used the word "projection" loosely, but isn't Mercator in fact a coordinate system with well know parameters.  Projection is the action not the entity.  Let's not make this more complex than it needs to be.
Jan 26, 2009 at 9:04 PM
Rather than reimplement the wheel, why not just use a projection library such as the .NET port of Proj4 (http://www.codeplex.com/ProjNET). I've successfully ported this to Silverlight - an online demo can be found at http://www.synectics-tc.com/blog/Coordinate-reprojection-using-Silverlight.html.

Andrew


Jan 26, 2009 at 9:21 PM
Andrew.  Nice first Silverlight project.  Proj.net looks like a great project to know is out there for reference purposes. 

Certainly, we don't want to reinvent the wheel.  I think the discussion is more around how "many wheels" we need.  So far we've been riding the heck out of our Mercator unicycle.  We'll probably need more wheels and should be prepared for this eventuatlity.  However, we just don't want to create an entire wheel factory.  That was a long ride around the block with that metaphor.
Jan 26, 2009 at 9:46 PM
Here here to avoiding the academic approach and a dozen 'wheels' 
Jan 28, 2009 at 12:43 PM
Hi, I wanted to chime in and say we indeed do not need lots of coordinate systems, but it would be great if you guys documented the MercatorProjection.cs file with a link to the page that you used for the formulas (if indeed you got the formulas from the web). This way, should the need arise, users of DeepEarth could implement other projections by comparing the geographer-code (mathematical formulas) to the programmer-code (the code).

I live at ~55 degrees north, and when I draw a circle around my town to retrieve all objects within a certain radius, it is projected as an ellipse. This may confuse some of our users (I admit, it confused me), so for us, it would be interesting to see how other projections work out.

Joost
Jan 28, 2009 at 1:41 PM
But you did get that indeed a circle on a sphere looks like an ellipse when rendered on a distorted flatterned Mercator projection? I had a great demo using the VE AJAX control vs the 3D control where you would draw 500KM radius circles all over the earth and ask which is bigger, the ones on greenland or the ones over central Africa, of coarse in 3D mode it was very clear they are indeed all the same.

The project team seems in agreement that we should start small and allow the building blocks to be in place for others to help, I cam across this quote from Linus Torvalds just the other day which is appropriate:

"Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say "hey, that _almost_ works for me", and they'll get involved in the project. "

We are building something useful here and hope others want to help extend what we do.
Jan 28, 2009 at 5:34 PM
I didn't immediately understand why a circle was being rendered as an ellipse. After some experimentation and thought, I did, but not immediately. That's my amateurism with respect to cartography. I do understand that an ellipse on a Mercator projection can really be a circle in geo coordinates.

> The project team seems in agreement that we should start small and allow the building blocks to be in place for others to help.

I agree with this. I didn't ask for you to implement more projections, or to include them in the project, what I asked is to document the MercatorProjection.cs file a little, so that we may understand the code better and experiment with implementing other projections.

The projections all have different properties which make them useful to one task and less useful to another. So instead of implementing either one or dozens or hundreds of projections, I would seek out one or two more projections that have fundamentally different properties from the Mercator projection and leave it at that.

Anyway, thanks for listening for my input, feel free to do whatever you like with it (including nothing ;-)

Greetings,
Joost
Jan 28, 2009 at 10:13 PM
We really do apprehiate your comments and in fact have just yesterday divided all the source code file among us to start documentation and creation of a help file from it.
I hope it makes in easier for you to do more with the control, stay tuned it won't take long.