private void CreateSeriesChart(FeatureSet fset, ChartQueryLayer chartLayer) { if (chartLayer.OutputFields != null) { string[] outFields = chartLayer.OutputFields.Split(','); string[] outLabels = (string.IsNullOrEmpty(chartLayer.OutputLabels)) ? outFields : chartLayer.OutputLabels.Split(','); bool isPercentDependent = chartLayer.ChartOutput.DependentIsPercentage; string dependentAxisTitle = chartLayer.ChartOutput.DependentAxisTitle; string independentAxisTitle = chartLayer.ChartOutput.IndependentAxisTitle; string independentField = chartLayer.ChartOutput.IndependentField; switch (chartLayer.ChartOutput.ChartType) { case "Bar": CreateBarSeriesChart(fset, "Bar", outFields, outLabels, chartLayer.Title, independentField, dependentAxisTitle); //CreateGroupBarChart(fset, outFields, outLabels, chartLayer.Title, independentField, independentAxisTitle, dependentAxisTitle); break; case "Column": //CreateBarSeriesChart(fset, "Column", outFields, outLabels, chartLayer.Title, independentField, dependentAxisTitle); CreateGroupColumnChart(fset, outFields, outLabels, chartLayer.Title, independentField, independentAxisTitle, dependentAxisTitle); break; case "Pie": CreatePieSeriesChart(fset, outFields, outLabels, chartLayer.Title, independentField, dependentAxisTitle, isPercentDependent); break; } } else { MessageBox.Show("Please enter Output Fields for the widget in the configuration file"); } }
/// <summary> /// Create element chart and add it into an Elememt Layer in the Map /// </summary> private void CreateElementChart(Graphic graphic, string displayValue) { ChartQueryLayer chartLayer = queryTool.QueryLayer as ChartQueryLayer; string[] outFields = chartLayer.OutputFields.Split(','); string[] outLabels = chartLayer.OutputLabels.Split(','); string title = string.Format("{0} - {1}", displayValue, chartLayer.Title); bool isPercentDependent = chartLayer.ChartOutput.DependentIsPercentage; string dependentAxisTitle = chartLayer.ChartOutput.DependentAxisTitle; Chart chart = null; switch (chartLayer.ChartOutput.ChartType) { case "Bar": case "Column": chart = CreateSingleBarChart(graphic, chartLayer.ChartOutput.ChartType, outFields, outLabels, title, dependentAxisTitle); break; case "Pie": chart = CreateSinglePieChart(graphic, outFields, outLabels, title, dependentAxisTitle, isPercentDependent); chart.Background = new SolidColorBrush(Color.FromArgb(204, 240, 240, 255)); break; } Envelope ext = GeometryTool.ExpandGeometryExtent(graphic.Geometry, 0.10); ElementLayer.SetEnvelope(chart, ext); elementLayer.Children.Clear(); elementLayer.Children.Add(chart); this.MapControl.ZoomTo(ext); }
private void SubmitQueryButton_Click(object sender, RoutedEventArgs e) { string sWhere = txtAttQueryWhere.Text.Trim(); ChartQueryLayer queryLayer = widgetConfig.ChartLayers[lstAttQueryLayer.SelectedIndex]; if (!string.IsNullOrEmpty(sWhere)) { this.IsBusy = true; queryTool.QueryLayer = queryLayer; queryTool.LayerInfo = (lstAttQueryLayer.SelectedItem as ComboBoxItem).Tag as ArcGISLayerInfo; queryTool.Search(sWhere, queryLayer.ChartOutput.IndependentField, this.MapSRWKID); } }
private void SearchLayer_SelectionChanged(object sender, SelectionChangedEventArgs e) { txtAttQueryWhere.Text = "ST_ABBREV='KY' and NAME LIKE 'J%'"; lstAttQueryField.Items.Clear(); ComboBoxItem item = lstAttQueryLayer.SelectedItem as ComboBoxItem; ArcGISLayerInfo layerInfo = item.Tag as ArcGISLayerInfo; ChartQueryLayer queryLayer = widgetConfig.ChartLayers[lstAttQueryLayer.SelectedIndex]; if (layerInfo.IsReady) { string fieldType = ""; if (!string.IsNullOrEmpty(queryLayer.QueryFields)) { string[] queryFields = queryLayer.QueryFields.Split(','); foreach (ArcGISLayerField field in layerInfo.Fields) { if (queryFields.Contains(field.Name, StringComparer.CurrentCultureIgnoreCase)) { fieldType = field.Type.Substring(13); // "esriFieldType".Length lstAttQueryField.Items.Add(new ListBoxItem() { Content = string.Format("{0} ({1})", field.Name, fieldType), Tag = field, Height = 20 }); } } } else { foreach (ArcGISLayerField field in layerInfo.Fields) { fieldType = field.Type.Substring(13); // "esriFieldType".Length if (!fieldType.Equals("Geometry") && !fieldType.Equals("Raster") && !fieldType.Equals("Blob")) { lstAttQueryField.Items.Add(new ListBoxItem() { Content = string.Format("{0} ({1})", field.Name, fieldType), Tag = field, Height = 20 }); } } } } }