Skip To Content

Define a custom projection for a WMS service

A well-known EPSG ID, such as EPSG:4326, is always necessary in WMS services. This ID advertises supported spatial reference systems in WMS capabilities files and is used to request maps in particular projections. However, many custom spatial reference systems are not associated with any official EPSG ID.

ArcGIS Server WMS services allow you to define a custom projection or well-known text (WKT) representation of a projection in a WMS service. This is particularly useful if your custom spatial reference systems are not associated with an official EPSG ID. For example, publishers and consumers of WMS services can do the following:

  • Assign IDs to custom projections and advertise them through the WMS capabilities file.
  • Overwrite an existing projection with a WKT string.
  • Request a map in a particular projection by directly specifying the well-known text.

Define a custom projection using the listCustomCRS property

To define and advertise custom spatial reference systems, you'll need to add the listCustomCRS property to your WMS service. At 10.7, this property can be configured using Manager.

Prior to 10.7, this property could only be configured using the ArcGIS Server Administrator Directory. To configure the property, follow these steps:

  1. Open the Administrator Directory in a browser and sign in. The typical URL to the directory is https://gisserver.domain.com:6443/arcgis/admin/.
  2. Click services.
  3. On the Folder - / page, click the name of the WMS-enabled map service that you want to edit. If you don't see your service in the list, it may be located in a subfolder under the root folder.
  4. On the Service - <service name> (MapServer) page, scroll to the bottom and click edit.
  5. On the Service Properties dialog box, locate the "typeName": "WMSServer" section.
  6. Within the "properties": { section, add the listCustomCRS property and define the custom projection or WKT representation of a projection.

From this point, you can define a default EPSG ID for your custom projection, or assign a specific EPSG ID to a WKT string.

Define a default custom projection

To define a default custom projection for your WMS service, you can assign any EPSG ID to be the well-known ID of your custom projection by appending "EPSG:<ID>=DEFAULT" to the listCustomCRS property, for example:

"properties": {
    "listCustomCRS": "EPSG:200001=DEFAULT",
    ...

In this example, EPSG:200001 has been assigned to be the well-known EPSG ID for the custom projection.

Define a custom projection using WKT

To define a custom projection for your WMS service, you can assign any EPSG ID to a WKT string of your custom projection by appending "EPSG:<ID>=<custom projection WKT>" to the listCustomCRS property. The EPSG:<ID> will be advertised through the capabilities file of the WMS service. You can also use this approach to overwrite the definition of an existing projection.

In the following example, EPSG:200002 has been assigned to a custom projection represented by a WKT string and also overwrites the definition of EPSG:3857 using another WKT string:

"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]]"
    ...

Request a specific projection using WKT

The following example demonstrates how to request a map from a WMS service in a specific projection by defining the WKT representation of the projection in a GetMap request.

Sample GetMap request

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