public void KmlReadTestv2_0_response() { // instantiate and load the gpx test document. XmlStreamSource source = new XmlStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.Test.Unittests.test.v2.0.response.kml")); KmlDocument document = new KmlDocument(source); object kml = document.Kml; if (kml is OsmSharp.Xml.Kml.v2_0_response.kml) { // all ok here! OsmSharp.Xml.Kml.v2_0_response.kml kml_type = (kml as OsmSharp.Xml.Kml.v2_0_response.kml); // test the gpx test file content. Assert.IsNotNull(kml_type.Item, "No item was found!"); Assert.IsInstanceOf<OsmSharp.Xml.Kml.v2_0_response.Response>(kml_type.Item, "Incorrect item type!"); OsmSharp.Xml.Kml.v2_0_response.Response type = (kml_type.Item as OsmSharp.Xml.Kml.v2_0_response.Response); Assert.AreEqual(type.Items.Length, 8, "Incorrect number of items in response!"); } else { Assert.Fail("No kml data was read, or data was of the incorrect type!"); } document.Close(); source.Close(); }
/// <summary> /// Reads the actual Kml. /// </summary> private void DoReadKml() { // seek to the beginning of the stream. if (_stream.CanSeek) { _stream.Seek(0, SeekOrigin.Begin); } // instantiate and load the gpx test document. XmlStreamSource source = new XmlStreamSource(_stream); KmlDocument document = new KmlDocument(source); object kml = document.Kml; switch (document.Version) { case KmlVersion.Kmlv2_1: this.ConvertKml(kml as OsmSharp.Xml.Kml.v2_1.KmlType); break; case KmlVersion.Kmlv2_0_response: this.ConvertKml(kml as OsmSharp.Xml.Kml.v2_0_response.kml); break; case KmlVersion.Kmlv2_0: this.ConvertKml(kml as OsmSharp.Xml.Kml.v2_0.kml); break; } }
public void KmlWriteTestv2_1() { // instantiate and load the gpx test document. XmlStreamSource source = new XmlStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.Test.Unittests.test.v2.1.kml")); KmlDocument document = new KmlDocument(source); object kml = document.Kml; if (kml is OsmSharp.Xml.Kml.v2_1.KmlType) { // all ok here! // delete the target file. MemoryStream write_file = new MemoryStream(); // create a new xml source. XmlStreamSource write_source = new XmlStreamSource(write_file); KmlDocument kml_target = new KmlDocument(write_source); // set the target data the same as the source document. kml_target.Kml = kml; // save the data. kml_target.Save(); // close the old document. document.Close(); source.Close(); // check to see if the data was writter correctly. // instantiate and load the osm test document. source = new XmlStreamSource(write_file); document = new KmlDocument(source); kml = document.Kml; // check the result that was written and then read again. if (kml is OsmSharp.Xml.Kml.v2_1.KmlType) { // all ok here! OsmSharp.Xml.Kml.v2_1.KmlType kml_type = (kml as OsmSharp.Xml.Kml.v2_1.KmlType); // test the gpx test file content. Assert.IsNotNull(kml_type.Item, "No item was found!"); Assert.IsInstanceOf<OsmSharp.Xml.Kml.v2_1.FolderType>(kml_type.Item, "Incorrect item type!"); OsmSharp.Xml.Kml.v2_1.FolderType type = (kml_type.Item as OsmSharp.Xml.Kml.v2_1.FolderType); Assert.AreEqual(type.Items1.Length, 10, "Incorrect number of items in folder!"); } else { Assert.Fail("No kml data was read, or data was of the incorrect type!"); } document.Close(); source.Close(); } else { Assert.Fail("No kml data was read, or data was of the incorrect type!"); } document.Close(); source.Close(); }