public void KmlReadTestv2_0_response() { // instantiate and load the gpx test document. XmlStreamSource source = new XmlStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.Test.data.test.v2.0.response.kml")); KmlDocument document = new KmlDocument(source); object kml = document.Kml; if (kml is OsmSharp.IO.Xml.Kml.v2_0_response.kml) { // all ok here! OsmSharp.IO.Xml.Kml.v2_0_response.kml kml_type = (kml as OsmSharp.IO.Xml.Kml.v2_0_response.kml); // test the gpx test file content. Assert.IsNotNull(kml_type.Item, "No item was found!"); Assert.IsInstanceOf <OsmSharp.IO.Xml.Kml.v2_0_response.Response>(kml_type.Item, "Incorrect item type!"); OsmSharp.IO.Xml.Kml.v2_0_response.Response type = (kml_type.Item as OsmSharp.IO.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> /// Converts a response into an osm object. /// </summary> /// <param name="response"></param> /// <returns></returns> private void ConvertResponse(OsmSharp.IO.Xml.Kml.v2_0_response.Response response) { foreach (object item in response.Items) { if (item is OsmSharp.IO.Xml.Kml.v2_0_response.Document) { this.ConvertDocument(item as OsmSharp.IO.Xml.Kml.v2_0_response.Document); } else if (item is OsmSharp.IO.Xml.Kml.v2_0_response.Folder) { this.ConvertFolder(item as OsmSharp.IO.Xml.Kml.v2_0_response.Folder); } else if (item is OsmSharp.IO.Xml.Kml.v2_0_response.Placemark) { this.ConvertPlacemark(item as OsmSharp.IO.Xml.Kml.v2_0_response.Placemark); } else if (item is OsmSharp.IO.Xml.Kml.v2_0_response.Response) { this.ConvertResponse(item as OsmSharp.IO.Xml.Kml.v2_0_response.Response); } } }
public void KmlWriteTestv2_0_response() { // instantiate and load the gpx test document. XmlStreamSource source = new XmlStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.Test.data.test.v2.0.response.kml")); KmlDocument document = new KmlDocument(source); object kml = document.Kml; if (kml is OsmSharp.IO.Xml.Kml.v2_0_response.kml) { // 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.IO.Xml.Kml.v2_0_response.kml) { // all ok here! OsmSharp.IO.Xml.Kml.v2_0_response.kml kml_type = (kml as OsmSharp.IO.Xml.Kml.v2_0_response.kml); // test the gpx test file content. Assert.IsNotNull(kml_type.Item, "No item was found!"); Assert.IsInstanceOf <OsmSharp.IO.Xml.Kml.v2_0_response.Response>(kml_type.Item, "Incorrect item type!"); OsmSharp.IO.Xml.Kml.v2_0_response.Response type = (kml_type.Item as OsmSharp.IO.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(); } else { Assert.Fail("No kml data was read, or data was of the incorrect type!"); } document.Close(); source.Close(); }