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);
        }