public static LayerType AddToCapabilities(this Dataset dataset, string name, Capabilities capabilities) { string projectionStr = dataset.GetProjection(); dataset.GetExtent(out double xMin, out double yMin, out double xMax, out double yMax); int minLevel = 0; int maxLevel = 19; dataset.GetSuitableZoom(ref minLevel, ref maxLevel); LayerType layerType = CapabilitiesHelper.AddToCapabilities(capabilities, name, projectionStr, xMin, yMin, xMax, yMax, minLevel, maxLevel); string href = capabilities.GetHref(WmtsOperationType.GetTile, WmtsRequestType.REST); string tileMatrixSet = null; using (var spatialReference = dataset.GetSpatialReference()) { tileMatrixSet = spatialReference.GetAttrValue("GEOGCS", 0); } URLTemplateType tileTemplate = CapabilitiesHelper.CreateTileResourceURL(href, name, tileMatrixSet); layerType.ResourceURL = new URLTemplateType[] { tileTemplate }; return(layerType); }