Answers:
如Reed所言,如果您知道相关的EPSG代码或proj.4参数,那么gdaltransform
和proj.4的手册页cs2cs
(手册页)都是不错的选择。
但是,如果您发现自己没有此信息,请尝试spatialreference.org:它提供参数,并提供一张经纬度坐标图以协调系统转换(例如IL状态平面)。由于许多状态平面投影都缺少EPSG代码,请使用sr.org查找可以gdaltransform
理解的proj.4字符串。这是一个从加利福尼亚州平面V区转换为WGS84纬度/经度对的示例:
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
之后,键入1815241.25377291 557301.336190851
应返回-120 33.9999999999996
。
客户端还是服务器?语言特定?一次性还是批量?
例如-对于客户端-使用JavaScript-使用OpenLayers + Proj4js。
0)导入所有适当的库
1)创造你的观点
var lonlat = new OpenLayers.LonLat( ....)
2)转换
lonlat.transform( new OpenLayers.Projection("epsg:XXXX"), new OpenLayers.Projection("epsg:4326"));
现在lonlat.lon和lonlat.lat处于WGS84 lon / lat值。
CorpsCon是一个免费且极其简单的程序,它将转换文本文件中的单点,成批的点,并具有可在python等编程环境中使用的DLL。
2014年7月9日:更新的链接为 http://www.agc.army.mil/Missions/Corpscon.aspx单击“下载CorpsCon”会将您带到一个看上去有些奇怪和短暂但确实有效的页面。
如果要自己构建,请参考以下国家大地测量局的文档,其中描述了转换:
http://www.ngs.noaa.gov/PUBS_LIB/ManualNOSNGS5.pdf
您仍然需要了解感兴趣的投影的特定参数。
另一种选择(但仅适用于NAD83)是位于http://www.ngs.noaa.gov/PC_PROD/SPCS83的 SPCS83 。它在PC上的命令行窗口中运行,并以交互方式或从文本文件输入进行转换。如果您真的只是想要算法,它包括源代码。来源是Fortran,使用起来可能很麻烦,但是很容易破译以得出算法。另请参见www.metzgerwillard.us/spcge/spcge.html,它是Google Earth中SPCS83的前端。
查看免费翻译服务。上载数据,然后指定所需的输出坐标系。通过选择与输入相同的输出格式,可以有效地进行重新投影。
该服务位于http://fmeserver.com/userweb/sharper/Portal/EasyTranslator/index.html
并且基于FME产品。也有一个免费的14天试用版。www.safe.com
如果您只是想转换一个点,则该站点可能会有所帮助。它对我不起作用,但似乎适用于大多数领域。
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