public static WmtsTileMatrixSet Create(XElement tileMatrixSetElement)
        {
            XNamespace ns  = tileMatrixSetElement.Name.Namespace;
            XNamespace ows = "http://www.opengis.net/ows/1.1";

            var identifier = tileMatrixSetElement.Element(ows + "Identifier")?.Value;

            if (string.IsNullOrEmpty(identifier))
            {
                throw new ArgumentException("ows:Identifier element not found in TileMatrixSet.");
            }

            var supportedCrs = tileMatrixSetElement.Element(ows + "SupportedCRS")?.Value;

            if (string.IsNullOrEmpty(supportedCrs))
            {
                throw new ArgumentException("ows:SupportedCRS element not found in TileMatrixSet \"" + identifier + "\".");
            }

            var tileMatrixes = new List <WmtsTileMatrix>();

            foreach (var tileMatrixElement in tileMatrixSetElement.Descendants(ns + "TileMatrix"))
            {
                tileMatrixes.Add(WmtsTileMatrix.Create(tileMatrixElement));
            }

            if (tileMatrixes.Count <= 0)
            {
                throw new ArgumentException("No TileMatrix elements found in TileMatrixSet \"" + identifier + "\".");
            }

            return(new WmtsTileMatrixSet(identifier, supportedCrs, tileMatrixes));
        }
 public WmtsTileMatrixLayer(WmtsTileMatrix tileMatrix, int zoomLevel)
 {
     IsHitTestVisible = false;
     RenderTransform  = new MatrixTransform();
     TileMatrix       = tileMatrix;
     ZoomLevel        = zoomLevel;
 }
 public WmtsTileMatrixLayer(WmtsTileMatrix tileMatrix, int zoomLevel)
 {
     RenderTransform = new MatrixTransform();
     TileMatrix      = tileMatrix;
     ZoomLevel       = zoomLevel;
 }