public void KmlReadTestv2_0() { // instantiate and load the gpx test document. XmlStreamSource source = new XmlStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.UnitTests.test.v2.0.kml")); KmlDocument document = new KmlDocument(source); object kml = document.Kml; if (kml is OsmSharp.Xml.Kml.v2_0.kml) { // all ok here! OsmSharp.Xml.Kml.v2_0.kml kml_type = (kml as OsmSharp.Xml.Kml.v2_0.kml); // test the gpx test file content. Assert.IsNotNull(kml_type.Item, "No item was found!"); Assert.IsInstanceOf <OsmSharp.Xml.Kml.v2_0.Placemark>(kml_type.Item, "Incorrect item type!"); OsmSharp.Xml.Kml.v2_0.Placemark type = (kml_type.Item as OsmSharp.Xml.Kml.v2_0.Placemark); Assert.AreEqual(type.Items.Length, 3, "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(); }
public void KmlWriteTestv2_0() { // instantiate and load the gpx test document. XmlStreamSource source = new XmlStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.UnitTests.test.v2.0.kml")); KmlDocument document = new KmlDocument(source); object kml = document.Kml; if (kml is OsmSharp.Xml.Kml.v2_0.kml) { // all ok here! 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_0.kml) { // all ok here! OsmSharp.Xml.Kml.v2_0.kml kml_type = (kml as OsmSharp.Xml.Kml.v2_0.kml); // test the gpx test file content. Assert.IsNotNull(kml_type.Item, "No item was found!"); Assert.IsInstanceOf <OsmSharp.Xml.Kml.v2_0.Placemark>(kml_type.Item, "Incorrect item type!"); OsmSharp.Xml.Kml.v2_0.Placemark type = (kml_type.Item as OsmSharp.Xml.Kml.v2_0.Placemark); Assert.AreEqual(type.Items.Length, 3, "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(); }
/// <summary> /// Reads a kml v2.0 object into corresponding geometries. /// </summary> /// <param name="kml"></param> private void ConvertKml(OsmSharp.Xml.Kml.v2_0.kml kml) { this.GeometryCollection.Clear(); if (kml.Item is OsmSharp.Xml.Kml.v2_0.Document) { this.ConvertDocument(kml.Item as OsmSharp.Xml.Kml.v2_0.Document); } else if (kml.Item is OsmSharp.Xml.Kml.v2_0.Folder) { this.ConvertFolder(kml.Item as OsmSharp.Xml.Kml.v2_0.Folder); } else if (kml.Item is OsmSharp.Xml.Kml.v2_0.Placemark) { this.ConvertPlacemark(kml.Item as OsmSharp.Xml.Kml.v2_0.Placemark); } }