public void PropertyChangedIsFiredOnValuesAdd() { var network = MapTestHelper.CreateMockNetwork(); var networkCoverage = new NetworkCoverage { Network = network }; var networkCoverageFeatureCollection = new NetworkCoverageFeatureCollection { NetworkCoverage = networkCoverage, NetworkCoverageFeatureType = NetworkCoverageFeatureType.Locations }; var callCount = 0; ((INotifyPropertyChanged)networkCoverageFeatureCollection).PropertyChanged += (s, e) => { callCount++; }; networkCoverage.Locations.Values.Add(new NetworkLocation { Branch = network.Branches[0], Offset = 0.0 }); //2 one for component, one for argument Assert.AreEqual(2, callCount); }
public void ShowNetworkCoverageAsLayer() { // create network var network = MapTestHelper.CreateMockNetwork(); mocks.ReplayAll(); var networkCoverage = new NetworkCoverage { Network = network }; var networkCoverageLayer = new NetworkCoverageLayer { NetworkCoverage = networkCoverage }; // set values var branch1 = network.Branches[0]; var branch2 = network.Branches[1]; networkCoverage[new NetworkLocation(branch1, 4.0)] = 0.1; networkCoverage[new NetworkLocation(branch1, 16.0)] = 0.2; networkCoverage[new NetworkLocation(branch2, 4.0)] = 0.3; networkCoverage[new NetworkLocation(branch2, 12.0)] = 0.4; networkCoverage[new NetworkLocation(branch2, 16.0)] = 0.5; var map = new Map(new Size(1000, 1000)); map.Layers.Add(networkCoverageLayer); MapTestHelper.Show(map); }
public void RenderBilFileAsCoverage() { var map = new Map(new Size(400, 200)) { Name = "map1" }; string fileName = RasterDataPath + "SchematisatieInt.bil"; var rasterLayer = new RegularGridCoverageLayer(); var rasterFeatureProvider = new GdalFeatureProvider { Path = fileName }; rasterLayer.CustomRenderers.Add(new RegularGridCoverageRenderer(rasterLayer)); // add optimized custom gdal renderer rasterLayer.DataSource = rasterFeatureProvider; map.Layers.Add(rasterLayer); IRegularGridCoverage grid = rasterFeatureProvider.Grid; IList <int> values = grid.GetValues <int>(); Assert.AreEqual(9, values.Count); MapTestHelper.Show(map); }
public void ShowUsingMapView() { var points = new[, ] { { new Point(0, 0), new Point(1, 0), new Point(2, 0) }, { new Point(0, 1), new Point(1, 1), new Point(2, 1) }, }; var coverage = new DiscreteGridPointCoverage(2, 3, points.Cast <IPoint>()); var values = new[, ] { { 1.0, 2.0 }, { 3.0, 4.0 }, { 5.0, 6.0 } }; coverage.SetValues(values); var coverageLayer = new DiscreteGridPointCoverageLayer { Coverage = coverage }; var map = new Map { Layers = { coverageLayer } }; MapTestHelper.ShowModal(map); }
public void ReadEsriMdbGeodatabase() { var map = new Map(new Size(400, 200)) { Name = "map1" }; const string fileName = SharpMapTestDataPath + "Turtle.mdb"; IList <OgrFeatureProvider> providers = new List <OgrFeatureProvider>(); var numberOfLayers = OgrFeatureProvider.GetNumberOfLayers(fileName); for (int i = 0; i < numberOfLayers; i++) { var provider = new OgrFeatureProvider(fileName, i); providers.Add(provider); log.DebugFormat("Added layer {0}", provider.Name); } var vectorLayer = new VectorLayer { DataSource = providers[6] }; map.Layers.Add(vectorLayer); MapTestHelper.Show(map); }
public void ShowUsingMapViewWhereValuesContainNoDataValue() { var points = new[, ] { { new Point(0, 0), new Point(1, 0) }, { new Point(2, 1), new Point(3, 1.5) }, { new Point(1, 2), new Point(3, 3) } }; var coverage = new DiscreteGridPointCoverage(2, 3, points.Cast <IPoint>()); var values = new[, ] { { 1.0, 2.0 }, { 3.0, 4.0 }, { 5.0, -999.0 } }; coverage.Components[0].NoDataValues = new [] { -999.0 }; coverage.SetValues(values); var coverageLayer = new DiscreteGridPointCoverageLayer { Coverage = coverage }; var map = new Map { Layers = { coverageLayer } }; MapTestHelper.Show(map); }
public void ShowMapWithPointLayerBasedOnFeatureDataTable() { var table = new FeatureDataTable(); table.Columns.Add("X", typeof(double)); table.Columns.Add("Y", typeof(double)); table.Columns.Add("Category", typeof(string)); DataRow row = table.NewRow(); table.Rows.Add(row); row.ItemArray = new object[] { 100000, 400000, "testCategory" }; row = table.NewRow(); table.Rows.Add(row); row.ItemArray = new object[] { 200000, 400000, "TestCategory" }; var dataTablePoint = new DataTablePoint(table, "Category", "X", "Y"); var vectorLayer = new VectorLayer("test", dataTablePoint); vectorLayer.Theme = ThemeFactory.CreateSingleFeatureTheme(vectorLayer.Style.GeometryType, Color.Blue, 10); var map = new Map { Name = "testmap" }; map.Layers.Add(vectorLayer); map.Center = new Coordinate(150000, 400000); map.Zoom = 200000; //map.ZoomToExtents(); //map.ZoomToFit(map.Envelope); MapTestHelper.ShowModal(map); }
public void ShowUsingMapViewWithFaces() { var points = new[, ] { { new Point(0.0, 1.0), new Point(0.0, 0.0) }, { new Point(0.5, 1.5), new Point(1.0, 0.0) }, { new Point(1.0, 2.0), new Point(2.0, 2.0) } }; var coverage = new DiscreteGridPointCoverage(3, 2, points.Cast <IPoint>()); var values = new[, ] { { 1.0, 2.0 }, { 3.0, 4.0 }, { 5.0, 6.0 } }; coverage.SetValues(values); var coverageLayer = new DiscreteGridPointCoverageLayer { Coverage = coverage, ShowFaces = true }; var map = new Map { Layers = { coverageLayer } }; MapTestHelper.Show(map); }
public void ShowNetworkCoverageAsLayerWithNoneSegmentationType() { // create network var network = MapTestHelper.CreateMockNetwork(); mocks.ReplayAll(); var networkCoverage = new NetworkCoverage { Network = network, SegmentGenerationMethod = SegmentGenerationMethod.None }; var networkCoverageLayer = new NetworkCoverageGroupLayer { NetworkCoverage = networkCoverage }; // set values var branch1 = network.Branches[0]; var branch2 = network.Branches[1]; networkCoverage[new NetworkLocation(branch1, 4.0)] = 0.1; networkCoverage[new NetworkLocation(branch1, 16.0)] = 0.2; networkCoverage[new NetworkLocation(branch2, 4.0)] = 0.3; networkCoverage[new NetworkLocation(branch2, 12.0)] = 0.4; networkCoverage[new NetworkLocation(branch2, 16.0)] = 0.5; var map = new Map(new Size(1000, 1000)); map.Layers.Add(networkCoverageLayer); MapTestHelper.ShowModal(map); }
public void ShowRegularGridWithQuantityThemeOnMap() { IRegularGridCoverage grid2D = new RegularGridCoverage(200, 200, 10, 10) { Name = "pressure" }; double[] values = new double[grid2D.SizeX * grid2D.SizeY]; double min = 0; double max = 0; for (int i = 0; i < values.Length; i++) { values[i] = i; if (values[i] > max) { max = values[i]; } if (values[i] < min) { min = values[i]; } } grid2D.SetValues(values); var map = new Map(); var rasterLayer = new RegularGridCoverageLayer { Grid = grid2D }; var defaultStyle = new VectorStyle { GeometryType = typeof(IPolygon), Line = Pens.SeaGreen }; double interval = (max - min) / 10; var intervalList = new List <Interval>(); double start = min; double stop = min + interval; for (int i = 0; i < 10; i++) { intervalList.Add(new Interval(start, stop)); start = stop; stop += interval; } QuantityTheme quantityTheme = ThemeFactory.CreateQuantityTheme(grid2D.Components[0].Name, defaultStyle, ColorBlend.BlueToGreen, 10, intervalList ); rasterLayer.Theme = quantityTheme; map.Layers.Add(rasterLayer); MapTestHelper.ShowModal(map); }
public void CreateFeatureCollectionForNetworkLocationsAndSegments() { var network = MapTestHelper.CreateMockNetwork(); var networkCoverage = new NetworkCoverage { Network = network }; var networkLocationFeatureProvider = new NetworkCoverageFeatureCollection { NetworkCoverage = networkCoverage, NetworkCoverageFeatureType = NetworkCoverageFeatureType.Locations }; var segmentFeatureProvider = new NetworkCoverageFeatureCollection { NetworkCoverage = networkCoverage, NetworkCoverageFeatureType = NetworkCoverageFeatureType.Segments }; networkCoverage.Locations.Values.Add(new NetworkLocation { Branch = network.Branches[0], Offset = 0.0 }); Assert.AreEqual(1, networkLocationFeatureProvider.Features.Count); Assert.AreEqual(1, segmentFeatureProvider.Features.Count); }
public void RenderAscFileAsCoverage() { var map = new Map(new Size(10, 20)) { Name = "map1" }; string fileName = RasterDataPath + "test.ASC"; // const string fileName = @"D:\habitat\boomkikker_a_huidig.asc"; var newFileName = Path.GetFullPath(Path.GetFileName(fileName)); File.Copy(Path.GetFullPath(fileName), newFileName, true); var fileInfo = new FileInfo(newFileName); if (fileInfo.IsReadOnly) { fileInfo.IsReadOnly = false; } var rasterLayer = new RegularGridCoverageLayer(); var rasterFeatureProvider = new GdalFeatureProvider { Path = fileName }; //rasterLayer.CustomRenderers.Add(new GdalRenderer()); // add optimized custom gdal renderer rasterLayer.CustomRenderers.Add(new RegularGridCoverageRenderer(rasterLayer)); rasterLayer.DataSource = rasterFeatureProvider; map.Layers.Add(rasterLayer); MapTestHelper.Show(map); }
public void ShowNetworkCoverageAsLayerWithSegmentBetweenLocationsFullyCoveredType() { // create network var network = MapTestHelper.CreateMockNetwork(); mocks.ReplayAll(); var networkCoverage = new NetworkCoverage { Network = network, IsTimeDependent = true, SegmentGenerationMethod = SegmentGenerationMethod.SegmentBetweenLocationsFullyCovered }; var networkCoverageLayer = new NetworkCoverageGroupLayer { NetworkCoverage = networkCoverage }; var time1 = new DateTime(2010, 1, 1); // set values var branch1 = network.Branches[0]; var branch2 = network.Branches[1]; networkCoverage[time1, new NetworkLocation(branch1, 0.0)] = 0.1; networkCoverage[time1, new NetworkLocation(branch1, 10.0)] = 0.2; networkCoverage[time1, new NetworkLocation(branch1, 50.0)] = 0.3; networkCoverage[time1, new NetworkLocation(branch1, 100.0)] = 0.4; // no coverage point for branch2 offset 0 // the fully covered option will look for the begin node point // on other branches (branch 1 offset 100 == node2 == branch2 offset 0) networkCoverage[time1, new NetworkLocation(branch2, 20.0)] = 0.5; networkCoverage[time1, new NetworkLocation(branch2, 40.0)] = 0.6; networkCoverage[time1, new NetworkLocation(branch2, 60.0)] = 0.7; networkCoverage[time1, new NetworkLocation(branch2, 100.0)] = 0.8; var time2 = new DateTime(2010, 1, 2); foreach (var location in networkCoverage.Locations.Values) { networkCoverage[time2, location] = (double)networkCoverage[time1, location] * 2; } networkCoverage.Locations.InterpolationType = InterpolationType.Constant; networkCoverageLayer.SegmentLayer.LabelLayer.LabelColumn = "SegmentNumber"; networkCoverageLayer.SegmentLayer.LabelLayer.Visible = true; var map = new Map(new Size(1000, 1000)); map.Layers.Add(networkCoverageLayer); networkCoverageLayer.SetCurrentTimeSelection(time2, time2); MapTestHelper.ShowModal(map); }
public void Show3BandTif() { var path = rasterDataPath + @"\..\dvim3.tif"; var map = new Map { Layers = { new GdalRasterLayer { DataSource = new GdalFeatureProvider{ Path = path } } } }; MapTestHelper.ShowModal(map); }
public void ReadTryoutBergenTif() { var path = rasterDataPath + "Tryout_Bergen.tif"; var map = new Map { Layers = { new GdalRasterLayer { DataSource = new GdalFeatureProvider{ Path = path } } } }; MapTestHelper.Show(map); }
public void ShowWsiearthTif() { var path = rasterDataPath + @"\..\wsiearth.tif"; var map = new Map { Layers = { new GdalRasterLayer { DataSource = new GdalFeatureProvider{ Path = path } } } }; MapTestHelper.Show(map); }
public void ShowUsingMapViewWithFacesAndTimeNavigation() { var points = new[, ] { { new Point(0.0, 1.0), new Point(0.0, 0.0) }, { new Point(0.5, 1.5), new Point(1.0, 0.0) }, { new Point(1.0, 2.0), new Point(2.0, 2.0) } }; var coverage = new DiscreteGridPointCoverage(3, 2, points.Cast <IPoint>()) { IsTimeDependent = true }; var values1 = new[, ] { { 1.0, 2.0 }, { 3.0, 4.0 }, { 5.0, 6.0 } }; var values2 = new[, ] { { 2.0, 2.0 }, { 2.0, 4.0 }, { 1.0, 2.0 } }; coverage[new DateTime(2000, 1, 1)] = values1; coverage[new DateTime(2001, 1, 1)] = values2; coverage[new DateTime(2002, 1, 1)] = values1; coverage[new DateTime(2003, 1, 1)] = values2; var coverageLayer = new DiscreteGridPointCoverageLayer { Coverage = coverage, ShowFaces = true }; var map = new Map { Layers = { coverageLayer } }; MapTestHelper.Show(map); /* * var mapView = new MapView {Data = map}; * var timeNavigator = new TimeSeriesNavigator {Data = mapView}; * * WindowsFormsTestHelper.Show(timeNavigator); * WindowsFormsTestHelper.ShowModal(mapView); */ }
public void ShowWsiearthTif() { var path = rasterDataPath + @"\..\wsiearth.tif"; var gdalFeatureProvider = new GdalFeatureProvider { Path = path }; var map = new Map { Layers = { new GdalRasterLayer { DataSource = gdalFeatureProvider } } }; Assert.AreEqual("WGS 84", gdalFeatureProvider.CoordinateSystem.Name); MapTestHelper.ShowModal(map); }
public void IntersectTriangles() { ICoordinate[] v1 = new ICoordinate[7]; v1[0] = new Coordinate(0, 0); v1[1] = new Coordinate(5, 10); v1[2] = new Coordinate(10, 0); v1[3] = new Coordinate(8, 0); v1[4] = new Coordinate(5, 3); v1[5] = new Coordinate(4, 0); v1[6] = new Coordinate(0, 0); IGeometry pol1 = new Polygon(new LinearRing(v1)); ICoordinate[] v2 = new ICoordinate[5]; v2[0] = new Coordinate(0, 0); v2[1] = new Coordinate(10, 0); v2[2] = new Coordinate(10, 1); v2[3] = new Coordinate(0, 1); v2[4] = new Coordinate(0, 0); IGeometry pol2 = new Polygon(new LinearRing(v2)); /* * IGeometry g = pol1.Difference(pol2); * Assert.AreEqual(6, g.Coordinates.Length); * * IGeometry g1 = pol1.Union(pol2); * Assert.AreEqual(7, g1.Coordinates.Length); * */ Map map = new Map(); IGeometry gIntersection = pol1.Intersection(pol2); map.Layers.Add(new VectorLayer("g1", new DataTableFeatureProvider(new [] { gIntersection }))); /* * map.Layers.Add(new VectorLayer("g", new DataTableFeatureProvider(new IGeometry[] { pol1 }) )); * map.Layers.Add(new VectorLayer("g1", new DataTableFeatureProvider(new IGeometry[] { pol2 }))); */ MapTestHelper.Show(map); }
private static NetworkCoverage GetNetworkCoverage() { var network = MapTestHelper.CreateMockNetwork(); var networkCoverage = new NetworkCoverage { Network = network }; // set values var branch1 = network.Branches[0]; var branch2 = network.Branches[1]; networkCoverage[new NetworkLocation(branch1, 4.0)] = 0.1; networkCoverage[new NetworkLocation(branch1, 16.0)] = 0.2; networkCoverage[new NetworkLocation(branch2, 4.0)] = 0.3; networkCoverage[new NetworkLocation(branch2, 12.0)] = 0.4; networkCoverage[new NetworkLocation(branch2, 16.0)] = 0.5; return(networkCoverage); }
public void ShowNetworkCoverageAsRoute() { // create network var network = MapTestHelper.CreateMockNetwork(); mocks.ReplayAll(); var networkCoverage = new NetworkCoverage { Network = network, SegmentGenerationMethod = SegmentGenerationMethod.RouteBetweenLocations }; var networkCoverageLayer = new NetworkCoverageGroupLayer { NetworkCoverage = networkCoverage }; NetworkCoverageGroupLayer.SetupRouteLayerTheme(networkCoverageLayer, null); // set values var branch1 = network.Branches[0]; var branch2 = network.Branches[1]; networkCoverage[new NetworkLocation(branch1, 4.0)] = 0.1; networkCoverage[new NetworkLocation(branch1, 16.0)] = 0.2; networkCoverage[new NetworkLocation(branch2, 4.0)] = 0.3; networkCoverage[new NetworkLocation(branch2, 12.0)] = 0.4; networkCoverage[new NetworkLocation(branch2, 16.0)] = 0.5; var map = new Map(new Size(1000, 1000)); map.Layers.Add(networkCoverageLayer); // add branch layer var branchLayer = new VectorLayer { DataSource = new FeatureCollection { Features = (IList)network.Branches } }; branchLayer.Style.Outline.Width = 25; branchLayer.Style.Outline.Color = Pens.LightGray.Color; map.Layers.Add(branchLayer); MapTestHelper.ShowModal(map); }
public void RenderBilFile() { Debug.WriteLine(Directory.GetCurrentDirectory()); var map = new Map(new Size(400, 200)) { Name = "map1" }; //string fileName = @"..\..\..\..\data\RasterData\SchematisatieInt.bil"; string fileName = RasterDataPath + "bodem.bil"; //string fileName = @"..\..\..\..\data\wsiearth.tif"; var rasterLayer = new GdalRasterLayer(fileName); rasterLayer.CustomRenderers.Add(new GdalRenderer(rasterLayer)); // add optimized custom gdal renderer map.Layers.Add(rasterLayer); MapTestHelper.Show(map); }
public void NetworkCoverageWithNaNValuesDoesNotCrashTools9794() { //create a layer with a coverate NetworkCoverage networkCoverage = GetNetworkCoverage(); networkCoverage[new NetworkLocation(networkCoverage.Network.Branches[1], 17.0)] = double.NaN; networkCoverage.Components[0].Name = "kees"; var networkCoverageLayer = new NetworkCoverageGroupLayer { NetworkCoverage = networkCoverage }; Assert.IsTrue(networkCoverageLayer.HasReadOnlyLayersCollection); var map = new Map(new Size(1000, 1000)); map.Layers.Add(networkCoverageLayer); MapTestHelper.ShowModal(map); }
public void GdalRendererShouldRenderBilFileWithDefaultTheme() { const string rasterPath = @"..\..\..\..\..\test-data\DeltaShell\DeltaShell.Plugins.SharpMapGis.Tests\RasterData\"; const string path = rasterPath + "Schematisatie.bil"; Assert.IsTrue(File.Exists(path)); var rasterLayer = new GdalRasterLayer(); var rasterFeatureProvider = new GdalFeatureProvider { Path = path }; rasterLayer.CustomRenderers.Add(new GdalRenderer(rasterLayer)); // add optimized custom gdal renderer rasterLayer.DataSource = rasterFeatureProvider; Map map = new Map(new Size(200, 200)); map.Layers.Add(rasterLayer); MapTestHelper.Show(map); }
public void ShowNetworkCoverageAsLayerWithSegmentBetweenLocationsType() { // create network var network = MapTestHelper.CreateMockNetwork(); mocks.ReplayAll(); var networkCoverage = new NetworkCoverage { Network = network, SegmentGenerationMethod = SegmentGenerationMethod.SegmentBetweenLocations }; var networkCoverageLayer = new NetworkCoverageGroupLayer { NetworkCoverage = networkCoverage }; // set values var branch1 = network.Branches[0]; var branch2 = network.Branches[1]; networkCoverage[new NetworkLocation(branch1, 4.0)] = 0.1; networkCoverage[new NetworkLocation(branch1, 16.0)] = 0.2; networkCoverage[new NetworkLocation(branch1, 100.0)] = 0.4; networkCoverage[new NetworkLocation(branch2, 0.0)] = 0.4; networkCoverage[new NetworkLocation(branch2, 4.0)] = 0.5; networkCoverage[new NetworkLocation(branch2, 12.0)] = 0.6; networkCoverage[new NetworkLocation(branch2, 16.0)] = 0.7; networkCoverage[new NetworkLocation(branch2, 100.0)] = 0.8; networkCoverage.Locations.InterpolationType = InterpolationType.Constant; networkCoverageLayer.SegmentLayer.LabelLayer.LabelColumn = "SegmentNumber"; networkCoverageLayer.SegmentLayer.LabelLayer.Visible = true; var map = new Map(new Size(1000, 1000)); map.Layers.Add(networkCoverageLayer); MapTestHelper.ShowModal(map); }
public void FeaturesChangedIsFiredOnValuesAdd() { var network = MapTestHelper.CreateMockNetwork(); var networkCoverage = new NetworkCoverage { Network = network }; var networkCoverageFeatureCollection = new NetworkCoverageFeatureCollection { NetworkCoverage = networkCoverage, NetworkCoverageFeatureType = NetworkCoverageFeatureType.Locations }; var callCount = 0; networkCoverageFeatureCollection.FeaturesChanged += (s, e) => { callCount++; }; networkCoverage.Locations.Values.Add(new NetworkLocation { Branch = network.Branches[0], Chainage = 0.0 }); Assert.AreEqual(2, callCount); }
public void ReadGdalRasterLayer() { var map = new Map { Name = "map1" }; var provider = new DataTableFeatureProvider("LINESTRING(90 0,100 0,100 90)"); var vectorLayer = new VectorLayer("test", provider); map.Layers.Add(vectorLayer); string fileName = DataPath + "dvim3.tif"; var rasterLayer = new RegularGridCoverageLayer(); var rasterFeatureProvider = new GdalFeatureProvider { Path = fileName }; rasterLayer.DataSource = rasterFeatureProvider; rasterLayer.CustomRenderers.Add(new GdalRenderer(rasterLayer)); // add optimized custom gdal renderer map.Layers.Add(rasterLayer); MapTestHelper.Show(map); }
public void GenerateSegmentsForNetworkCoverageOnTwoBranches() { var network = CreateNetwork(); var networkCoverage = new NetworkCoverage { Network = network, SegmentGenerationMethod = SegmentGenerationMethod.RouteBetweenLocations }; networkCoverage[new NetworkLocation(network.Branches[0], 10.0)] = 0.0; networkCoverage[new NetworkLocation(network.Branches[0], 90.0)] = 90.0; networkCoverage[new NetworkLocation(network.Branches[1], 10.0)] = 110.0; networkCoverage[new NetworkLocation(network.Branches[1], 90.0)] = 190.0; Assert.AreEqual(4, networkCoverage.Segments.Values.Count); var segments = networkCoverage.Segments.Values; Assert.AreEqual(network.Branches[0], segments[0].Branch); Assert.AreEqual(10.0, segments[0].Offset); Assert.AreEqual(80.0, segments[0].Length); Assert.AreEqual(network.Branches[0], segments[1].Branch); Assert.AreEqual(90.0, segments[1].Offset); Assert.AreEqual(10.0, segments[1].Length, 1e-6); Assert.AreEqual(network.Branches[1], segments[2].Branch); Assert.AreEqual(0.0, segments[2].Offset); Assert.AreEqual(10.0, segments[2].Length); Assert.AreEqual(network.Branches[1], segments[3].Branch); Assert.AreEqual(10.0, segments[3].Offset); Assert.AreEqual(80.0, segments[3].Length); var networkCoverageLayer = new NetworkCoverageLayer { NetworkCoverage = networkCoverage }; var map = new Map(new Size(1000, 1000)); map.Layers.Add(networkCoverageLayer); NetworkCoverageLayerHelper.SetupRouteNetworkCoverageLayerTheme(networkCoverageLayer, null); // add branch/node layers var branchLayer = new VectorLayer { DataSource = new FeatureCollection { Features = (IList)network.Branches } }; map.Layers.Add(branchLayer); var nodeLayer = new VectorLayer { DataSource = new FeatureCollection { Features = (IList)network.Nodes } }; map.Layers.Add(nodeLayer); MapTestHelper.Show(map); }