コード例 #1
0
        public WmsCapabilities(XDocument doc)
            : this()
        {
            if (doc.Root.Name == "ServiceExceptionReport")
            {
                ServiceExceptionReport = new ServiceExceptionReport(doc.Root, "");
                return;
            }

            var node = doc.Element(XName.Get("WMT_MS_Capabilities"));

            if (node == null)
            {
                node = doc.Element(XName.Get("WMS_Capabilities"));
            }

            var att = node.Attribute(XName.Get("version"));

            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("version");
            }
            Version = new WmsVersion(att.Value);

            att = node.Attribute("updateSequence");
            if (att != null)
            {
                UpdateSequence = int.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            }

            var @namespace = Version.Version == WmsVersionEnum.Version_1_3_0
                            ? "http://www.opengis.net/wms"
                            : string.Empty;

            XmlObject.Namespace = @namespace;

            var element = node.Element(XName.Get("Service", @namespace));

            if (element == null)
            {
                XmlObject.Namespace = @namespace = string.Empty;
                element             = node.Element(XName.Get("Service", @namespace));
            }
            if (element == null)
            {
                throw WmsParsingException.ElementNotFound("Service");
            }

            Service = new Service(element, @namespace);

            element = node.Element(XName.Get("Capability", @namespace));

            if (element == null)
            {
                throw WmsParsingException.ElementNotFound("Capability");
            }

            Capability = new Capability(element, @namespace);
        }
コード例 #2
0
ファイル: Dimension.cs プロジェクト: andrepraska/andre
        public Dimension(XElement el, string ns)
        {
            var att = el.Attribute("name");

            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("name");
            }
            Name = att.Value;

            att = el.Attribute("units");
            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("units");
            }
            Units = att.Value;

            att        = el.Attribute("unitSymbol");
            UnitSymbol = att != null ? att.Value : string.Empty;

            att     = el.Attribute("default");
            Default = att != null ? att.Value : string.Empty;

            att = el.Attribute("multipleValues");
            if (att == null)
            {
                MultipleValues = null;
            }
            else
            {
                MultipleValues = att.Value == "1";
            }

            att = el.Attribute("nearestValue");
            if (att == null)
            {
                NearestValue = null;
            }
            else
            {
                NearestValue = att.Value == "1";
            }

            att = el.Attribute("current");
            if (att == null)
            {
                Current = null;
            }
            else
            {
                Current = att.Value == "1";
            }

            Value = el.Value;
        }
コード例 #3
0
        public AuthorityURL(XElement node, string @namespace)
        {
            var att = node.Attribute("name");

            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("name");
            }

            Name = att.Value;

            var element = node.Element(XName.Get("OnlineResource", @namespace));

            if (element != null)
            {
                OnlineResource = new OnlineResource(element, @namespace);
            }
        }
コード例 #4
0
        public MetadataURL(XElement node, string @namespace)
        {
            var att = node.Attribute("type");

            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("type");
            }

            Type = att.Value;

            var element = node.Element(XName.Get("Format", @namespace));

            Format = element == null ? "png" : element.Value;

            element = node.Element(XName.Get("OnlineResource", @namespace));
            if (element != null)
            {
                OnlineResource = new OnlineResource(element, @namespace);
            }
        }
コード例 #5
0
        public BoundingBox(XElement node, string nameSpace)
        {
            var att = node.Attribute(XName.Get("CRS"));

            if (att == null)
            {
                att = node.Attribute(XName.Get("crs"));
            }
            if (att == null)
            {
                att = node.Attribute(XName.Get("SRS"));
            }
            if (att == null)
            {
                att = node.Attribute(XName.Get("srs"));
            }
            if (att != null)
            {
                CRS = att.Value;
            }
            else
            {
                throw WmsParsingException.AttributeNotFound("CRS/SRS");
            }

            att = node.Attribute(XName.Get("minx"));
            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("minx");
            }
            MinX = double.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            att  = node.Attribute(XName.Get("maxx"));
            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("maxx");
            }
            MaxX = double.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            att  = node.Attribute(XName.Get("miny"));
            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("miny");
            }
            MinY = double.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            att  = node.Attribute(XName.Get("maxy"));
            if (att == null)
            {
                throw WmsParsingException.AttributeNotFound("maxy");
            }
            MaxY = double.Parse(att.Value, NumberFormatInfo.InvariantInfo);

            att = node.Attribute(XName.Get("resx"));
            if (att != null)
            {
                ResX = double.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            }
            att = node.Attribute(XName.Get("resy"));
            if (att != null)
            {
                ResY = double.Parse(att.Value, NumberFormatInfo.InvariantInfo);
            }
        }