В этом примере показано, как добавить пользовательскую проекцию в 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"]]
4) Сохраните файл.
5) Перезапустите ГеоСервер.
6) Убедитесь, что CRS правильно проанализирован, перейдя на страницу Список SRS (SRS List) в интерфейсе веб-администрирования.
7) Если проекции нет в списке, проверьте журналы на наличие ошибок.
В некоторых ситуациях необходимо заменить официальный код 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»].