ThinkGeo.com    |     Documentation    |     Premium Support

Getting all projection names

Hi, I want to let user to convert shp file from one coord. system to another. I found an example, but there coordinate systems are set static.


 


Proj4Projection convertProjection = new Proj4Projection();
convertProjection.InternalProjectionParametersString = Proj4Projection.GetEsriParametersString(102008); //North America Albers Equal Area Conic
convertProjection.ExternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326); //WGS84
ShapeFileFeatureLayer.SaveToProjection(@"..\..\Data\albers_northamerica.shp", @"..\..\Data\wgs84_northamerica.shp", convertProjection, OverwriteMode.Overwrite);

So is it possible to get all coordinate systems names and to know srid?

I didn't find much info about srid...



Hotter,


 Currently, the API for ManagedProj4Projection allows you to get only the proj4 string, not the SRID. If you want to get the SRID from the proj4 string, you can go to spatialreference.org website where all the projections are listed.


 For example, for ESRI 102008,  spatialreference.org/ref/esri/102008/ (.PRJ File).


PROJCS["North_America_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["central_meridian",-96],PARAMETER["Standard_Parallel_1",20],PARAMETER["Standard_Parallel_2",60],PARAMETER["latitude_of_origin",40],UNIT["Meter",1]]



Thanks for the answer, but I have a problem:

spatialreference.org/ref/epsg/7421/ is "Lambert zone II + NGF IGN69 height", but when I try to get it by srid like this:

str = Proj4Projection.GetEpsgParametersString(7421);

I get  empty string. Why?



Hotter,


 The string is empty because in Spatial Reference, there is no proj4 string yet, only the SRID (.PRJ File). Let me do some research and see if there is some solution to this problem. Thank you.



Ok, I will wait. And maybe it is possible to make those strings by my-self somehow? or to set that .prj file?

Hotter,


 . Yes, you can easily create the .PRJ file for your shapefile since it is available in spatialreference.org but this will not make your shapefile do the projection. Or, you can make the string for proj4 by yourself but you have to be sure how one parameter in PRJ translate to proj4



Maybe you know any tips, examples how I could convert prj to proj4 string?


I found this thread:

gis.thinkgeo.com/Support/Dis...fault.aspx

Maybe there is a function to convert?


Tried like this but still geting empty string:

Proj4Projection convertProjection = new Proj4Projection();
string prjFileText = System.IO.File.ReadAllText("7421.prj");
convertProjection.InternalProjectionParametersString = Proj4Projection.ConvertPrjToProj4(prjFileText);



Hotter,


  Yes, currently not all the PRJ strings can be converted to  proj4 string and we are trying to figure out why. I will let you know when we know more. Thank you for your help.



I have found another projection: spatialreference.org/ref/epsg/27572/

It has proj4 string and I think works good.



Hotter,


 Yes, with EPSG 27572 (NTF (Paris) / Lambert zone II), there is a proj4 associated with it, so this is going to work. I am glad you could find the proper projection for your country. Not all projections are properly documented and this is why some will not work with Map Suite. Thank you.