Такой хорошо известный идентификатор EPSG ID, как EPSG:4326, всегда должен присутствовать в сервисах WMS. Этот ID демонстрирует поддерживаемые системы пространственной привязки в файлах функциональности WMS и используется для запросов карт в определенных проекциях. В то же время, многие пользовательские системы пространственной привязки никак не связаны ни с каким официальным идентификатором EPSG ID.
WMS сервисы ArcGIS Server позволяют определить пользовательскую проекцию или стандартное текстовое (WKT) представление проекции в сервисе WMS. Это может оказаться полезным в случае, если ваши пользовательские системы координат не связаны с официальным EPSG ID. К примеру, издатели и пользователи WMS сервисов могут выполнять следующие действия:
- Присваивать пользовательским проекциям идентификаторы и объявлять о них посредством файла функциональности WMS.
- Перезаписывать существующую проекцию стандартной текстовой строкой.
- Посылать запросы к карте в определенной проекции путем прямого указания стандартного текста.
Задавать пользовательскую проекцию с помощью свойства listCustomCRS
Для того, чтобы задать и отобразить пользовательские системы пространственной привязки, вам потребуется добавить свойство listCustomCRS в сервис WMS. В 10.7 можно настроить с использованием Manager.
До 10.7 это свойство можно было настроить только с использованием ArcGIS Server Administrator Directory. Для настройки этого свойства выполните следующие действия:
- Откройте Administrator Directory в браузере и войдите в систему. Обычно URL-адрес директории https://gisserver.domain.com:6443/arcgis/admin/.
- Щелкните сервисы.
- На странице Папка – / щелкните имя сервиса WMS, доступного для редактирования. Если сервис не показан в списке, он может находиться во вложенной папке корневой директории .
- Прокрутите вниз страницу Service – <service name> (MapServer) и щелкните редактировать (edit).
- В диалоговом окне Свойства сервиса найдите секцию "typeName": "WMSServer".
- В секции "properties": { добавьте свойство listCustomCRS и определите пользовательскую проекцию или стандартное текстовое (WKT) представление проекции.
Здесь можно задать EPSG ID по умолчанию для пользовательской проекции или назначить определенный EPSG ID в строку WKT.
Задание пользовательской проекции по умолчанию
Для того, чтобы задать пользовательскую проекцию по умолчанию для вашего сервиса WMS, можно назначить любой EPSG ID в качестве хорошо известного ID вашей пользовательской проекции путем присоединения "EPSG:<ID>=DEFAULT" к свойству listCustomCRS.
"properties": {
"listCustomCRS": "EPSG:200001=DEFAULT",
...
В этом примере EPSG:200001 было назначено идентификатором хорошо известным EPSG ID для пользовательской проекции.
Задание пользовательской проекции с помощью WKT
Для того, чтобы задать пользовательскую проекцию для cервиса WMS, можно назначить в строке формата WKT вашей пользовательской проекции любой EPSG ID путем присоединения "EPSG:<ID>=<custom projection WKT>" к свойству listCustomCRS. Идентификатор EPSG:<ID> демонстрируется в файле функциональности сервиса WMS. Такой же подход можно использовать для перезаписи существующей проекции.
В следующем примере пользовательской проекции, представленной строкой WKT, присвоен идентификатор EPSG:200002, который замещает определение EPSG:3857, заданное с помощью другой строки WKT:
"properties": {
"listCustomCRS":"EPSG:3857=PROJCS[\"International_1924_UTM_Zone_30N\",GEOGCS [\"GCS_International_1924\",DATUM[\"D_International_1924\",SPHEROID [\"International_1924\",6378388.0,297.0]],PRIMEM[\"Greenwich\",0.0],UNIT [\"Degree\",0.0174532925199433]],PROJECTION[\"Transverse_Mercator\"],PARAMETER [\"False_Easting\",500000.0],PARAMETER[\"False_Northing\",0.0],PARAMETER [\"Central_Meridian\",-3.0],PARAMETER[\"Scale_Factor\",0.9996],PARAMETER [\"Latitude_Of_Origin\",0.0],UNIT[\"Meter\",1.0]];EPSG:200002=GEOGCS [\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM [\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433],METADATA [\"World\",-180.0,-90.0,180.0,90.0,0.0,0.0174532925199433,0.0,1262]]"
...
Запрос определенной проекции с помощью WKT
Следующий пример иллюстрирует, как сделать запрос к WMS Сервис показать карту в определенной проекции посредством указания стандартного текстового представления (WKT) этой проекции в запросе GetMap.
Образец запроса GetMap
http://gisserver.domain.com:6080/arcgis/services/service/MapServer/WmsServer?VERSION=1.3.0&REQUEST=GetMap&CRS=PROJCS["International_1924_UTM_Zone_30N",GEOGCS["GCS_International_1924",DATUM["D_International_1924",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]&BBOX=-116627.343234,3913652.137231,1206619.240498,4885411.347159&WIDTH=1024&HEIGHT=752&LAYERS=Color,Trama,Contactos&STYLES=,,&EXCEPTIONS=xml&FORMAT=image/png&BGCOLOR=0xFEFFFF&TRANSPARENT=TRUE