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)定义。