コード例 #1
0
        private void FindVersionFromSource()
        {
            // try to find the xmlns and the correct version to use.
            XmlReader reader = _source.GetReader();

            while (!reader.EOF)
            {
                if (reader.NodeType == XmlNodeType.Element &&
                    reader.Name == "kml")
                {
                    string ns = reader.GetAttribute("xmlns");
                    switch (ns)
                    {
                    case "http://earth.google.com/kml/2.0":
                        // trick here for the google maps geocoding resultes.
                        reader.Read();
                        while (!reader.EOF)
                        {
                            if (reader.NodeType == XmlNodeType.Element &&
                                reader.Name.ToLower() == "response")
                            {
                                _version = KmlVersion.Kmlv2_0_response;
                                break;
                            }
                            else if (reader.NodeType == XmlNodeType.Element)
                            {
                                _version = KmlVersion.Kmlv2_0;
                                break;
                            }
                            reader.Read();
                        }
                        break;

                    case "http://earth.google.com/kml/2.1":
                        _version = KmlVersion.Kmlv2_1;
                        break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.Element)
                {
                    throw new XmlException("First element expected: kml!");
                }

                // check end conditions.
                if (_version != KmlVersion.Unknown)
                {
                    reader.Close();
                    reader = null;
                    break;
                }

                reader.Read();
            }
        }
コード例 #2
0
 private void FindVersionFromObject()
 {
     _version = KmlVersion.Unknown;
     if (_kml_object is OsmSharp.Xml.Kml.v2_0.kml)
     {
         _version = KmlVersion.Kmlv2_0;
     }
     else if (_kml_object is OsmSharp.Xml.Kml.v2_0_response.kml)
     {
         _version = KmlVersion.Kmlv2_0_response;
     }
     else if (_kml_object is OsmSharp.Xml.Kml.v2_1.KmlType)
     {
         _version = KmlVersion.Kmlv2_1;
     }
 }
コード例 #3
0
        private void FindVersionFromSource()
        {
            XmlReader reader = this._source.GetReader();

            while (!reader.EOF)
            {
                if (reader.NodeType == XmlNodeType.Element && reader.Name == "kml")
                {
                    string attribute = reader.GetAttribute("xmlns");
                    if (!(attribute == "http://earth.google.com/kml/2.0"))
                    {
                        if (attribute == "http://earth.google.com/kml/2.1")
                        {
                            this._version = KmlVersion.Kmlv2_1;
                        }
                    }
                    else
                    {
                        reader.Read();
                        while (!reader.EOF)
                        {
                            if (reader.NodeType == XmlNodeType.Element && reader.Name.ToLower() == "response")
                            {
                                this._version = KmlVersion.Kmlv2_0_response;
                                break;
                            }
                            if (reader.NodeType == XmlNodeType.Element)
                            {
                                this._version = KmlVersion.Kmlv2_0;
                                break;
                            }
                            reader.Read();
                        }
                    }
                }
                else if (reader.NodeType == XmlNodeType.Element)
                {
                    throw new XmlException("First element expected: kml!");
                }
                if (this._version != KmlVersion.Unknown)
                {
                    break;
                }
                reader.Read();
            }
        }
コード例 #4
0
 private void FindVersionFromObject()
 {
     this._version = KmlVersion.Unknown;
     if (this._kml_object is OsmSharp.IO.Xml.Kml.v2_0.kml)
     {
         this._version = KmlVersion.Kmlv2_0;
     }
     else if (this._kml_object is OsmSharp.IO.Xml.Kml.v2_0_response.kml)
     {
         this._version = KmlVersion.Kmlv2_0_response;
     }
     else
     {
         if (!(this._kml_object is KmlType))
         {
             return;
         }
         this._version = KmlVersion.Kmlv2_1;
     }
 }
コード例 #5
0
ファイル: KmlDocument.cs プロジェクト: jorik041/osmsharp
 /// <summary>
 /// Creates a new kml document based on an xml source.
 /// </summary>
 /// <param name="source"></param>
 public KmlDocument(IXmlSource source)
 {
     _source = source;
     _version = KmlVersion.Unknown;
 }
コード例 #6
0
ファイル: KmlDocument.cs プロジェクト: jorik041/osmsharp
        private void FindVersionFromSource()
        {
            // try to find the xmlns and the correct version to use.
            XmlReader reader = _source.GetReader();
            while (!reader.EOF)
            {
                if (reader.NodeType == XmlNodeType.Element
                    && reader.Name == "kml")
                {
                    string ns = reader.GetAttribute("xmlns");
                    switch (ns)
                    {
                        case "http://earth.google.com/kml/2.0":
                            // trick here for the google maps geocoding resultes.
                            reader.Read();
                            while (!reader.EOF)
                            {
                                if (reader.NodeType == XmlNodeType.Element
                                    && reader.Name.ToLower() == "response")
                                {
                                    _version = KmlVersion.Kmlv2_0_response;
                                    break;
                                }
                                else if (reader.NodeType == XmlNodeType.Element)
                                {
                                    _version = KmlVersion.Kmlv2_0;
                                    break;
                                }
                                reader.Read();
                            }
                            break;
                        case "http://earth.google.com/kml/2.1":
                            _version = KmlVersion.Kmlv2_1;
                            break;
                    }
                }
                else if (reader.NodeType == XmlNodeType.Element)
                {
                    throw new XmlException("First element expected: kml!");
                }

                // check end conditions.
                if (_version != KmlVersion.Unknown)
                {
                    reader.Close();
                    reader = null;
                    break;
                }

                reader.Read();
            }
        }
コード例 #7
0
ファイル: KmlDocument.cs プロジェクト: jorik041/osmsharp
 private void FindVersionFromObject()
 {
     _version = KmlVersion.Unknown;
     if (_kml_object is OsmSharp.Tools.Xml.Kml.v2_0.kml)
     {
         _version = KmlVersion.Kmlv2_0;
     }
     else if (_kml_object is OsmSharp.Tools.Xml.Kml.v2_0_response.kml)
     {
         _version = KmlVersion.Kmlv2_0_response;
     }
     else if (_kml_object is OsmSharp.Tools.Xml.Kml.v2_1.KmlType)
     {
         _version = KmlVersion.Kmlv2_1;
     }
 }
コード例 #8
0
 public KmlDocument(IXmlSource source)
 {
     this._source  = source;
     this._version = KmlVersion.Unknown;
 }