public void ConvertLayerProperties_MapPointDataWithStyle_ConvertsStyleToMapPointLayer( [Values(KnownColor.AliceBlue, KnownColor.Azure)] KnownColor color, [Values(1, 5)] int width, [Values(PointSymbol.Circle, PointSymbol.Square)] PointSymbol pointStyle) { // Setup var converter = new MapPointDataConverter(); var mapPointLayer = new MapPointLayer(); Color expectedColor = Color.FromKnownColor(color); var mapPointData = new MapPointData("test", new PointStyle { Color = expectedColor, Size = width, Symbol = pointStyle, StrokeColor = expectedColor, StrokeThickness = 1 }); // Call converter.ConvertLayerProperties(mapPointData, mapPointLayer); // Assert PointShape expectedPointShape = pointStyle == PointSymbol.Circle ? PointShape.Ellipse : PointShape.Rectangle; var expectedSymbolizer = new PointSymbolizer(expectedColor, expectedPointShape, width); expectedSymbolizer.SetOutline(expectedColor, 1); AssertAreEqual(expectedSymbolizer, mapPointLayer.Symbolizer); }
private static PointSymbolizer CreatePointSymbolizer(PointStyle style) { var symbolizer = new PointSymbolizer(style.Color, MapDataHelper.Convert(style.Symbol), style.Size); symbolizer.SetOutline(style.StrokeColor, style.StrokeThickness); return(symbolizer); }
private static PointSymbolizer CreateExpectedSymbolizer(PointStyle expectedPointStyle) { PointShape expectedPointShape = MapDataHelper.Convert(expectedPointStyle.Symbol); var expectedSymbolizer = new PointSymbolizer(expectedPointStyle.Color, expectedPointShape, expectedPointStyle.Size); expectedSymbolizer.SetOutline(expectedPointStyle.StrokeColor, expectedPointStyle.StrokeThickness); return(expectedSymbolizer); }
private static IPointScheme CreateSymbology(string servCode, IFeatureSet featureSet) { Debug.Assert(featureSet != null); var scheme = new PointScheme(); scheme.ClearCategories(); var settings = scheme.EditorSettings; settings.ClassificationType = ClassificationType.Custom; const string valueField = "ValueCount"; // Find min/max value in valueField var minValue = int.MaxValue; var maxValue = int.MinValue; foreach (DataRow row in featureSet.DataTable.Rows) { int value; try { value = Convert.ToInt32(row[valueField]); } catch { value = 0; } if (value < minValue) { minValue = value; } if (value > maxValue) { maxValue = value; } } if (minValue == int.MaxValue) { minValue = 0; } if (maxValue == int.MinValue) { maxValue = 0; } // Calculate number of categories int categoriesCount; var length = maxValue - minValue; if (length < 50) { categoriesCount = 1; } else if (length < 100) { categoriesCount = 2; } else { categoriesCount = 3; } var categorieStep = (maxValue - minValue) / categoriesCount + 1; // value step in filter const int imageStep = 5; var imageSize = 5; var imageHelper = new WebServices.ServiceIconHelper(Settings.Instance.SelectedHISCentralURL); // we need it only to get image var image = imageHelper.GetImageForService(servCode); const string seriesID = "SeriesID"; var needDownloadedCategories = featureSet.DataTable.Columns.Contains(seriesID); for (int i = 0; i < categoriesCount; i++) { var min = minValue - 1; var max = minValue + categorieStep; if (max > maxValue) { max = maxValue; } minValue = max + 1; imageSize += imageStep; var baseFilter = string.Format("[{0}] > {1} and [{0}] <= {2}", valueField, min, max); var filterEx = needDownloadedCategories ? baseFilter + string.Format(" AND ([{0}] is null)", seriesID) : baseFilter; var legendText = string.Format("({0}, {1}]", min, max); var mySymbolizer = new PointSymbolizer(image, imageSize); var myCategory = new PointCategory(mySymbolizer) { FilterExpression = filterEx, LegendText = legendText, SelectionSymbolizer = new PointSymbolizer(image, imageSize + 2) }; myCategory.SelectionSymbolizer.SetFillColor(Color.Yellow); scheme.AddCategory(myCategory); // add category for downloaded if (needDownloadedCategories) { mySymbolizer = new PointSymbolizer(image, imageSize); mySymbolizer.SetOutline(Color.Green, 3); filterEx = string.Format("{0} AND not([{1}] is null)", baseFilter, seriesID); legendText = myCategory.LegendText + " (downloaded)"; var categorieForDownload = new PointCategory(mySymbolizer) { FilterExpression = filterEx, LegendText = legendText, SelectionSymbolizer = new PointSymbolizer(image, imageSize + 2) }; categorieForDownload.SelectionSymbolizer.SetFillColor(Color.Yellow); scheme.AddCategory(categorieForDownload); } } return(scheme); }