Index: Core/Components/src/Core.Components.DotSpatial/Converter/FeatureBasedMapDataConverter.cs =================================================================== diff -u -r726b5a9d76fa58769e79fa0d5a867d2fd31a6310 -r7090143d6542dc5b6bfc3b920dc1a8c8dc16accb --- Core/Components/src/Core.Components.DotSpatial/Converter/FeatureBasedMapDataConverter.cs (.../FeatureBasedMapDataConverter.cs) (revision 726b5a9d76fa58769e79fa0d5a867d2fd31a6310) +++ Core/Components/src/Core.Components.DotSpatial/Converter/FeatureBasedMapDataConverter.cs (.../FeatureBasedMapDataConverter.cs) (revision 7090143d6542dc5b6bfc3b920dc1a8c8dc16accb) @@ -67,8 +67,23 @@ ClearLayerData(layer); SetDataTableColumns(data, layer); - ConvertLayerFeatures((TFeatureBasedMapData) data, (TMapFeatureLayer) layer); + var columnNameLookup = GetColumnNameLookup(data); + foreach (MapFeature mapFeature in data.Features) + { + IEnumerable features = CreateFeatures(mapFeature); + + foreach (var feature in features) + { + layer.DataSet.Features.Add(feature); + + foreach (var attribute in mapFeature.MetaData) + { + feature.DataRow[columnNameLookup[attribute.Key].ToString()] = attribute.Value; + } + } + } + layer.DataSet.InitializeVertices(); layer.AssignFastDrawnStates(); } @@ -85,14 +100,6 @@ protected abstract IEnumerable CreateFeatures(MapFeature mapFeature); /// - /// Converts all feature related data from to . - /// Any features already part of are cleared. - /// - /// The data to convert the feature related data from. - /// The layer to convert the feature related data to. - protected abstract void ConvertLayerFeatures(TFeatureBasedMapData data, TMapFeatureLayer layer); - - /// /// Converts all general properties (like and ) /// from to . /// Index: Core/Components/src/Core.Components.DotSpatial/Converter/MapLineDataConverter.cs =================================================================== diff -u -r726b5a9d76fa58769e79fa0d5a867d2fd31a6310 -r7090143d6542dc5b6bfc3b920dc1a8c8dc16accb --- Core/Components/src/Core.Components.DotSpatial/Converter/MapLineDataConverter.cs (.../MapLineDataConverter.cs) (revision 726b5a9d76fa58769e79fa0d5a867d2fd31a6310) +++ Core/Components/src/Core.Components.DotSpatial/Converter/MapLineDataConverter.cs (.../MapLineDataConverter.cs) (revision 7090143d6542dc5b6bfc3b920dc1a8c8dc16accb) @@ -47,21 +47,6 @@ yield return new Feature(GetGeometry(mapFeature)); } - protected override void ConvertLayerFeatures(MapLineData data, MapLineLayer layer) - { - var columnNameLookup = GetColumnNameLookup(data); - - foreach (MapFeature mapFeature in data.Features) - { - var feature = new Feature(GetGeometry(mapFeature), layer.FeatureSet); - - foreach (var attribute in mapFeature.MetaData) - { - feature.DataRow[columnNameLookup[attribute.Key].ToString()] = attribute.Value; - } - } - } - protected override void ConvertLayerProperties(MapLineData data, MapLineLayer layer) { layer.IsVisible = data.IsVisible; Index: Core/Components/src/Core.Components.DotSpatial/Converter/MapPointDataConverter.cs =================================================================== diff -u -r726b5a9d76fa58769e79fa0d5a867d2fd31a6310 -r7090143d6542dc5b6bfc3b920dc1a8c8dc16accb --- Core/Components/src/Core.Components.DotSpatial/Converter/MapPointDataConverter.cs (.../MapPointDataConverter.cs) (revision 726b5a9d76fa58769e79fa0d5a867d2fd31a6310) +++ Core/Components/src/Core.Components.DotSpatial/Converter/MapPointDataConverter.cs (.../MapPointDataConverter.cs) (revision 7090143d6542dc5b6bfc3b920dc1a8c8dc16accb) @@ -45,23 +45,6 @@ return GetAllMapFeatureCoordinates(mapFeature).Select(c => new Feature(new Point(c.X, c.Y))); } - protected override void ConvertLayerFeatures(MapPointData data, MapPointLayer layer) - { - var columnNameLookup = GetColumnNameLookup(data); - - foreach (MapFeature mapFeature in data.Features) - { - foreach (var feature in GetAllMapFeatureCoordinates(mapFeature) - .Select(c => new Feature(new Point(c.X, c.Y), layer.FeatureSet))) - { - foreach (var attribute in mapFeature.MetaData) - { - feature.DataRow[columnNameLookup[attribute.Key].ToString()] = attribute.Value; - } - } - } - } - protected override void ConvertLayerProperties(MapPointData data, MapPointLayer layer) { layer.IsVisible = data.IsVisible; Index: Core/Components/src/Core.Components.DotSpatial/Converter/MapPolygonDataConverter.cs =================================================================== diff -u -r726b5a9d76fa58769e79fa0d5a867d2fd31a6310 -r7090143d6542dc5b6bfc3b920dc1a8c8dc16accb --- Core/Components/src/Core.Components.DotSpatial/Converter/MapPolygonDataConverter.cs (.../MapPolygonDataConverter.cs) (revision 726b5a9d76fa58769e79fa0d5a867d2fd31a6310) +++ Core/Components/src/Core.Components.DotSpatial/Converter/MapPolygonDataConverter.cs (.../MapPolygonDataConverter.cs) (revision 7090143d6542dc5b6bfc3b920dc1a8c8dc16accb) @@ -66,41 +66,6 @@ yield return new Feature(GetGeometry(geometryList)); } - protected override void ConvertLayerFeatures(MapPolygonData data, MapPolygonLayer layer) - { - var columnNameLookup = GetColumnNameLookup(data); - - foreach (var mapFeature in data.Features) - { - var geometryList = new List(); - - foreach (var mapGeometry in mapFeature.MapGeometries) - { - IEnumerable[] pointCollections = mapGeometry.PointCollections.ToArray(); - - IEnumerable outerRingCoordinates = ConvertPoint2DElementsToCoordinates(pointCollections[0]); - ILinearRing outerRing = new LinearRing(outerRingCoordinates); - - ILinearRing[] innerRings = new ILinearRing[pointCollections.Length - 1]; - for (int i = 1; i < pointCollections.Length; i++) - { - IEnumerable innerRingCoordinates = ConvertPoint2DElementsToCoordinates(pointCollections[i]); - innerRings[i - 1] = new LinearRing(innerRingCoordinates); - } - - IPolygon polygon = new Polygon(outerRing, innerRings); - geometryList.Add(polygon); - } - - var feature = new Feature(GetGeometry(geometryList), layer.FeatureSet); - - foreach (var attribute in mapFeature.MetaData) - { - feature.DataRow[columnNameLookup[attribute.Key].ToString()] = attribute.Value; - } - } - } - protected override void ConvertLayerProperties(MapPolygonData data, MapPolygonLayer layer) { layer.IsVisible = data.IsVisible; Index: Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs =================================================================== diff -u -r726b5a9d76fa58769e79fa0d5a867d2fd31a6310 -r7090143d6542dc5b6bfc3b920dc1a8c8dc16accb --- Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision 726b5a9d76fa58769e79fa0d5a867d2fd31a6310) +++ Core/Components/test/Core.Components.DotSpatial.Test/Converter/FeatureBasedMapDataConverterTest.cs (.../FeatureBasedMapDataConverterTest.cs) (revision 7090143d6542dc5b6bfc3b920dc1a8c8dc16accb) @@ -114,11 +114,6 @@ private class TestFeatureBasedMapDataConverter : FeatureBasedMapDataConverter where TFeatureBasedMapData : FeatureBasedMapData { - protected override void ConvertLayerFeatures(TFeatureBasedMapData data, MapPointLayer layer) - { - - } - protected override void ConvertLayerProperties(TFeatureBasedMapData data, MapPointLayer layer) {