从阿尔伯斯转换为 GPS 坐标
Posted
技术标签:
【中文标题】从阿尔伯斯转换为 GPS 坐标【英文标题】:Converting from Albers to GPS coordinates 【发布时间】:2013-08-18 04:39:08 【问题描述】:我有一些坐标数据,我唯一知道它的坐标系是 以下说明:
PROJCS["Basic Albers NAD83",
GEOGCS["GCS_North_American_1983",
DATUM["D_North_American_1983",
SPHEROID["GRS_1980",6378137.0,298.257222101]
],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]
],
PROJECTION["Albers"],
PARAMETER["False_Easting",0.0],
PARAMETER["False_Northing",0.0],
PARAMETER["Central_Meridian",-96.0],
PARAMETER["Standard_Parallel_1",45.5],
PARAMETER["Standard_Parallel_2",29.5],
PARAMETER["Latitude_Of_Origin",23.0],
UNIT["Foot_US",0.3048006096012192]
]
这来自一个 prj arcGis 文件。
我需要从这个系统转换为 GPS(谷歌地图)系统,反之亦然。
这必须以编程方式完成,我不能使用 esri 库(许可证问题)...
您能解释一下所有这些参数的含义吗?
是在椭球体中表示的坐标和仅在绘图时使用的投影(albers) 地图?还是坐标也取决于使用的投影?
您知道我可以用于此转换的开源库吗?
谢谢!
【问题讨论】:
【参考方案1】:所有这些参数都定义了投影,包括:
投影类型(阿尔伯斯) GEOGCS 定义项目使用的大地水准面(理想地球形状)。在本例中,它是 NAD83,它使用度数作为单位,以格林威治为中心,即第 0 经度。 投影本身的中心位置 投影向北和向东移动多远以形成负坐标 正(东假和北假) 此投影中的坐标单位(美国英尺) 有关如何转换投影坐标以在平面服务上绘制的其他一些信息。我有一篇博文详细介绍了 OGC WKT 定义,它与 ESRI .prj 文件中的内容非常相似:http://www.dev-garden.org/2011/07/30/projections-for-programmers-one-projection/。您可能会发现它很有用。
使用投影坐标,它们已经“绘制在地图上”,您需要重新投影它们才能在其他坐标系中使用,例如 Google 的投影。
您可以使用许多开源工具将坐标从一个投影系统重新投影到另一个系统。以下是一些:
Geotools 或 Proj4j - Java Proj4js - javascript 项目 - C 或 C++ 点空间 - C#我发现一个非常有用的命令行工具是ogr2ogr。使用 ogr2ogr,很容易将坐标从一个系统重新投影到另一个系统。以下是将投影的 shapefile 转换为 Google 地球投影的方法:
ogr2ogr -f "ESRI Shapefile" -t_srs EPSG:3857 NEWFILE.shp OLDFILE.shp
Ogr2ogr 使用 .prj 文件确定 shapefile 的当前投影,然后将其重新投影到 Google 的投影,此处由 EPSG 简写 EPSG:3857 定义。您可以在http://fwtools.maptools.org/ 找到适用于 Windows 和其他平台的 ogr2ogr
【讨论】:
非常感谢,您的博客真的很有启发性。那么,如果我想将坐标从任何系统重新投影到谷歌地图坐标,谷歌地图坐标系统参数规范是什么? epsg-registry.org 会告诉你所有关于坐标系的知识,或者spatialreference.org/ref/sr-org/7483以上是关于从阿尔伯斯转换为 GPS 坐标的主要内容,如果未能解决你的问题,请参考以下文章
ArcGIS Pro微课1000例0024:自定义坐标系统---以阿尔伯斯投影(Albers)为例