Solved! Go to Solution.
Graphic proc_get_pieSymbol(double gps_x, double gps_y, KeyValuePair<string, int>[] _serie) { // PIE Symbol definition PieMarkerSymbol _symbol = new ESRI.ArcGIS.Samples.PieChartSymbology.PieMarkerSymbol(); // Graphic definition Graphic _graphic = new Graphic(); // Independant value definition foreach (var elt in _serie) { _symbol.Fields.Add(new ESRI.ArcGIS.Samples.PieChartSymbology.Field() { DisplayName = elt.Key, FieldName = elt.Key }); } // Attach the preview symbol to a graphic for graphic layer _graphic.Symbol = _symbol; // Definition of dependant value. Note KeyValuePair<string, objet> is necessary to define value. The key must be an sepecific "independant value" and "object" is the dependant. // In my case, object is <int> foreach (var elt in _serie) { _graphic.Attributes.Add(new KeyValuePair<string, object>(elt.Key, elt.Value)); } // definition of destination gps position on the map _graphic.Geometry = new MapPoint(gps_x, gps_y); // the pie Symbol as Graphic for Graphics Layer is right now! return _graphic; }
xmlns:chart="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Charting" xmlns:charting="clr-namespace:Telerik.Windows.Controls.Charting;assembly=Telerik.Windows.Controls.Charting"
<esri:InfoWindow x:Name="MyInfoWindow" MouseLeftButtonUp="MyInfoWindow_MouseLeftButtonUp" Map="{Binding ElementName=MyMap}" Width="500" Height="300"> <Grid> <Border> <chart:RadChart x:Name="RadChart1"> <chart:RadChart.DefaultView> <charting:ChartDefaultView> <charting:ChartDefaultView.ChartArea> <charting:ChartArea LegendName="legend" Margin="0,0,20,0"> <charting:ChartArea.AxisY> <charting:AxisY AutoRange="False" MinValue="0" MaxValue="220" Step="20" MinorTicksVisibility="Collapsed"> <charting:AxisY.AxisStyles> <charting:AxisStyles ItemLabelStyle="{StaticResource CustomYAxisItemLabelStyle}"></charting:AxisStyles> </charting:AxisY.AxisStyles> </charting:AxisY> </charting:ChartArea.AxisY> <charting:ChartArea.AxisX> <charting:AxisX> <charting:AxisX.AxisStyles> <charting:AxisStyles ItemLabelStyle="{StaticResource CustomYAxisItemLabelStyle}"></charting:AxisStyles> </charting:AxisX.AxisStyles> </charting:AxisX> </charting:ChartArea.AxisX> </charting:ChartArea> </charting:ChartDefaultView.ChartArea> <charting:ChartDefaultView.ChartLegend> <charting:ChartLegend x:Name="legend" Visibility="Collapsed" /> </charting:ChartDefaultView.ChartLegend> </charting:ChartDefaultView> </chart:RadChart.DefaultView> <chart:RadChart.SeriesMappings> <charting:SeriesMapping LegendLabel="Spectrum"> <charting:SeriesMapping.SeriesDefinition> <charting:HorizontalBarSeriesDefinition ShowItemLabels="True"> </charting:HorizontalBarSeriesDefinition> </charting:SeriesMapping.SeriesDefinition> <charting:ItemMapping DataPointMember="XCategory" FieldName="MinFrequency" /> <charting:ItemMapping DataPointMember="YValue" FieldName="BinData" /> </charting:SeriesMapping> </chart:RadChart.SeriesMappings> </chart:RadChart> </Border> </Grid> </esri:InfoWindow>
<Style x:Key="CustomYAxisItemLabelStyle" TargetType="TextBlock"> <Setter Property="TextAlignment" Value="Left" /> <Setter Property="FontSize" Value="8" /> </Style>
<esri:GraphicsLayer ID="LeakLoggers" Renderer="{StaticResource LeakLoggerRenderer}" MouseLeftButtonDown="LeakLoggers_MouseLeftButtonDown" />
private void LeakLoggers_MouseLeftButtonDown(object sender, GraphicMouseButtonEventArgs e) { long dcomId = 0; try { dcomId = Convert.ToInt64(e.Graphic.Attributes["DcomId"]); } catch { } // Retrieve the noise spectrum for this LD Logger ObservableCollection<LoggerSpectrum> oneSpectrum; bool foundSpectrum = NoiseSpectra.TryGetValue(dcomId, out oneSpectrum); if (foundSpectrum) { MyInfoWindow.Anchor = new ESRI.ArcGIS.Client.Geometry.MapPoint(e.Graphic.Geometry.Extent.XMin, e.Graphic.Geometry.Extent.YMin); MyInfoWindow.IsOpen = true; RadChart1.ItemsSource = oneSpectrum; } }
private void MyInfoWindow_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) { MyInfoWindow.IsOpen = false; }
Graphic proc_get_pieSymbol(double gps_x, double gps_y, KeyValuePair<string, int>[] _serie) { // PIE Symbol definition PieMarkerSymbol _symbol = new ESRI.ArcGIS.Samples.PieChartSymbology.PieMarkerSymbol(); // Graphic definition Graphic _graphic = new Graphic(); // Independant value definition foreach (var elt in _serie) { _symbol.Fields.Add(new ESRI.ArcGIS.Samples.PieChartSymbology.Field() { DisplayName = elt.Key, FieldName = elt.Key }); } // Attach the preview symbol to a graphic for graphic layer _graphic.Symbol = _symbol; // Definition of dependant value. Note KeyValuePair<string, objet> is necessary to define value. The key must be an sepecific "independant value" and "object" is the dependant. // In my case, object is <int> foreach (var elt in _serie) { _graphic.Attributes.Add(new KeyValuePair<string, object>(elt.Key, elt.Value)); } // definition of destination gps position on the map _graphic.Geometry = new MapPoint(gps_x, gps_y); // the pie Symbol as Graphic for Graphics Layer is right now! return _graphic; }