Spatial 参考系的公认文本表示为 Spatial 参考系信息提供标准的文本表示。 公认文本表示的定义是按照 POSC/EPSG 坐标系数据模型创建的。
Spatial 参考系是地理(纬线 - 经线)坐标系、 投影 (X,Y) 坐标系或地心 (X,Y,Z) 坐标系。 该坐标系由几个对象组成。每个对象有一个大写的关键字 (例如 DATUM 或 UNIT),后跟用括号括起并用逗号分隔的对象定义参数。 某些对象由其他对象组成,因此结果是一个嵌套的结构。
注意: | 可自由地用标准括号 ( ) 替换方括号 [ ], 应准备读取两种形式的括号。 |
使用方括号的坐标系的字符串表示的 EBNF(扩展 Backus Naur 形式)定义如下(参见上面有关括号的使用的注意事项):
<coordinate system> = <projected cs> | <geographic cs> | <geocentric cs> <projected cs> = PROJCS["<name>", <geographic cs>, <projection>, {<parameter>,}* <linear unit>] <projection> = PROJECTION["<name>"] <parameter> = PARAMETER["<name>", <value>] <value> = <number>
若数据使用投影坐标,则用 PROJCS 关键字标识数据集的坐标系 (若使用地理坐标,则用 GEOGCS 进行标识;若使用地心坐标,则用 GEOCCS 进行标识)。 PROJCS 关键字后跟定义投影坐标系的所有“构件”。任何对象的第一个构件总是相同的。 投影坐标系名后跟多个对象: 地理坐标系、地图投影、一个或多个参数以及长度单位。 所有投影坐标系基于地理坐标系,因此此节首先描述特定于投影坐标系的构件。 例如,定义 NAD83 数据上的 UTM 区域 10N:
PROJCS["NAD_1983_UTM_Zone_10N", <geographic cs>, PROJECTION["Transverse_Mercator"], PARAMETER["False_Easting",500000.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",-123.0], PARAMETER["Scale_Factor",0.9996], PARAMETER["Latitude_of_Origin",0.0], UNIT["Meter",1.0]]
名称和以下几个对象依次定义地理坐标系对象:数据、本初子午线和角度计量单位。
<geographic cs> = GEOGCS["<name>", <datum>, <prime meridian>, <angular unit>] <datum> = DATUM["<name>", <spheroid>] <spheroid> = SPHEROID["<name>", <semi-major axis>, <inverse flattening>] <semi-major axis> = <number> (semi-major axis is measured in meters and must be > 0.) <inverse flattening> = <number> <prime meridian> = PRIMEM["<name>", <longitude>] <longitude> = <number>
GEOGCS["GCS_North_American_1983", DATUM["D_North_American_1983", SPHEROID["GRS_1980",6378137,298.257222101]], PRIMEM["Greenwich",0], UNIT["Degree",0.0174532925199433]]
<angular unit> = <unit> <linear unit> = <unit> <unit> = UNIT["<name>", <conversion factor>] <conversion factor> = <number>
转换因子指定每单位的米数(对于长度单位)或弧度数(对于角度单位), 且必须大于零。
因此 UTM 区域 10N 的整个字符串表示如下:
PROJCS["NAD_1983_UTM_Zone_10N", GEOGCS["GCS_North_American_1983", DATUM[ "D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]], PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0], PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0], PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_of_Origin",0.0], UNIT["Meter",1.0]]
<geocentric cs> = GEOCCS["<name>", <datum>, <prime meridian>, <linear unit>]