0

我有一些坐标数据,关于它的坐标系,我唯一知道的是以下描述:

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)?或者坐标也取决于使用的投影?

你知道我可以用于这种转换的开源库吗?

谢谢!

4

1 回答 1

1

所有这些参数都定义了投影,包括:

  • 投影类型(阿尔伯斯)
  • GEOGCS 定义了项目使用的大地水准面(理想地球形状)。在本例中,它是 NAD83,它使用度数作为单位,以格林威治为中心,即第 0 个经度。
  • 投影本身的中心位置
  • 投影向北和向东移动多远以使任何负坐标为正(东假和北假)
  • 此投影中的坐标单位(美制英尺)
  • 有关如何将投影坐标转换​​为在平面服务上绘制的其他一些信息。

我有一篇博客文章详细介绍了 OGC WKT 定义,它与 ESRI .prj 文件中的内容非常相似:http: //www.dev-garden.org/2011/07/30/projections-对于程序员一个投影/。您可能会发现它很有用。

使用投影坐标,它们已经“绘制在地图上”,您需要重新投影它们才能在其他坐标系中使用,例如 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

于 2013-08-18T05:13:57.460 回答