public static void Run() { // Create our Kml var folder = new Folder(); folder.Id = "f0"; folder.Name = "Folder 0"; var placemark = new Placemark(); placemark.Id = "pm0"; placemark.Name = "Placemark 0"; folder.AddFeature(placemark); placemark = new Placemark(); placemark.Id = "pm1"; placemark.Name = "Placemark 1"; folder.AddFeature(placemark); var kml = new Kml(); kml.Feature = folder; // Display to the user var serializer = new Serializer(); serializer.Serialize(kml); Console.WriteLine("Original Kml:\n" + serializer.Xml); // This is what we're going to change to placemark = new Placemark(); placemark.Geometry = new Point { Coordinate = new Vector(38, -120) }; placemark.Name = "new name"; placemark.TargetId = "pm0"; var update = new Update(); update.AddUpdate(new ChangeCollection() { placemark }); serializer.Serialize(update); Console.WriteLine("\nUpdate:\n" + serializer.Xml); // Run the update var file = KmlFile.Create(kml, false); update.Process(file); serializer.Serialize(kml); Console.WriteLine("\nUpdated Kml:\n" + serializer.Xml); }
public void TestChangeCoordinates() { // Create the target var point = new Point(); point.Coordinate = new Vector(38.38, -122.122); var placemark = new Placemark(); placemark.Id = "placemark123"; placemark.Geometry = point; placemark.Name = "placemark name"; var file = KmlFile.Create(placemark, false); // Now create the Update const double latitude = -38.38; const double longitude = 122.122; point = new Point(); point.Coordinate = new Vector(latitude, longitude); placemark = new Placemark(); placemark.Geometry = point; placemark.TargetId = "placemark123"; var change = new ChangeCollection(); change.Add(placemark); var update = new Update(); update.AddUpdate(change); // Now test the update worked update.Process(file); placemark = file.Root as Placemark; Assert.That(placemark, Is.Not.Null); Assert.That(placemark.Id, Is.EqualTo("placemark123")); Assert.That(placemark.Name, Is.EqualTo("placemark name")); point = placemark.Geometry as Point; Assert.That(point, Is.Not.Null); Assert.That(point.Coordinate.Latitude, Is.EqualTo(latitude)); Assert.That(point.Coordinate.Longitude, Is.EqualTo(longitude)); }
public void TestManyDeletes() { const int NumberOfFolders = 100; var folder = new Folder(); for (int i = 0; i < NumberOfFolders; ++i) { folder.AddFeature(CreateFeature(i, true)); // Add the features with their Id set } Assert.That(folder.Features.Count(), Is.EqualTo(NumberOfFolders)); KmlFile file = KmlFile.Create(folder, false); var update = new Update(); for (int i = 0; i < NumberOfFolders; ++i) { var delete = new DeleteCollection(); delete.Add(CreateFeature(i, false)); // This time set the TargetId update.AddUpdate(delete); } update.Process(file); Assert.That(folder.Features.Count(), Is.EqualTo(0)); }