I am new here.
I am land surveyor from madrid working with .NET and mono in a photogrammetry and lidar company using Autocad, microstation and ArcGis.
I hope learn in sharpmap community. I have deep knowledge in projections and geodesy.
I am studying all source code here.
May 21, 2008 at 8:08 PM
Welcome, Martin -
Glad you arrived. I probably have some questions about implementing various aspects of the projection library interfaces. We hope to have a factory/interface approach to allow the use of any of a given number of projection libraries (Proj.4, CS-MAP, Proj.Net,
etc.), but I don't have much experience outside of Proj.Net. In order to provide just enough flexibility to be more widely usable, the interfaces will require some inspection and probable rework. Your input could help if you find this would be a good place
I would like help if you have doubs about projections.
Last year for my university i made a free software in GTK+/C/GSL/mysql for land surveying. I can share this code if people want it.
I have something like a book also but the problem it 's write in spanish. I would like talk about my experiencies in CRS libraries:
- I had a comparative between GEOTRANS and proj.4. Both are needed, but i think are not valid for surveying and GPS, only for GIS.
- both library projections libraries use the book map projections a working manual of Snyder:
- For me the GEOTRANS projections modules are the more efficient and more easy to hack in c#. GEOTRANS it ś the most efficient projection library.
- proj.4 it's a library with something like ofuscated OOP in c but not efficient in the code optimization.
- In my project i use GEOTRANS and the book of snyder. Why?? Well all library projections forget the K factor to distances measurement.
- Geotrans use only ellipsoids algoritms, nor for the spheroid+ellipsoids like proj. This is perfect.
- Geotrans have a problem. It ´s not OOP and therefore we only can work with a only instante at the same time.
- Geotrans have the advantage of the module separation. It's very interesting that people can use only a module, no the complete library.
For example many people only need Lamberp SP1 or mercator, but not a complete library.
- For me it's would be great 2 kind of interfaces. One for conformal projections and other for the rest of projections.
The conformal modules need a overloaded method for the conversions. Something like this:
public int GeodeticToProjected(double phi, double lambda, out double X, out double Y, out double K )
public int GeodeticToProjected(double phi, double lambda, out double X, out double Y)
public int ProjectedToGeodetic(double X, double Y, out double phi, out double lambda, out double K )
public int ProjectedToGeodetic(double X, double Y, out double phi, out double lambda)
- A module to tranform ellipsoids to spheroids by several methods. This can be used from proj.4.
- 2 engines(for all projections and only for conformal). In c# i think we can use delegates here.
- module to conversions between geocentric and geodetic and viceversa. I have a SCILAB program with a graphic comparative between all methods.
The problem here comes from the precision of the geocentric and geodetic. I have work with the burch papers and toshio fukushima give me the last studies about this arena.
- library of transformations. I have implemented for molodensky, bursa, helmert 3d, afinne 3d, afinne 2d, helmert 2d.
- A engine to use this transformations library, perhaps using delegates.
- Other modules interesting are for transformations parameters of bursa, helmert, etc. I have this from my work in the university.
- A library to use geopotencials models. GEOTRANS have all source code to use EGM models. EGM2007 will be a centrimetric geoid around the world.
- A library to use geoids models to interpolate.
- A library to use planimetric grids to interpolate. Here cs2cs have all source code.
- A library to use altimetric grids to interpolate.
- Unit system module for linear measurements, angular measurements and geodetic measurements. In my proyect i build nice entry widgets for this.
I would like made this widget for gtk# or windows.forms.
- an analitical module to get the K value and all factors. proj.4 and the factors module will be enough.
- other problems in projections is the Transverse mercator projection. The most precise is what use geotrans:
- For another hand there are elliptical implementations for transverse mercator working for the complete ellipsoid.
I have the source code of the jeff dozier who send me the code by mail.
- a module to the measurent on the ellipsoid. The standard algoritm is the Vincenty method:
There c# implementations out there:
- A module to distances measurement. distances on the ellipsoid, on the projection and in the real world.
- One of my ends, it's also made projections code for the VALA language:
Well, this was my hello world and only was my opinions here. I hope study this weekend your source code and learn new things in this community.