Содержание

Пользовательские проекции (CRS)

Добавление пользовательской CRS

В этом примере показано, как добавить пользовательскую проекцию в GeoServer.

1) Параметры проекции должны быть описаны в виде определения WKT (Well-known text). Приведенный ниже пример кода является просто примером:

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.

4) Сохраните файл.

5) Перезапустите ГеоСервер.

6) Убедитесь, что CRS правильно проанализирован, перейдя на страницу Список SRS (SRS List) в интерфейсе веб-администрирования.

7) Если проекции нет в списке, проверьте журналы на наличие ошибок.

Переопределить официальный код EPSG

В некоторых ситуациях необходимо заменить официальный код EPSG пользовательским определением. Распространенным случаем является необходимость изменения параметров TOWGS84 для повышения точности перепроецирования в определенных областях.

Подсистема ссылок GeoServer проверяет наличие другого файла свойств, epsg_overrides.properties формат которого совпадает с форматом epsg.properties. Любое определение, содержащееся в epsg_overrides.properties, переопределяет код EPSG, в то время как определения, хранящиеся в epsg.proeprties могут только добавляться в базу данных.

Следует соблюдать особую осторожность при переопределении параметров Datum, в частности параметров TOWGS84. Чтобы убедиться, что параметры переопределения действительно используются, код базы данных должен быть удален, иначе подсистема ссылок будет продолжать читать официальную базу данных в поисках наилучшего метода смещения базы данных (сетка, преобразование 7 или 5 параметров, простое аффинное преобразование).

Например, если вам нужно переопределить официальные параметры TOWGS84 для EPSG: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"]]

Определение было изменено в двух местах: были удалены параметры TOWGS84 и код Datum AUTHORITY[«EPSG»,«4230»].

См. также