Supported Layers
| Server Layer | Layer Description | 
|---|---|
| ArcGIS FeatureServer Layer | A dynamic layer sourced from an ArcGIS FeatureServer, allowing interactive querying, editing, and visualization of vector features such as points, lines, and polygons. | 
| ArcGIS MapServer Layer | A layer sourced from an ArcGIS MapServer, supporting both vector and raster data, often used for complex map compositions and symbology. | 
| Dataverse Layer | A custom layer that visualizes data from Microsoft Dataverse entities, such as accounts or work orders, enabling integration of business data with geographic context. | 
| MapLibre Style Layer | An overlay or operational layer rendered using MapLibre GL styles, supporting advanced vector data visualization and interactivity. | 
| Slippy Image Layer | A raster image overlay using the Slippy Map tiling scheme, suitable for displaying custom imagery or thematic overlays above the basemap. | 
| WMS Layer | Displays map images generated on-the-fly from geospatial data hosted on a remote server using the OGC WMS standard. Ideal for viewing dynamic maps from external sources. | 
| WMTS Layer | Serves pre-rendered map tiles for fast and efficient map display using the OGC WMTS standard. Commonly used for basemaps and high-performance mapping. | 
| WFS Layer | Provides access to vector features (points, lines, polygons) as raw data using the OGC WFS standard. Suitable for querying, downloading, and editing geospatial features. | 
3D/Elevation Layers
| 3D Layer Type | Layer Description | 
|---|---|
| Terrain-RGB Layer | Raster tiles with elevation data encoded in RGB channels, supporting Digital Elevation Models (DEM) and 3D terrain visualization. | 
| Terrain Vector Layer | Vector tiles containing contour features with elevation properties, ideal for contour line visualization and elevation queries. | 
| 3D Terrain WMS Layer | WMS service providing elevation/terrain data for 3D visualization and analysis applications. | 
| 3D Terrain WMTS Layer | Pre-rendered terrain tiles optimized for fast 3D terrain display and elevation analysis. | 
| MapLibre 3D Terrain Layer | MapLibre GL style layer with 3D terrain capabilities, supporting advanced terrain rendering and elevation-based styling. | 
ArcGIS FeatureServer Layer
Required Endpoints
Must have FeatureServer in the URL. This is not case-sensitive.
Can provide URL with or without a trailing /.
Ending the URL with FeatureServer or FeatureServer/ will load available layers within the feature service for selection.
Providing a layer specific index at the end of the URL (example: FeatureServer/1 or FeatureServer/1/) is NOT SUPPORTED.
Required Response
Example of a Feature Server response:
Details
{
    "currentVersion": 11.2,
    "serviceItemId": "{serviceItemId}",
    "serviceDescription": "",
    "hasVersionedData": false,
    "supportsDisconnectedEditing": false,
    "hasStaticData": true,
    "hasSharedDomains": false,
    "maxRecordCount": 2000,
    "supportedQueryFormats": "JSON",
    "supportsVCSProjection": false,
    "supportedExportFormats": "csv,shapefile,sqlite,geoPackage,filegdb,featureCollection,geojson,kml,excel",
    "supportedConvertFileFormats": "JSON,PBF",
    "supportedConvertContentFormats": "LayerEditCollection",
    "capabilities": "Query",
    "description": "",
    "copyrightText": "",
    "spatialReference": {
        "wkid": 102100,
        "latestWkid": 3857
    },
    "initialExtent": {
        "xmin": 12702474.34026937,
        "ymin": -4182250.4078689422,
        "xmax": 13598482.33048064,
        "ymax": -3203933.795351357,
        "spatialReference": {
            "wkid": 102100,
            "latestWkid": 3857
        }
    },
    "fullExtent": {
        "xmin": 12702474.34026937,
        "ymin": -4182250.4078689422,
        "xmax": 13598482.33048064,
        "ymax": -3203933.795351357,
        "spatialReference": {
            "wkid": 102100,
            "latestWkid": 3857
        }
    },
    "allowGeometryUpdates": true,
    "supportsTrueCurve": true,
    "supportedCurveTypes": [
        "esriGeometryCircularArc"
    ],
    "allowTrueCurvesUpdates": true,
    "onlyAllowTrueCurveUpdatesByTrueCurveClients": false,
    "units": "esriMeters",
    "supportsAppend": true,
    "supportsSharedDomains": true,
    "supportsWebHooks": true,
    "supportsTemporalLayers": true,
    "layerOverridesEnabled": true,
    "size": 280625152,
    "syncEnabled": false,
    "supportsApplyEditsWithGlobalIds": false,
    "supportsReturnDeleteResults": true,
    "supportsLayerOverrides": true,
    "supportsTilesAndBasicQueriesMode": true,
    "supportsQueryContingentValues": true,
    "supportedContingentValuesFormats": "JSON, PBF",
    "supportsContingentValuesJson": 2,
    "advancedEditingCapabilities": {
        "supportsSplit": false,
        "supportsReturnServiceEditsInSourceSR": false,
        "supportsAsyncApplyEdits": true,
        "supportsReturnEditResults": true,
    "supportsApplyEditsByUploadID": true,
        "supportedApplyEditsUploadIDFormats": "JSON"
    },
    "editorTrackingInfo": {
        "enableEditorTracking": false,
        "enableOwnershipAccessControl": false,
        "allowOthersToQuery": true,
        "allowOthersToUpdate": true,
        "allowOthersToDelete": false,
        "allowAnonymousToQuery": true,
        "allowAnonymousToUpdate": true,
        "allowAnonymousToDelete": true
    },
    "xssPreventionInfo": {
        "xssPreventionEnabled": true,
        "xssPreventionRule": "InputOnly",
        "xssInputRule": "rejectInvalid"
    },
    "layers": [
        {
            "id": 1,
            "name": "{Layer Name}",
            "parentLayerId": -1,
            "defaultVisibility": true,
            "subLayerIds": null,
            "minScale": 18489298,
            "maxScale": 0,
            "type": "Feature Layer",
            "geometryType": "esriGeometryPoint"
        },
        {
            "id": 5,
            "name": "{Layer Name}",
            "parentLayerId": -1,
            "defaultVisibility": true,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 4513,
            "type": "Feature Layer",
            "geometryType": "esriGeometryPolygon"
        },
        {
            "id": 6,
            "name": "{Layer name}",
            "parentLayerId": -1,
            "defaultVisibility": true,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 0,
            "type": "Feature Layer",
            "geometryType": "esriGeometryPolyline"
        }
    ],
    "tables": []
}
Details
Example of Layer response:
{
    "currentVersion": 11.2,
    "id": 0,
    "name": "{Layer Name}",
    "type": "Feature Layer",
    "serviceItemId": "{serviceItemId}",
    "cacheMaxAge": 30,
    "displayField": "",
    "description": "",
    "copyrightText": "",
    "defaultVisibility": true,
    "editingInfo": {
        "lastEditDate": 1664935793716,
        "schemaLastEditDate": 1664935793716,
        "dataLastEditDate": 1664935793716
    },
    "relationships": [],
    "isDataVersioned": false,
    "hasContingentValuesDefinition": false,
    "supportsAppend": true,
    "supportsCalculate": true,
    "supportsASyncCalculate": true,
    "supportsTruncate": true,
    "supportsAttachmentsByUploadId": true,
    "supportsAttachmentsResizing": true,
    "supportsRollbackOnFailureParameter": true,
    "supportsStatistics": true,
    "supportsExceedsLimitStatistics": true,
    "supportsAdvancedQueries": true,
    "supportsValidateSql": true,
    "supportsCoordinatesQuantization": true,
    "supportsLayerOverrides": true,
    "supportsTilesAndBasicQueriesMode": true,
    "supportsFieldDescriptionProperty": true,
    "supportsQuantizationEditMode": true,
    "supportsApplyEditsWithGlobalIds": false,
    "supportsReturningQueryGeometry": true,
    "advancedQueryCapabilities": {
        "supportsPagination": true,
        "supportsQueryAttachmentsCountOnly": true,
        "supportsPaginationOnAggregatedQueries": true,
        "supportsQueryRelatedPagination": true,
        "supportsQueryWithDistance": true,
        "supportsReturningQueryExtent": true,
        "supportsStatistics": true,
        "supportsOrderBy": true,
        "supportsDistinct": true,
        "supportsQueryWithResultType": true,
        "supportsSqlExpression": true,
        "supportsAdvancedQueryRelated": true,
        "supportsCountDistinct": true,
        "supportsPercentileStatistics": true,
        "supportsSpatialAggregationStatistics": true,
        "supportedSpatialAggregationStatistics": [
            "EnvelopeAggregate",
            "CentroidAggregate",
            "ConvexHullAggregate"
        ],
        "supportsLod": true,
        "supportsQueryWithLodSR": false,
        "supportedLodTypes": [
            "geohash"
        ],
        "supportsReturningGeometryCentroid": false,
        "supportsReturningGeometryEnvelope": true,
        "supportsQueryWithDatumTransformation": true,
        "supportsCurrentUserQueries": true,
        "supportsHavingClause": true,
        "supportsOutFieldSQLExpression": true,
        "supportsMaxRecordCountFactor": true,
        "supportsTopFeaturesQuery": true,
        "supportsDisjointSpatialRel": true,
        "supportsQueryWithCacheHint": true,
        "supportedOperationsWithCacheHint": [
            "query",
            "queryTopFilter",
            "queryAnalytics",
            "queryAttachments",
            "queryRelated",
            "queryBins"
        ],
        "supportsQueryAnalytic": true,
        "supportsQueryBins": true,
        "supportsDefaultSR": true,
        "supportsFullTextSearch": true
    },
    "advancedQueryAnalyticCapabilities": {
        "supportsLinearRegression": true,
        "supportsAsync": true,
        "supportsPercentileAnalytic": true
    },
    "queryBinsCapabilities": {
        "supportsAsync": true,
        "supportsAutoIntervalBin": true,
        "supportsFixedIntervalBin": true,
        "supportsFixedBoundariesBin": true,
        "supportsDateBin": true,
        "supportedStatisticTypes": [
            "COUNT",
            "SUM",
            "AVG",
            "VAR",
            "STDDEV",
            "MIN",
            "MAX",
            "PERCENTILE_CONT",
            "PERCENTILE_DISC",
            "CentroidAggregate",
            "EnvelopeAggregate",
            "ConvexHullAggregate"
        ]
    },
    "advancedEditingCapabilities": {
        "supportedSqlFormatsInCalculate": [
            "standard"
        ],
        "supportsAsyncApplyEdits": true,
        "supportsReturnEditResults": true,
    "supportsApplyEditsByUploadID": true,
        "supportedApplyEditsUploadIDFormats": "JSON"
    },
    "infoInEstimates": [
        "extent",
        "count"
    ],
    "useStandardizedQueries": true,
    "geometryType": "esriGeometryPoint",
    "minScale": 18489298,
    "maxScale": 0,
    "extent": {
        "xmin": 12708879.833197871,
        "ymin": -4160590.8705742983,
        "xmax": 13524586.31571443,
        "ymax": -3212944.5804466344,
        "spatialReference": {
            "wkid": 102100,
            "latestWkid": 3857
        }
    },
    "drawingInfo": {
        "renderer": {
            "type": "simple",
            "symbol": {
                "type": "esriPMS",
                "url": "RedSphere.png",
                "imageData": "{base64imagedata}",
                "contentType": "image/png",
                "width": 15,
                "height": 15
            }
        }
    },
    "allowGeometryUpdates": true,
    "hasAttachments": false,
    "htmlPopupType": "esriServerHTMLPopupTypeNone",
    "hasM": false,
    "hasZ": false,
    "objectIdField": "OBJECTID",
    "uniqueIdField": {
        "name": "OBJECTID",
        "isSystemMaintained": true
    },
    "globalIdField": "",
    "typeIdField": "",
    "fields": [
        {
            "name": "OBJECTID",
            "type": "esriFieldTypeOID",
            "alias": "OBJECTID",
            "sqlType": "sqlTypeOther",
            "nullable": false,
            "editable": false,
            "domain": null,
            "defaultValue": null
        },
        {
            "name": "Name",
            "type": "esriFieldTypeString",
            "alias": "Name",
            "sqlType": "sqlTypeOther",
            "length": 50,
            "nullable": true,
            "editable": true,
            "domain": null,
            "defaultValue": null
        },
        {
            "name": "OWNER",
            "type": "esriFieldTypeString",
            "alias": "Owner",
            "sqlType": "sqlTypeOther",
            "length": 15,
            "nullable": true,
            "editable": true,
            "domain": null,
            "defaultValue": null
        }
    ],
    "indexes": [
        {
            "name": "{name}",
            "fields": "OBJECTID",
            "isAscending": true,
            "isUnique": true,
            "description": "clustered, unique, primary key",
            "indexType": "Attribute"
        },
        {
            "name": "{name}",
            "fields": "NAME",
            "isAscending": false,
            "isUnique": false,
            "description": "Name Index",
            "indexType": "Spatial"
        }
    ],
    "dateFieldsTimeReference": {
        "timeZone": "UTC",
        "respectsDaylightSaving": false
    },
    "preferredTimeReference": null,
    "types": [],
    "templates": [
        {
            "name": "New Feature",
            "description": "",
            "drawingTool": "esriFeatureEditToolPoint",
            "prototype": {
                "attributes": {
                    "NAME": null,
                    "OWNER": null
                }
            }
        }
    ],
    "supportedQueryFormats": "JSON, geoJSON, PBF",
    "supportedAppendFormats": "sqlite,geoPackage,shapefile,filegdb,featureCollection,geojson,csv,excel,jsonl,featureService,pbf",
    "supportedAppendSourceFilterFormats": "sqlite,geoPackage,shapefile,filegdb,featureService",
    "supportedExportFormats": "csv,shapefile,sqlite,geoPackage,filegdb,featureCollection,geojson,kml,excel",
    "supportedConvertFileFormats": "JSON,PBF",
    "supportedConvertContentFormats": "LayerEditCollection,FeatureCollection",
    "supportedSpatialRelationships": [
        "esriSpatialRelIntersects",
        "esriSpatialRelContains",
        "esriSpatialRelCrosses",
        "esriSpatialRelEnvelopeIntersects",
        "esriSpatialRelIndexIntersects",
        "esriSpatialRelOverlaps",
        "esriSpatialRelTouches",
        "esriSpatialRelWithin",
        "esriSpatialRelDisjoint",
        "esriSpatialRelRelation"
    ],
    "supportedContingentValuesFormats": "JSON, PBF",
    "supportedSyncDataOptions": 260,
    "hasStaticData": true,
    "maxRecordCount": 2000,
    "standardMaxRecordCount": 32000,
    "standardMaxRecordCountNoGeometry": 32000,
    "tileMaxRecordCount": 8000,
    "maxRecordCountFactor": 1,
    "capabilities": "Query"
}
Layer must have the following:
- Extent
- Should contain finite coordinate values
 - Should contain 
spatialReferenceobject containing the wkid 
 - Query capability
- All available fields must be queryable
 - If any fields are hidden, they must also be hidden from being queryable
 where=(1=1)query should be enabled and should return data- Query must allow features/geometry to be returned
 - Query should allow 
esriGeometryEnvelopegeometry as a filter 
 - Drawing Info/Rendering Info of types:
simple, with the following symbol types:- esriSMS
 - esriSLS
 - esriSFS
 - esriPFS
 - esriPMS
 - esriTS
 
uniqueValue, with the following symbol types:- esriSMS
 - esriSLS
 - esriSFS
 - esriPFS
 - esriPMS
 - esriTS
 
 - Geometry type must be:
- Polygon
 - Polyline
 - Point
 
 - If MinScale and MaxScale are defined:
- Must be in the correct order i.e.
- if both are provided, MaxScale should be less than MinScale
 - if MinScale is 0, this means the layer will be always visible until it reaches the MaxScale threshold
 - if MaxScale is 0, this means the layer will always be visible after it exceeds the MinScale threshold
 - if both values are 0, this means the layer will always render
 
 
 - Must be in the correct order i.e.
 
Example Postman Collection
Use the following Postman collection to test if your layer is likely to function as expected. This will help you test the endpoints mentioned above, as well as allow you to compare the resulting JSON against the requirements.
ArcGIS FeatureServer Collection
ArcGIS MapServer Layer
Required Endpoints
Must have MapServer in the URL. This is not case-sensitive.
Can provide URL with or without a trailing /.
Ending the URL with MapServer or MapServer/ will load available layers within the map service for selection.
Providing a layer specific index at the end of the URL (example: MapServer/1 or MapServer/1/) is NOT SUPPORTED
Required Response
Example of MapServer response:
Details
{
    "currentVersion": 10.91,
    "cimVersion": "2.9.0",
    "serviceDescription": "{service description}",
    "mapName": "{Layer name}",
    "description": "{description}",
    "copyrightText": "{copyright text}",
    "supportsDynamicLayers": true,
    "layers": [
        {
            "id": 0,
            "name": "{Layer Name}",
            "parentLayerId": -1,
            "defaultVisibility": false,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 0,
            "type": "Feature Layer",
            "geometryType": "esriGeometryPoint",
            "supportsDynamicLegends": true
        },
        {
            "id": 23,
            "name": "{Layer Name}",
            "parentLayerId": -1,
            "defaultVisibility": false,
            "subLayerIds": null,
            "minScale": 3000000,
            "maxScale": 0,
            "type": "Feature Layer",
            "geometryType": "esriGeometryPolyline",
            "supportsDynamicLegends": true
        },
        {
            "id": 3,
            "name": "{Layer Name}",
            "parentLayerId": -1,
            "defaultVisibility": false,
            "subLayerIds": null,
            "minScale": 0,
            "maxScale": 0,
            "type": "Feature Layer",
            "geometryType": "esriGeometryPolygon",
            "supportsDynamicLegends": true
        }
    ],
    "tables": [],
    "spatialReference": {
        "wkid": 7844,
        "latestWkid": 7844,
        "xyTolerance": 8.983152841195213E-9,
        "zTolerance": 0.001,
        "mTolerance": 0.001,
        "falseX": -400,
        "falseY": -400,
        "xyUnits": 1.125899906842624E13,
        "falseZ": -100000,
        "zUnits": 10000,
        "falseM": -100000,
        "mUnits": 10000
    },
    "singleFusedMapCache": false,
    "initialExtent": {
        "xmin": 120.30071413110835,
        "ymin": -41.34985133216837,
        "xmax": 129.0749765901075,
        "ymax": -6.8179234850564185,
        "spatialReference": {
            "wkid": 7844,
            "latestWkid": 7844,
            "xyTolerance": 8.983152841195213E-9,
            "zTolerance": 0.001,
            "mTolerance": 0.001,
            "falseX": -400,
            "falseY": -400,
            "xyUnits": 1.125899906842624E13,
            "falseZ": -100000,
            "zUnits": 10000,
            "falseM": -100000,
            "mUnits": 10000
        }
    },
    "fullExtent": {
        "xmin": 96.81666666700005,
        "ymin": -38.52970731099998,
        "xmax": 145.6847087100001,
        "ymax": 63.09773122100006,
        "spatialReference": {
            "wkid": 7844,
            "latestWkid": 7844,
            "xyTolerance": 8.983152841195213E-9,
            "zTolerance": 0.001,
            "mTolerance": 0.001,
            "falseX": -400,
            "falseY": -400,
            "xyUnits": 1.125899906842624E13,
            "falseZ": -100000,
            "zUnits": 10000,
            "falseM": -100000,
            "mUnits": 10000
        }
    },
    "timeInfo": {
        "timeExtent": [
            -1539734400000,
            4540752000000
        ],
        "timeReference": null,
        "timeRelation": "esriTimeRelationOverlaps",
        "defaultTimeInterval": 10,
        "defaultTimeIntervalUnits": "esriTimeUnitsYears",
        "defaultTimeWindow": 0,
        "defaultTimeWindowUnits": "esriTimeUnitsYears",
        "hasLiveData": false,
        "liveModeOffsetDirection": "past"
    },
    "datesInUnknownTimezone": false,
    "minScale": 0,
    "maxScale": 0,
    "units": "esriDecimalDegrees",
    "supportedImageFormatTypes": "PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP",
    "documentInfo": {
        "Title": "{Title}",
        "Author": "",
        "Comments": "{Comments}",
        "Subject": "{Subject}",
        "Category": "",
        "AntialiasingMode": "None",
        "TextAntialiasingMode": "Force",
        "Version": "2.9.0",
        "Keywords": "{Keywords}"
    },
    "supportsQueryDomains": true,
    "capabilities": "Map,Query,Data",
    "supportedQueryFormats": "JSON, geoJSON, PBF",
    "exportTilesAllowed": false,
    "referenceScale": 0.0,
    "datumTransformations": [
        {
            "geoTransforms": [
                {
                    "wkt": "GEOGTRAN[\"GDA94_GDA2020_C+D\",GEOGCS[\"GCS_GDA_1994\",DATUM[\"D_GDA_1994\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],GEOGCS[\"GDA2020\",DATUM[\"GDA2020\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],METHOD[\"NTv2\"],PARAMETER[\"Dataset_australia/GDA94_GDA2020_conformal_and_distortion\",0.0]]",
                    "transformForward": true,
                    "name": "GDA94_GDA2020_C+D"
                }
            ]
        },
        {
            "geoTransforms": [
                {
                    "wkt": "GEOGTRAN[\"GDA94_GDA2020_C+D\",GEOGCS[\"GCS_GDA_1994\",DATUM[\"D_GDA_1994\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],GEOGCS[\"GDA2020\",DATUM[\"GDA2020\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],METHOD[\"NTv2\"],PARAMETER[\"Dataset_australia/GDA94_GDA2020_conformal_and_distortion\",0.0]]",
                    "transformForward": false,
                    "name": "GDA94_GDA2020_C+D"
                }
            ]
        },
        {
            "geoTransforms": [
                {
                    "wkt": "GEOGTRAN[\"WGS84_To_GDA2020_C+D\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],GEOGCS[\"GDA2020\",DATUM[\"GDA2020\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],METHOD[\"NTv2\"],PARAMETER[\"Dataset_australia/GDA94_GDA2020_conformal_and_distortion\",0.0]]",
                    "transformForward": true,
                    "name": "WGS84_To_GDA2020_C+D"
                }
            ]
        },
        {
            "geoTransforms": [
                {
                    "wkt": "GEOGTRAN[\"WGS84_To_GDA2020_C+D\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],GEOGCS[\"GDA2020\",DATUM[\"GDA2020\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],METHOD[\"NTv2\"],PARAMETER[\"Dataset_australia/GDA94_GDA2020_conformal_and_distortion\",0.0]]",
                    "transformForward": false,
                    "name": "WGS84_To_GDA2020_C+D"
                }
            ]
        }
    ],
    "supportsDatumTransformation": true,
    "archivingInfo": {
        "supportsHistoricMoment": false
    },
    "supportsClipping": true,
    "supportsSpatialFilter": true,
    "supportsTimeRelation": true,
    "supportsQueryDataElements": true,
    "maxRecordCount": 10000,
    "maxImageHeight": 4096,
    "maxImageWidth": 4096,
    "supportedExtensions": "WMSServer"
}
Example of Layer response:
Details
{
    "currentVersion": 10.91,
    "cimVersion": "2.9.0",
    "id": 0,
    "name": "{Layer Name}",
    "type": "Feature Layer",
    "description": "{Description}",
    "geometryType": "esriGeometryPoint",
    "sourceSpatialReference": {
        "wkid": 7844,
        "latestWkid": 7844,
        "xyTolerance": 8.983152841195213E-9,
        "zTolerance": 0.001,
        "mTolerance": 0.001,
        "falseX": -400,
        "falseY": -400,
        "xyUnits": 9.999999999999999E8,
        "falseZ": 0,
        "zUnits": 1,
        "falseM": 0,
        "mUnits": 1
    },
    "copyrightText": "{Copyright text}",
    "parentLayer": null,
    "subLayers": [],
    "minScale": 0,
    "maxScale": 0,
    "referenceScale": 0.0,
    "drawingInfo": {
        "renderer": {
            "type": "uniqueValue",
            "field1": "commodity",
            "uniqueValueInfos": [
                {
                    "symbol": {
                        "type": "esriPMS",
                        "url": "{itemID url}",
                        "imageData": "{base64imagedata}",
                        "contentType": "image/png",
                        "width": 8,
                        "height": 8,
                        "angle": 0,
                        "xoffset": 0,
                        "yoffset": 0
                    },
                    "value": "{Value}",
                    "label": "{Label}"
                },
                {
                    "symbol": {
                        "type": "esriPMS",
                        "url": "{itemID url}",
                        "imageData": "{base64imagedata}",
                        "contentType": "image/png",
                        "width": 8,
                        "height": 8,
                        "angle": 0,
                        "xoffset": 0,
                        "yoffset": 0
                    },
                    "value": "{Value}",
                    "label": "{Label}"
                }
            ],
            "fieldDelimiter": ",",
            "authoringInfo": {
                "colorRamp": {
                    "type": "multipart",
                    "colorRamps": [
                        {
                            "type": "algorithmic",
                            "algorithm": "esriHSVAlgorithm",
                            "fromColor": [
                                56,
                                168,
                                0,
                                255
                            ],
                            "toColor": [
                                255,
                                255,
                                0,
                                255
                            ]
                        },
                        {
                            "type": "algorithmic",
                            "algorithm": "esriHSVAlgorithm",
                            "fromColor": [
                                255,
                                255,
                                0,
                                255
                            ],
                            "toColor": [
                                255,
                                0,
                                0,
                                255
                            ]
                        }
                    ]
                }
            }
        },
        "scaleSymbols": true,
        "transparency": 0,
        "labelingInfo": null
    },
    "defaultVisibility": false,
    "extent": {
        "xmin": 105.69478031900007,
        "ymin": -35.11340999999993,
        "xmax": 128.99795249600004,
        "ymax": -10.421943299999953,
        "spatialReference": {
            "wkid": 7844,
            "latestWkid": 7844,
            "xyTolerance": 8.983152841195213E-9,
            "zTolerance": 0.001,
            "mTolerance": 0.001,
            "falseX": -400,
            "falseY": -400,
            "xyUnits": 1.125899906842624E13,
            "falseZ": -100000,
            "zUnits": 10000,
            "falseM": -100000,
            "mUnits": 10000
        }
    },
    "hasAttachments": false,
    "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText",
    "displayField": "short_name",
    "typeIdField": null,
    "subtypeFieldName": null,
    "subtypeField": null,
    "defaultSubtypeCode": null,
    "fields": [
        {
            "name": "oid",
            "type": "esriFieldTypeOID",
            "alias": "oid",
            "domain": null
        },
        {
            "name": "gid",
            "type": "esriFieldTypeInteger",
            "alias": "gid",
            "domain": null
        },
        {
            "name": "short_name",
            "type": "esriFieldTypeString",
            "alias": "short_name",
            "length": 50,
            "domain": null
        }
    ],
    "geometryField": {
        "name": "{field name}",
        "type": "esriFieldTypeGeometry",
        "alias": "{alias}"
    },
    "indexes": [
        {
            "name": "{name}",
            "fields": "oid",
            "isAscending": true,
            "isUnique": true,
            "description": ""
        },
        {
            "name": "{name}",
            "fields": "short_name",
            "isAscending": true,
            "isUnique": true,
            "description": ""
        }
    ],
    "subtypes": [],
    "relationships": [],
    "canModifyLayer": true,
    "canScaleSymbols": false,
    "hasLabels": false,
    "capabilities": "Map,Query,Data",
    "maxRecordCount": 10000,
    "supportsStatistics": true,
    "supportsExceedsLimitStatistics": true,
    "supportsAdvancedQueries": true,
    "supportedQueryFormats": "JSON, geoJSON, PBF",
    "isDataVersioned": false,
    "ownershipBasedAccessControlForFeatures": {
        "allowOthersToQuery": true
    },
    "useStandardizedQueries": true,
    "supportedSpatialRelationships": [
        "esriSpatialRelIntersects",
        "esriSpatialRelContains",
        "esriSpatialRelCrosses",
        "esriSpatialRelEnvelopeIntersects",
        "esriSpatialRelIndexIntersects",
        "esriSpatialRelOverlaps",
        "esriSpatialRelTouches",
        "esriSpatialRelWithin",
        "esriSpatialRelRelation"
    ],
    "advancedQueryCapabilities": {
        "useStandardizedQueries": true,
        "supportsStatistics": true,
        "supportsPercentileStatistics": true,
        "supportsHavingClause": true,
        "supportsOrderBy": true,
        "supportsDistinct": true,
        "supportsCountDistinct": true,
        "supportsPagination": true,
        "supportsLod": false,
        "supportsQueryWithLodSR": false,
        "supportsTrueCurve": true,
        "supportsQueryWithDatumTransformation": true,
        "supportsReturningQueryExtent": true,
        "supportsQueryWithDistance": true,
        "supportsSqlExpression": true,
        "supportsTimeRelation": true,
        "supportsSqlFormat": false,
        "supportsQueryAnalytic": true
    },
    "supportsDatumTransformation": true,
    "advancedQueryAnalyticCapabilities": {
        "supportsLinearRegression": true,
        "supportsAsync": false,
        "supportsPercentileAnalytic": false
    },
    "dateFieldsTimeReference": null,
    "preferredTimeReference": null,
    "datesInUnknownTimezone": false,
    "hasMetadata": true,
    "isDataArchived": false,
    "archivingInfo": {
        "supportsQueryWithHistoricMoment": false,
        "startArchivingMoment": -1
    },
    "supportsCoordinatesQuantization": true,
    "supportsDynamicLegends": true
}
Example of Legend response:
Details
{
    "layers": [
        {
            "layerId": 0,
            "layerName": "{Layer Name}",
            "layerType": "Feature Layer",
            "minScale": 0,
            "maxScale": 0,
            "legend": [
                {
                    "label": "{Label}",
                    "url": "{itemID url}",
                    "imageData": "{base64imagedata}",
                    "contentType": "image/png",
                    "groupId": "0",
                    "height": 20,
                    "width": 20,
                    "values": [
                        "{Value}"
                    ]
                },
                {
                    "label": "{Label}",
                    "url": "{itemID url}",
                    "imageData": "{base64imagedata}",
                    "contentType": "image/png",
                    "groupId": "0",
                    "height": 20,
                    "width": 20,
                    "values": [
                        "{Value}"
                    ]
                }
            ],
            "legendGroups": [
                {
                    "id": "0",
                    "heading": ""
                }
            ]
        }
    ]
}
Layer must have the following:
- Extent
- Should contain finite coordinate values
 - Should contain 
spatialReferenceobject containing the wkid 
 - Query capability
- All available fields must be queryable
 - If any fields are hidden, they must also be hidden from being queryable
 where=(1=1)query should be enabled and should return data- Query must allow features/geometry to be returned
 - Query should allow 
esriGeometryEnvelopegeometry as a filter 
 - Drawing Info/Rendering Info of types:
simple, with the following symbol types:- esriSMS
 - esriSLS
 - esriSFS
 - esriPFS
 - esriPMS
 - esriTS
 
uniqueValue, with the following symbol types:- esriSMS
 - esriSLS
 - esriSFS
 - esriPFS
 - esriPMS
 - esriTS
 
 - Geometry type must be:
- Polygon
 - Polyline
 - Point
 
 - If MinScale and MaxScale are defined:
- Must be in the correct order i.e.
- if both are provided, MaxScale should be less than MinScale
 - if MinScale is 0, this means the layer will be always visible until it reaches the MaxScale threshold
 - if MaxScale is 0, this means the layer will always be visible after it exceeds the MinScale threshold
 - if both values are 0, this means the layer will always render
 
 
 - Must be in the correct order i.e.
 - Export of PNG32 image tiles should be enabled and available
 
Example Postman Collection
Use the following Postman collection to test if your layer is likely to function as expected. This will help you test the endpoints mentioned above, as well as allow you to compare the resulting JSON against the requirements.
Dataverse Layers
To utilise dataverse as layers please ensure:
- Dataverse record is configured correctly.
 - At least some records have valid locations.
 
This is a BETA feature. More documentation is coming soon.
MapLibre Style Layers
A MapLibre style layer depends on a Style JSON and vector tile sources.
Required Endpoints
| Type | Example | 
|---|---|
| Main URL | https://example.com/styles/your-style/style.json | 
| Style JSON | https://example.com/data/v3/tiles.json | 
| Tile Endpoint | https://example.com/data/v3/{z}/{x}/{y}.pbf | 
This JSON references:
- 
Tile sources (vector, raster, GeoJSON)
 - 
Layer definitions (rendering rules)
 - 
Sprites and fonts (optional)
 
Slippy Image Layer
Required Endpoints
Slippy maps use a URL template to retrieve tiles based on the zoom level and x/y tile coordinates:
| Type | Example | 
|---|---|
| URL | /tiles/{z}/{x}/{y} | 
Where:
{z} = zoom level
{x} = tile column
{y} = tile row
Required Response
Details
{
 "currentVersion": 11.3,
 "cimVersion": "3.3.0",
 "serviceDescription": "<div style='text-align:Left;font-size:12pt'><p><span>World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 in select communities). For more information on this map, including the terms of use, visit us online at https://goto.arcgisonline.com/maps/World_Imagery<\/span><\/p><\/div>",
 "mapName": "Layers",
 "description": "<DIV STYLE=\"text-align:Left;font-size:12pt\"><P><SPAN>World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 in select communities). For more information on this map, including the terms of use, visit us online at https://goto.arcgisonline.com/maps/World_Imagery<\/SPAN><\/P><\/DIV>",
 "copyrightText": "Source: Esri, Maxar, Earthstar Geographics, and the GIS User Community",
 "supportsDynamicLayers": false,
 "layers": [
  {
   "id": 0,
   "name": "{{Layer Name}}",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 0,
   "maxScale": 0,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 1,
   "name": "Low Resolution 15m Imagery",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 0,
   "maxScale": 0,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 2,
   "name": "High Resolution 60cm Imagery",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 0,
   "maxScale": 0,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 3,
   "name": "High Resolution 30cm Imagery",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 0,
   "maxScale": 0,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 4,
   "name": "Citations",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 0,
   "maxScale": 0,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 5,
   "name": "1.9cm Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 106,
   "maxScale": 0,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 6,
   "name": "3.7cm Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 212,
   "maxScale": 106,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 7,
   "name": "7.5cm Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 425,
   "maxScale": 212,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 8,
   "name": "15cm Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 850,
   "maxScale": 425,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 9,
   "name": "30cm Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 1700,
   "maxScale": 850,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 10,
   "name": "60cm Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 3400,
   "maxScale": 1700,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 11,
   "name": "1.2m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 6800,
   "maxScale": 3400,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 12,
   "name": "2.4m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 13500,
   "maxScale": 6800,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 13,
   "name": "4.8m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 27000,
   "maxScale": 13500,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 14,
   "name": "9.6m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 54000,
   "maxScale": 27000,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 15,
   "name": "19m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 108000,
   "maxScale": 54000,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 16,
   "name": "38m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 216000,
   "maxScale": 108000,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 17,
   "name": "75m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 432000,
   "maxScale": 216000,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  },
  {
   "id": 18,
   "name": "150m Resolution Metadata",
   "parentLayerId": -1,
   "defaultVisibility": true,
   "subLayerIds": null,
   "minScale": 0,
   "maxScale": 432000,
   "type": "Feature Layer",
   "geometryType": "esriGeometryPolygon",
   "supportsDynamicLegends": true
  }
 ],
 "tables": [],
 "spatialReference": {
  "wkid": 102100,
  "latestWkid": 3857,
  "xyTolerance": 0.001,
  "zTolerance": 0.001,
  "mTolerance": 0.001,
  "falseX": -20037700,
  "falseY": -30241100,
  "xyUnits": 10000,
  "falseZ": -100000,
  "zUnits": 10000,
  "falseM": -100000,
  "mUnits": 10000
 },
 "singleFusedMapCache": true,
 "tileInfo": {
  "rows": 256,
  "cols": 256,
  "dpi": 96,
  "format": "JPEG",
  "compressionQuality": 90,
  "origin": {
   "x": -2.0037508342787E7,
   "y": 2.0037508342787E7
  },
  "spatialReference": {
   "wkid": 102100,
   "latestWkid": 3857,
   "xyTolerance": 0.001,
   "zTolerance": 0.001,
   "mTolerance": 0.001,
   "falseX": -2.2041259214859996E7,
   "falseY": -3.2754895973320004E7,
   "xyUnits": 1.4298050400783738E8,
   "falseZ": -100000,
   "zUnits": 10000,
   "falseM": -100000,
   "mUnits": 10000
  },
  "lods": [
   {
    "level": 0,
    "resolution": 156543.03392800014,
    "scale": 5.91657527591555E8
   },
   {
    "level": 1,
    "resolution": 78271.51696399994,
    "scale": 2.95828763795777E8
   },
   {
    "level": 2,
    "resolution": 39135.75848200009,
    "scale": 1.47914381897889E8
   },
   {
    "level": 3,
    "resolution": 19567.87924099992,
    "scale": 7.3957190948944E7
   },
   {
    "level": 4,
    "resolution": 9783.93962049996,
    "scale": 3.6978595474472E7
   },
   {
    "level": 5,
    "resolution": 4891.96981024998,
    "scale": 1.8489297737236E7
   },
   {
    "level": 6,
    "resolution": 2445.98490512499,
    "scale": 9244648.868618
   },
   {
    "level": 7,
    "resolution": 1222.992452562495,
    "scale": 4622324.434309
   },
   {
    "level": 8,
    "resolution": 611.4962262813797,
    "scale": 2311162.217155
   },
   {
    "level": 9,
    "resolution": 305.74811314055756,
    "scale": 1155581.108577
   },
   {
    "level": 10,
    "resolution": 152.87405657041106,
    "scale": 577790.554289
   },
   {
    "level": 11,
    "resolution": 76.43702828507324,
    "scale": 288895.277144
   },
   {
    "level": 12,
    "resolution": 38.21851414253662,
    "scale": 144447.638572
   },
   {
    "level": 13,
    "resolution": 19.10925707126831,
    "scale": 72223.819286
   },
   {
    "level": 14,
    "resolution": 9.554628535634155,
    "scale": 36111.909643
   },
   {
    "level": 15,
    "resolution": 4.77731426794937,
    "scale": 18055.954822
   },
   {
    "level": 16,
    "resolution": 2.388657133974685,
    "scale": 9027.977411
   },
   {
    "level": 17,
    "resolution": 1.1943285668550503,
    "scale": 4513.988705
   },
   {
    "level": 18,
    "resolution": 0.5971642835598172,
    "scale": 2256.994353
   },
   {
    "level": 19,
    "resolution": 0.29858214164761665,
    "scale": 1128.497176
   },
   {
    "level": 20,
    "resolution": 0.14929107082380833,
    "scale": 564.248588
   },
   {
    "level": 21,
    "resolution": 0.07464553541190416,
    "scale": 282.124294
   },
   {
    "level": 22,
    "resolution": 0.03732276770595208,
    "scale": 141.062147
   },
   {
    "level": 23,
    "resolution": 0.01866138385297604,
    "scale": 70.5310735
   }
  ]
 },
 "storageInfo": {
  "storageFormat": "esriMapCacheStorageModeCompactV2",
  "packetSize": 128
 },
 "initialExtent": {
  "xmin": -2.2815791376046296E7,
  "ymin": -2.199198808761979E7,
  "xmax": 2.2815791376046296E7,
  "ymax": 2.2036142269084483E7,
  "spatialReference": {
   "cs": "pcs",
   "wkid": 102100
  }
 },
 "fullExtent": {
  "xmin": -2.003750722959434E7,
  "ymin": -1.997186888040859E7,
  "xmax": 2.003750722959434E7,
  "ymax": 1.9971868880408563E7,
  "spatialReference": {
   "cs": "pcs",
   "wkid": 102100
  }
 },
 "datesInUnknownTimezone": false,
 "minScale": 0,
 "maxScale": 0,
 "units": "esriMeters",
 "supportedImageFormatTypes": "PNG32,PNG24,PNG,JPG,DIB,TIFF,EMF,PS,PDF,GIF,SVG,SVGZ,BMP",
 "documentInfo": {
  "Title": "Layers",
  "Author": "",
  "Comments": "<DIV STYLE=\"text-align:Left;font-size:12pt\"><P><SPAN>World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 in select communities). For more information on this map, including the terms of use, visit us online at https://goto.arcgisonline.com/maps/World_Imagery<\/SPAN><\/P><\/DIV>",
  "Subject": "imagery, satellite, aerial, 500m (World), 15m (World)",
  "Category": "",
  "Version": "3.1.0",
  "AntialiasingMode": "Fast",
  "TextAntialiasingMode": "Force",
  "Keywords": "World,Global,United States"
 },
 "supportsQueryDomains": true,
 "capabilities": "Map,Query,Data,Tilemap",
 "supportedQueryFormats": "JSON, geoJSON, PBF",
 "exportTilesAllowed": false,
 "referenceScale": 0.0,
 "datumTransformations": [
  {
   "geoTransforms": [
    {
     "wkid": 108001,
     "latestWkid": 1241,
     "transformForward": true,
     "name": "NAD_1927_To_NAD_1983_NADCON"
    }
   ]
  },
  {
   "geoTransforms": [
    {
     "wkid": 108001,
     "latestWkid": 1241,
     "transformForward": false,
     "name": "NAD_1927_To_NAD_1983_NADCON"
    }
   ]
  }
 ],
 "supportsDatumTransformation": true,
 "archivingInfo": {"supportsHistoricMoment": false},
 "supportsClipping": true,
 "supportsSpatialFilter": true,
 "supportsTimeRelation": true,
 "supportsQueryDataElements": true,
 "mapUnits": {"wkid": 9001},
 "maxRecordCount": 100,
 "maxImageHeight": 4096,
 "maxImageWidth": 4096,
 "supportedExtensions": "KmlServer"
}
WMS (Web Map Service) Layer
Layer Description
A WMS layer displays map images generated on-the-fly from geospatial data hosted on a remote server. WMS is an OGC standard, ideal for viewing dynamic maps from external sources.
Required Endpoints
Must have service=WMS in the URL. This is not case-sensitive.
You typically provide a base URL, and the application will handle the required parameters (e.g., LAYERS, STYLES, FORMAT, BBOX, etc.).
Example:
https://example.com/geoserver/ows?service=WMS&version=1.3.0&request=GetMap
Required Response
The server should return a map image (PNG, JPEG, etc.) in response to a GetMap request. The response is not JSON, but an image file.
WMTS (Web Map Tile Service) Layer
Layer Description
A WMTS layer serves pre-rendered map tiles (small images) for fast and efficient map display. WMTS is an OGC standard, ideal for basemaps and high-performance mapping.
Required Endpoints
Must have service=WMTS in the URL or follow a tile URL template.
Example:
https://example.com/geoserver/gwc/service/wmts?service=WMTS&request=GetTile&layer=layername&tilematrixset=EPSG:3857&TileMatrix=10&TileRow=512&TileCol=1024&format=image/png
Or a template:
https://example.com/tiles/{z}/{x}/{y}.png
Required Response
The server should return a map tile image (PNG, JPEG, etc.) for the requested tile coordinates.
WFS (Web Feature Service) Layer
Layer Description
A WFS layer provides access to vector features (points, lines, polygons) as raw data, not just images. WFS is an OGC standard, ideal for querying, downloading, and editing geospatial features.
Required Endpoints
Must have service=WFS in the URL. This is not case-sensitive.
Example:
https://example.com/geoserver/ows?service=WFS&version=2.0.0&request=GetFeature&typeName=layername
Required Response
The server should return feature data in GML, GeoJSON, or another supported vector format.
Terrain-RGB Layer
Layer Description
A Terrain-RGB layer provides elevation data encoded in raster tiles using RGB color channels. Each pixel's RGB values represent elevation measurements that can be decoded to create Digital Elevation Models (DEM) for 3D terrain visualization, slope analysis, and elevation queries.
Implementation Method
Configure as a Slippy Image Layer with terrain-RGB tiles.
Required Endpoints
Must serve terrain tiles in PNG format with RGB-encoded elevation data.
Example:
https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=YOUR_ACCESS_TOKEN
Elevation Decoding
Elevation values are decoded from RGB pixels using the formula:
elevation = -10000 + ((R * 256 * 256 + G * 256 + B) * 0.1)
Where R, G, B are the red, green, and blue channel values (0-255), and elevation is returned in meters.
Required Response
The server should return PNG tiles with RGB-encoded elevation data. Each pixel represents an elevation value that can be decoded using the standard Terrain-RGB formula.
Use Cases
- Digital Elevation Model (DEM) visualization
 - 3D terrain rendering
 - Elevation querying at specific coordinates
 - Slope and watershed analysis
 - Terrain profiling and cross-sections
 
Terrain Vector Layer
Layer Description
A Terrain Vector layer provides elevation data as vector features containing contour lines with elevation attributes. This layer type is ideal for displaying contour lines and performing elevation queries at specific points.
Implementation Method
Configure as a MapLibre Style Layer or query via Tilequery API for Mapbox Terrain vector tilesets.
Required Endpoints
Must provide vector tiles with contour features containing elevation properties.
Example:
https://api.mapbox.com/v4/mapbox.mapbox-terrain-v2/tilequery/{lon},{lat}.json?access_token=YOUR_ACCESS_TOKEN
Data Structure
Vector tiles must contain features in a "contour" layer with:
eleproperty: elevation value in metersindexproperty: for highlighting index contour lines- Geometry: polygon or line features representing elevation contours
 
Required Response
Details
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "id": 1,
      "geometry": {
        "type": "Point",
        "coordinates": [95.9345, 41.2565]
      },
      "properties": {
        "ele": 1920,
        "index": 2,
        "tilequery": {
          "distance": 0,
          "geometry": "polygon",
          "layer": "contour"
        }
      }
    }
  ]
}
Use Cases
- Contour line visualization
 - Elevation querying at specific points
 - Topographic map overlays
 - Elevation profiling along routes
 - Index contour highlighting
 
3D Terrain WMS Layer
Layer Description
A 3D Terrain WMS layer serves elevation and terrain data through the OGC Web Map Service standard. This layer type supports dynamic terrain visualization and can provide elevation data for 3D analysis applications.
Implementation Method
Configure as a WMS Layer with terrain-specific parameters.
Required Endpoints
Must support WMS GetMap requests with terrain/elevation layers.
Example:
https://example.com/geoserver/wms?service=WMS&version=1.1.1&request=GetMap&layers=terrain:elevation&styles=&bbox=-180,-90,180,90&width=512&height=512&srs=EPSG:4326&format=image/png
Supported Parameters
LAYERS: Terrain/elevation layer namesELEVATION: Elevation model specificationSTYLES: Terrain rendering styles (hillshade, slope, aspect)TIME: Temporal elevation data (if available)CUSTOM_PARAMS: Vertical exaggeration, lighting direction
Required Response
The server should return terrain imagery with proper elevation encoding or styled terrain visualization (hillshade, slope maps, etc.).
Use Cases
- Dynamic terrain visualization
 - Hillshade and slope analysis
 - Custom terrain styling
 - Multi-temporal elevation data
 - Integration with GIS workflows
 
3D Terrain WMTS Layer
Layer Description
A 3D Terrain WMTS layer provides pre-rendered terrain tiles for fast and efficient 3D terrain display. This layer type is optimized for performance and supports various terrain visualization styles.
Implementation Method
Configure as a WMTS Layer with terrain tile matrix sets.
Required Endpoints
Must support WMTS GetTile requests for terrain tiles.
Example:
https://example.com/terrain/wmts?service=WMTS&request=GetTile&version=1.0.0&layer=terrain_hillshade&style=default&tilematrixset=EPSG3857&tilematrix={z}&tilerow={y}&tilecol={x}&format=image/png
Tile Matrix Requirements
- Support for standard web mercator (EPSG:3857) projection
 - Multiple zoom levels for terrain detail
 - Consistent tile size (typically 256x256 or 512x512)
 - Proper tile matrix identifiers
 
Required Response
The server should return pre-rendered terrain tiles in the requested format (PNG, JPEG) with proper terrain visualization.
Use Cases
- High-performance terrain basemaps
 - Hillshade and relief visualization
 - Pre-styled terrain overlays
 - Mobile-optimized terrain display
 - Cached terrain rendering
 
MapLibre 3D Terrain Layer
Layer Description
A MapLibre 3D Terrain layer uses MapLibre GL's native 3D terrain capabilities to render elevation data with full 3D perspective, lighting, and advanced styling options. This layer type provides the most advanced 3D terrain visualization features.
Implementation Method
Configure as a MapLibre Style Layer with terrain source and 3D styling.
Required Endpoints
Must provide both style JSON and terrain-RGB or DEM tiles.
| Type | Example | 
|---|---|
| Style JSON | https://example.com/styles/terrain-3d/style.json | 
| Terrain Source | https://example.com/terrain-rgb/{z}/{x}/{y}.png | 
| Vector Source | https://example.com/terrain-vectors/{z}/{x}/{y}.pbf | 
Style JSON Requirements
The style JSON must include:
- Terrain source definition with terrain-RGB tiles
 - 3D terrain configuration with exaggeration settings
 - Layer definitions for terrain rendering
 - Optional hillshade and contour overlays
 
Details
{
  "version": 8,
  "sources": {
    "terrain": {
      "type": "raster-dem",
      "tiles": ["https://example.com/terrain-rgb/{z}/{x}/{y}.png"],
      "tileSize": 256,
      "encoding": "terrarium"
    }
  },
  "terrain": {
    "source": "terrain",
    "exaggeration": 1.5
  },
  "layers": [
    {
      "id": "terrain-hillshade",
      "type": "hillshade",
      "source": "terrain",
      "paint": {
        "hillshade-illumination-direction": 335,
        "hillshade-exaggeration": 0.8
      }
    }
  ]
}
Required Response
The style JSON should define complete 3D terrain rendering with proper terrain sources, layer styling, and 3D configuration parameters.
Use Cases
- Interactive 3D terrain visualization
 - Advanced terrain styling and lighting
 - Elevation-based data visualization
 - 3D route planning and analysis
 - Immersive geographic experiences
 - Custom terrain interactions and animations