自定义CRS定义¶
添加自定义CRS¶
此示例演示如何在GeoServer中添加自定义投影。
投影参数需要作为WKT(众所周知的文本)定义提供。下面的代码示例只是一个示例:
PROJCS["NAD83 / Austin", GEOGCS["NAD83", DATUM["North_American_Datum_1983", SPHEROID["GRS 1980", 6378137.0, 298.257222101], TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], PRIMEM["Greenwich", 0.0], UNIT["degree", 0.017453292519943295], AXIS["Lon", EAST], AXIS["Lat", NORTH]], PROJECTION["Lambert_Conformal_Conic_2SP"], PARAMETER["central_meridian", -100.333333333333], PARAMETER["latitude_of_origin", 29.6666666666667], PARAMETER["standard_parallel_1", 31.883333333333297], PARAMETER["false_easting", 2296583.333333], PARAMETER["false_northing", 9842500.0], PARAMETER["standard_parallel_2", 30.1166666666667], UNIT["m", 1.0], AXIS["x", EAST], AXIS["y", NORTH], AUTHORITY["EPSG","100002"]]
备注
此代码示例已为可读性进行了格式化。信息将需要在一行上提供,或者在每行的末尾使用反斜杠字符(最后一行除外)。
进入
user_projections
数据目录中的目录,然后打开epsg.properties
文件。如果此文件不存在,则可以创建它。在文件末尾插入投影的代码WKT(在单行上或使用反斜杠字符)::
100002=PROJCS["NAD83 / Austin", \ GEOGCS["NAD83", \ DATUM["North_American_Datum_1983", \ SPHEROID["GRS 1980", 6378137.0, 298.257222101], \ TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], \ PRIMEM["Greenwich", 0.0], \ UNIT["degree", 0.017453292519943295], \ AXIS["Lon", EAST], \ AXIS["Lat", NORTH]], \ PROJECTION["Lambert_Conformal_Conic_2SP"], \ PARAMETER["central_meridian", -100.333333333333], \ PARAMETER["latitude_of_origin", 29.6666666666667], \ PARAMETER["standard_parallel_1", 31.883333333333297], \ PARAMETER["false_easting", 2296583.333333], \ PARAMETER["false_northing", 9842500.0], \ PARAMETER["standard_parallel_2", 30.1166666666667], \ UNIT["m", 1.0], \ AXIS["x", EAST], \ AXIS["y", NORTH], \ AUTHORITY["EPSG","100002"]]
备注
注意WKT前面的数字。这将决定EPSG代码。所以在这个例子中,epsg代码是100002。
覆盖官方EPSG代码¶
在某些情况下,有必要用自定义定义覆盖官方EPSG代码。一个常见的情况是需要改变TOWGS84参数,以便在特定区域获得更好的回注精度。
GeoServer引用子系统检查是否存在另一个属性文件, epsg_overrides.properties
,其格式与 epsg.properties
. 中包含的任何定义 epsg_overrides.properties
将 覆盖 EPSG代码,而定义存储在 epsg.proeprties
只能 add 到数据库。
重写基准参数时必须特别小心,特别是 牵引84 参数。为了确保实际使用覆盖参数,必须删除数据的代码,否则参考子系统将继续读取官方数据库,以寻找最佳的数据移位方法(网格、7或5参数转换、普通仿射转换)。
例如,如果您需要覆盖 牵引84 参数爱普生:23031:
PROJCS["ED50 / UTM zone 31N",
GEOGCS["ED50",
DATUM["European Datum 1950",
SPHEROID["International 1924", 6378388.0, 297.0, AUTHORITY["EPSG","7022"]],
TOWGS84[-157.89, -17.16, -78.41, 2.118, 2.697, -1.434, -1.1097046576093785],
AUTHORITY["EPSG","6230"]],
PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH],
AUTHORITY["EPSG","4230"]],
PROJECTION["Transverse_Mercator"],
PARAMETER["central_meridian", 3.0],
PARAMETER["latitude_of_origin", 0.0],
PARAMETER["scale_factor", 0.9996],
PARAMETER["false_easting", 500000.0],
PARAMETER["false_northing", 0.0],
UNIT["m", 1.0],
AXIS["Easting", EAST],
AXIS["Northing", NORTH],
AUTHORITY["EPSG","23031"]]
您应该编写以下内容(在一行中,这里报告了为便于阅读而在多行中格式化的内容):
23031=
PROJCS["ED50 / UTM zone 31N",
GEOGCS["ED50",
DATUM["European Datum 1950",
SPHEROID["International 1924", 6378388.0, 297.0, AUTHORITY["EPSG","7022"]],
TOWGS84[-136.65549, -141.4658, -167.29848, 2.093088, 0.001405, 0.107709, 11.54611],
AUTHORITY["EPSG","6230"]],
PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],
UNIT["degree", 0.017453292519943295],
AXIS["Geodetic longitude", EAST],
AXIS["Geodetic latitude", NORTH]],
PROJECTION["Transverse_Mercator"],
PARAMETER["central_meridian", 3.0],
PARAMETER["latitude_of_origin", 0.0],
PARAMETER["scale_factor", 0.9996],
PARAMETER["false_easting", 500000.0],
PARAMETER["false_northing", 0.0],
UNIT["m", 1.0],
AXIS["Easting", EAST],
AXIS["Northing", NORTH],
AUTHORITY["EPSG","23031"]]
有两个地方的定义发生了变化 牵引84 参数和基准代码, AUTHORITY["EPSG","4230"]
,已删除。