# How do I convert State Plane coordinates to latitude-longitude?

Given a specific state plane coordinate system (whether NAD27 or NAD83), are there any resources to convert to latitude-longitude?

-

You'll need to reproject them to handle this conversion.

Proj.4 is a very standard library, used by a lot of software for reprojections.

One means of using this would be to use a utility like gdaltransform to do the transformation for you.

-

One free and extremely easy program is CorpsCon which will convert single points, batches of points in text files, and has a DLL that can be used from within programing environments like python.

2014-07-09: Updated link is http://www.agc.army.mil/Missions/Corpscon.aspx Clicking "Download CorpsCon" takes you to a page that looks a little odd and temporary but does work.

-
Link is down. Do you of another like it? – Scott_B Jul 9 '14 at 20:17

This site may help if your just looking to convert a single point. It didn't work for me but seems to be working for most areas.

http://www.earthpoint.us/stateplane.aspx

-

If you know the relevant EPSG codes or proj.4 parameters, both `gdaltransform` and proj.4's `cs2cs` (man page) are a good route, as Reed mentioned.

However, if you find yourself without this information, try spatialreference.org: it provides the parameters, and a web map for doing a lat/long to coordinate system transformation (example with IL state plane). As many of the state plane projections lack an EPSG code, use sr.org to find the proj.4 string, which `gdaltransform` understands. Here's an example converting from California State Plane Zone V to WGS84 lat/long pairs:

``````gdaltransform -s_srs '+proj=lcc +lat_1=34.03333333333333 \
+lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 \
+ellps=GRS80 +units=m +no_defs' -t_srs epsg:4326
``````

After which, typing `1815241.25377291 557301.336190851` should return `-120 33.9999999999996`.

-
This is right, but there is a typo, the -s_srs argument is given twice. The command should end in -t_srs: `gdaltransform -s_srs '+proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs' -t_srs epsg:4326` – alvin Mar 4 '13 at 10:40
@alvin, I've corrected the typo, thanks for the heads-up! – scw Mar 4 '13 at 20:05

Check out the free translation service. Upload your data and then specify the desired output coordinate system. By selecting the same format for output as the input you are effectively doing a reprojection.

The service is found at http://fmeserver.com/userweb/sharper/Portal/EasyTranslator/index.html

and is based on the FME product. There is also a free 14 day trial of this as well. www.safe.com

-

If you want to build it yourself, here's a document from the National Geodetic Survey that describes the transformations:

http://www.ngs.noaa.gov/PUBS_LIB/ManualNOSNGS5.pdf

You'll still need to know the specific parameters for the projection of interest.

-
I love this resource! Many thanks. – Richard Morgan Apr 8 '11 at 16:51

Another option (but just for NAD83) is SPCS83 at http://www.ngs.noaa.gov/PC_PROD/SPCS83 . It runs in a command line window on a PC and converts either interactively or from a text file input. It includes source code if you really just want the algorithm. Source is Fortran, which may be a pain to use but is easy enough to decipher to get the algorithms out. Also see www.metzgerwillard.us/spcge/spcge.html which is a front end for SPCS83 in Google Earth.

-

Client or server? Language specific? One-off or bulk?

E.g. - for client side - with JavaScript - use OpenLayers + Proj4js.

0) Import all the appropriate libs

``````var lonlat = new OpenLayers.LonLat( ....)
``````

2) convert it

``````lonlat.transform( new OpenLayers.Projection("epsg:XXXX"), new OpenLayers.Projection("epsg:4326"));
``````

now lonlat.lon and lonlat.lat are in WGS84 lon/lat values.

-
This works, but requires custom development. Not sure if the OP just wanted a usable tool. – Reed Copsey Jul 22 '10 at 19:28
Right, I was just giving one example - client side, javascript, in code. OP didn't specify what he was looking for. Even the accepted answer is a library. There are also plenty of website that give you a simple form to manually enter the coords and lets you transform. – Vadim Jul 23 '10 at 17:52