Содержание
Пользовательские проекции (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»].