自定义CRS定义

添加自定义CRS

此示例演示如何在GeoServer中添加自定义投影。

  1. 投影参数需要作为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"]]
    

    备注

    此代码示例已为可读性进行了格式化。信息将需要在一行上提供,或者在每行的末尾使用反斜杠字符(最后一行除外)。

  2. 进入 user_projections 数据目录中的目录,然后打开 epsg.properties 文件。如果此文件不存在,则可以创建它。

  3. 在文件末尾插入投影的代码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。

  1. 保存文件。

  2. 重新启动geoserver。

  3. 通过导航到 SRS列表 第页 Web管理界面 .

  4. 如果没有列出投影,请检查日志中是否有任何错误。

覆盖官方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"] ,已删除。