Los servicios WMS siempre necesitan un Id. de EPSG conocido, por ejemplo, EPSG:4326. Este Id. identifica los sistemas de referencia espacial compatibles en los archivos de recursos de WMS y se utiliza para solicitar mapas en proyecciones concretas. Sin embargo, muchos sistemas de referencia espacial personalizados no están asociados a ningún Id. de EPSG oficial.
Los servicios WMS de ArcGIS Server permiten definir una proyección personalizada o una representación de texto conocido (WKT) de una proyección en un servicio WMS. Esto resulta de especial utilidad si sus sistemas de referencia espaciales personalizados no están asociados a ningún Id. de EPSG oficial. Por ejemplo, los responsables de publicación y los consumidores de servicios WMS pueden hacer lo siguiente:
- Asignar Id. a proyecciones personalizadas y notificarlas a través del archivo de recursos de WMS.
- Sobrescribir una proyección existente con una cadena de caracteres WKT.
- Solicitar un mapa en una proyección particular especificando directamente el texto conocido.
Definir una proyección personalizada mediante la propiedad listCustomCRS
Para definir y notificar sistemas de referencia espacial personalizados, debe agregar la propiedad listCustomCRS al servicio WMS. En la versión 10.7, esta propiedad se puede configurar en Manager.
Antes de la versión 10.7, esta propiedad solo se podía configurar mediante el Directorio de administrador de ArcGIS Server. Para configurar la propiedad, siga estos pasos:
- Abra el Directorio de administrador en un navegador e inicie sesión. La URL típica al directorio es https://gisserver.domain.com:6443/arcgis/admin/.
- Haga clic en Servicios.
- En la página Carpeta - /, haga clic en el nombre del servicio de mapas con WMS habilitado que desee editar. Si no encuentra su servicio en la lista, es posible que esté ubicado en una subcarpeta bajo la carpeta raíz.
- En la página Servicio - <nombre de servicio> (MapServer), desplácese a la parte inferior y haga clic en editar.
- En el cuadro de diálogo Propiedades del servicio, busque la sección "typeName": "WMSServer".
- En la sección "properties": {, agregue la propiedad listCustomCRS y defina la proyección personalizada o representación WKT de una proyección.
A partir de aquí, puede definir un Id. de EPSG predeterminado para su proyección personalizada o asignar un Id. de EPSG específico a una cadena de caracteres WKT.
Definir una proyección personalizada predeterminada
Para definir una proyección personalizada predeterminada para el servicio WMS, puede asignar cualquier Id. de EPSG para que sea el Id. conocido de esa proyección personalizada incorporando "EPSG:<ID>=DEFAULT" a la propiedad listCustomCRS, por ejemplo:
"properties": {
"listCustomCRS": "EPSG:200001=DEFAULT",
...
En este ejemplo, se ha asignado EPSG:200001 para que sea el Id. de EPSG conocido de la proyección personalizada.
Definir una proyección personalizada mediante WKT
Para definir una proyección personalizada para el servicio WMS, puede asignar cualquier Id. de EPSG a una cadena de caracteres WKT de su proyección personalizada incorporando "EPSG:<ID>=<WKT de proyección personalizada>" a la propiedad listCustomCRS. EPSG:<ID> se notificará a través del archivo de recursos del servicio WMS. También puede utilizar este método para sobrescribir la definición de una proyección existente.
En el siguiente ejemplo, EPSG:200002 se ha asignado a una proyección personalizada representada por una cadena de caracteres WKT y también sobrescribe la definición de EPSG:3857 utilizando otra cadena de caracteres 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]]"
...
Solicitar una proyección específica utilizando WKT
El siguiente ejemplo demuestra cómo solicitar un mapa de un servicio WMS en una proyección específica definiendo la representación de WKT de la proyección en una solicitud de GetMap.
Ejemplo de solicitud de 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