Skip to content
本页目录

prj文件与Proj4

在GIS开发过程中,prj文件是是用户端传播比较多的一种投影文件定义。所有参数都存储在后缀为prj的文本文件中。

实际编码过程中,在传递投影信息时多数的GIS引擎支持的都是PROJ4的定义,PROJ4是一种非常简单的字符串。

PRJ文件和PROJ4两者之间是可以相互转换的。

1.prj文件简介

prj文件是一个专门用来描述坐标系投影的文件,里面定义了坐标系的名称、长短半轴、基准面、投影参数等一些其他重要的信息。

PRJ文件是一种专门用来描述坐标系投影的文件,它包含了一些关键信息,如坐标系的名称、长短半轴、基准面、投影参数等一些其他重要的信息。这些参数具有特定的定义和用途:

  • GEOGCS:定义了大地基准面,例如WGS84、GCS_WGS_1984等。
  • DATUM:定义了地球椭球体,例如WGS84、NAD27等。
  • PROJCS:定义了地图投影方法,例如Lambert Conformal Conic、Mercator等。
  • TOWGS84:定义了从WGS84到DATUM的转换参数。
  • PARAMETER:定义了一些可选参数,例如长半轴、短半轴、扁率等。

看一个国家2000,3度带,坐标不含带号,中央经线117的标准投影的prj文件定义

PROJCS["CGCS2000 / 3-degree Gauss-Kruger CM 117E",
    GEOGCS["China Geodetic Coordinate System 2000",
        DATUM["China_2000",
            SPHEROID["CGCS2000",6378137,298.257222101,
                AUTHORITY["EPSG","1024"]],
            AUTHORITY["EPSG","1043"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.0174532925199433,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4490"]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",117],
    PARAMETER["scale_factor",1],
    PARAMETER["false_easting",500000],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    AUTHORITY["EPSG","4548"]]
  • GEOGCS["China Geodetic Coordinate System 2000", ...]: 定义了地理坐标系统的名称为"China Geodetic Coordinate System 2000",并指定了相关的参数。
  • DATUM["China_2000", ...]: 定义了数据参照系的名称为"China_2000",并指定了相关的参数。
  • SPHEROID["CGCS2000",6378137,298.257222101, ...]: 定义了地球椭球体模型的名称为"CGCS2000",并指定了相关参数,包括长半轴、扁率等。
  • PRIMEM["Greenwich",0, ...]: 定义了原点纬度为0度,即格林尼治子午线。
  • UNIT["degree",0.0174532925199433, ...]: 定义了角度单位为度数,换算因子为0.0174532925199433弧度/度。
  • PROJECTION["Transverse_Mercator"]: 定义了投影方法为横向墨卡托投影。
  • PARAMETER["latitude_of_origin",0]: 定义了原点的纬度为0度。
  • PARAMETER["central_meridian",117]: 定义了中央经线为117度。
  • PARAMETER["scale_factor",1]: 定义了比例尺因子为1。
  • PARAMETER["false_easting",500000]: 定义了假东偏移量为500,000米。
  • PARAMETER["false_northing",0]: 定义了假北偏移量为0米。
  • UNIT["metre",1, ...]: 定义了长度单位为米,换算因子为1。
  • AUTHORITY["EPSG","4548"]: 指定了该投影系统的EPSG代码为4548。
备注:
大疆在识别prj文件时,会在数据处理过程中使用各个参数的定义。但在输出数据时,一旦有AUTHORITY的定义,输出的xml中只存储AUTHORITY对应的EPSG,而忽略上述参数的自定义。

2.proj4简介

PROJ4是一个开源GIS工具,它的主要功能是地图投影的表达和转换。它采用一种简洁明了的投影表达方式,使得投影定义比其他方法更为简单。Proj.4是GIS中最著名的地图投影库,被许多开源GIS软件所使用,例如GDAL中的投影转换函数就是动态调用Proj.4的库函数

看一个国家2000,3度带,坐标不含带号,中央经线117的标准投影的proj4字符串定义

+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs
  • +proj=tmerc: 表示使用的投影方法为Transverse Mercator(横向墨卡托投影)。
  • +lat_0=0: 表示标准纬度为0度。
  • +lon_0=117: 表示中央经线为117度。
  • +k=1: 表示比例尺因子为1。
  • +x_0=500000: 表示原点在X轴上的偏移量为500,000米。
  • +y_0=0: 表示原点在Y轴上的偏移量为0米。
  • +ellps=GRS80: 表示使用的椭球体模型为GRS80。
  • +units=m: 表示单位为米。
  • +no_defs: 表示不使用默认的定义。
  • +type=crs: 表示这是一个坐标参考系统(CRS)定义。