Index: Core/Components/src/Core.Components.DotSpatial/Converter/MapPointDataConverter.cs =================================================================== diff -u -rc4063044a98da7c2f0c1f4ed735554964f0f7719 -r55eec983d509aa3352e884532c4414d253905c89 --- Core/Components/src/Core.Components.DotSpatial/Converter/MapPointDataConverter.cs (.../MapPointDataConverter.cs) (revision c4063044a98da7c2f0c1f4ed735554964f0f7719) +++ Core/Components/src/Core.Components.DotSpatial/Converter/MapPointDataConverter.cs (.../MapPointDataConverter.cs) (revision 55eec983d509aa3352e884532c4414d253905c89) @@ -46,10 +46,11 @@ foreach (var ringtoetsMapFeature in data.Features) { foreach (var feature in GetAllMapFeatureCoordinates(ringtoetsMapFeature) - .Select(c => new Feature(new Point(c.X, c.Y), featureSet))) - { - AddMetaDataAsAttributes(ringtoetsMapFeature, featureSet, feature); - } + .Select(c => new Feature(new Point(c.X, c.Y), featureSet)) + .Where(feature => data.ShowLabels)) + { + AddMetaDataAsAttributes(ringtoetsMapFeature, featureSet, feature); + } } featureSet.InitializeVertices(); @@ -58,8 +59,8 @@ { IsVisible = data.IsVisible, Name = data.Name, - ShowLabels = true, - LabelLayer = GetLabelLayer(featureSet) + ShowLabels = data.ShowLabels, + LabelLayer = GetLabelLayer(featureSet, data.ShowLabels) }; CreateStyle(layer, data.Style); @@ -70,11 +71,11 @@ }; } - private static MapLabelLayer GetLabelLayer(FeatureSet featureSet) + private static MapLabelLayer GetLabelLayer(FeatureSet featureSet, bool showLabels) { var labelLayer = new MapLabelLayer(); - if (featureSet.DataTable.Columns.Count > 0) + if (featureSet.DataTable.Columns.Count > 0 && showLabels) { labelLayer.Symbology.Categories[0].Symbolizer = new LabelSymbolizer { Index: Core/Components/test/Core.Components.DotSpatial.Test/Converter/MapPointDataConverterTest.cs =================================================================== diff -u -rc4063044a98da7c2f0c1f4ed735554964f0f7719 -r55eec983d509aa3352e884532c4414d253905c89 --- Core/Components/test/Core.Components.DotSpatial.Test/Converter/MapPointDataConverterTest.cs (.../MapPointDataConverterTest.cs) (revision c4063044a98da7c2f0c1f4ed735554964f0f7719) +++ Core/Components/test/Core.Components.DotSpatial.Test/Converter/MapPointDataConverterTest.cs (.../MapPointDataConverterTest.cs) (revision 55eec983d509aa3352e884532c4414d253905c89) @@ -95,7 +95,9 @@ } [Test] - public void Convert_RandomPointDataWithoutAttributes_ReturnsNewMapPointLayerListWithDefaultLabelLayer() + [TestCase(true)] + [TestCase(false)] + public void Convert_RandomPointDataWithoutAttributes_ReturnsNewMapPointLayerListWithDefaultLabelLayer(bool showLabels) { // Setup var converter = new MapPointDataConverter(); @@ -119,7 +121,8 @@ var pointData = new MapPointData("test data") { - Features = features.ToArray() + Features = features.ToArray(), + ShowLabels = showLabels }; // Call @@ -133,7 +136,7 @@ Assert.IsInstanceOf(layer); Assert.AreEqual(FeatureType.Point, layer.DataSet.FeatureType); CollectionAssert.AreNotEqual(pointData.Features.First().MapGeometries.First().PointCollections, layer.DataSet.Features[0].Coordinates); - Assert.IsTrue(layer.ShowLabels); + Assert.AreEqual(showLabels, layer.ShowLabels); CollectionAssert.IsEmpty(layer.DataSet.GetColumns()); Assert.IsNotNull(layer.LabelLayer); @@ -142,7 +145,7 @@ } [Test] - public void Convert_RandomPointDataWithAttributes_ReturnsNewMapPointLayerListWithCustomLabelLayer() + public void Convert_RandomPointDataWithAttributesShowLabelsFalse_ReturnsNewMapPointLayerListWithDefaultLabelLayer() { // Setup var converter = new MapPointDataConverter(); @@ -170,7 +173,8 @@ var pointData = new MapPointData("test data") { - Features = features.ToArray() + Features = features.ToArray(), + ShowLabels = false }; // Call @@ -184,6 +188,58 @@ Assert.IsInstanceOf(layer); Assert.AreEqual(FeatureType.Point, layer.DataSet.FeatureType); CollectionAssert.AreNotEqual(pointData.Features.First().MapGeometries.First().PointCollections, layer.DataSet.Features[0].Coordinates); + Assert.IsFalse(layer.ShowLabels); + CollectionAssert.IsEmpty(layer.DataSet.GetColumns()); + + Assert.IsNotNull(layer.LabelLayer); + Assert.AreEqual("FID", layer.LabelLayer.Symbology.Categories[0].Symbolizer.PriorityField); + Assert.IsNull(layer.LabelLayer.Symbology.Categories[0].Expression); + } + + [Test] + public void Convert_RandomPointDataWithAttributesShowLabelsTrue_ReturnsNewMapPointLayerListWithCustomLabelLayer() + { + // Setup + var converter = new MapPointDataConverter(); + var random = new Random(21); + var randomCount = random.Next(5, 10); + var features = new List(); + + for (var i = 0; i < randomCount; i++) + { + var mapFeature = new MapFeature(new[] + { + new MapGeometry(new[] + { + new[] + { + new Point2D(random.NextDouble(), random.NextDouble()) + } + }) + }); + mapFeature.MetaData["ID"] = random.NextDouble(); + mapFeature.MetaData["Name"] = string.Format("feature [{0}]", i); + + features.Add(mapFeature); + } + + var pointData = new MapPointData("test data") + { + Features = features.ToArray(), + ShowLabels = true + }; + + // Call + IList mapLayers = converter.Convert(pointData); + + // Assert + Assert.IsInstanceOf>(mapLayers); + IMapFeatureLayer layer = mapLayers[0]; + + Assert.AreEqual(pointData.Features.ToArray().Length, layer.DataSet.Features.Count); + Assert.IsInstanceOf(layer); + Assert.AreEqual(FeatureType.Point, layer.DataSet.FeatureType); + CollectionAssert.AreNotEqual(pointData.Features.First().MapGeometries.First().PointCollections, layer.DataSet.Features[0].Coordinates); Assert.IsTrue(layer.ShowLabels); DataColumn[] dataColumns = layer.DataSet.GetColumns();