예제 #1
0
        /// <summary>
        /// Renders a feature layer using graduated symbols and natural breaks to draw quantities.
        /// ![cb-symbols.png](http://Esri.github.io/arcgis-pro-sdk/images/Renderers/cb-symbols.png "Graduated symbols with natural breaks renderer.")
        /// </summary>
        /// <returns>
        /// </returns>
        internal static Task CBRendererGraduatedSymbols()
        {
            //Check feature layer name
            //Code works with the USDemographics feature layer available with the ArcGIS Pro SDK Sample data
            var featureLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType <FeatureLayer>().FirstOrDefault(f => f.Name == "USDemographics");

            if (featureLayer == null)
            {
                MessageBox.Show("This renderer works with the USDemographics feature layer available with the ArcGIS Pro SDK Sample data", "Data missing");
                return(Task.FromResult(0));
            }
            return(QueuedTask.Run(() =>
            {
                GraduatedSymbolsRendererDefinition gsDef = new GraduatedSymbolsRendererDefinition()
                {
                    ClassificationField = SDKHelpers.GetNumericField(featureLayer), //getting the first numeric field
                    ClassificationMethod = ClassificationMethod.NaturalBreaks,
                    MinimumSymbolSize = 4,
                    MaximumSymbolSize = 50,
                    BreakCount = 5,
                    ColorRamp = SDKHelpers.GetColorRamp(), //getting a color ramp
                };
                CIMClassBreaksRenderer renderer = (CIMClassBreaksRenderer)featureLayer.CreateRenderer(gsDef);
                featureLayer?.SetRenderer(renderer);
            }));
        }
 /// <summary>
 /// Renders a feature layer using graduated symbols and natural breaks to draw quantities.
 /// ![cb-symbols.png](http://Esri.github.io/arcgis-pro-sdk/images/Renderers/cb-symbols.png "Graduated symbols with natural breaks renderer.")
 /// </summary>
 /// <param name="featureLayer"></param>
 /// <returns>
 /// </returns>
 internal static async Task CBRendererGraduatedSymbols(FeatureLayer featureLayer)
 {
     await QueuedTask.Run(() =>
     {
         GraduatedSymbolsRendererDefinition gsDef = new GraduatedSymbolsRendererDefinition()
         {
             ClassificationField  = SDKHelpers.GetNumericField(featureLayer), //getting the first numeric field
             ClassificationMethod = ClassificationMethod.NaturalBreaks,
             MinimumSymbolSize    = 4,
             MaximumSymbolSize    = 50,
             BreakCount           = 5,
             ColorRamp            = SDKHelpers.GetColorRamp(), //getting a color ramp
         };
         CIMClassBreaksRenderer renderer = (CIMClassBreaksRenderer)featureLayer.CreateRenderer(gsDef);
         featureLayer?.SetRenderer(renderer);
     });
 }
        protected override async void OnClick()
        {
            //Get all styles in the project
            var styles = Project.Current.GetItems <StyleProjectItem>();

            //Get a specific style in the project
            StyleProjectItem style = styles.First(x => x.Name == "CustomStyle");
            var results            = await style.SearchSymbolsAsync(StyleItemType.PointSymbol, "Tree");

            var treeSymbolItem = results.FirstOrDefault();

            if (treeSymbolItem == null)
            {
                return;
            }

            var layer = MapView.Active.Map.GetLayersAsFlattenedList().FirstOrDefault(l => l.Name == "Trees") as FeatureLayer;

            if (layer == null)
            {
                return;
            }

            Task t = QueuedTask.Run(() =>
            {
                var symbol = treeSymbolItem.Symbol as CIMPointSymbol;
                symbol.SetSize(12.0);
                symbol.SetColor(ColorFactory.CreateRGBColor(24, 69, 59));

                var renderer = new GraduatedSymbolsRendererDefinition()
                {
                    BreakCount           = 5,
                    ClassificationField  = "height",
                    ClassificationMethod = ClassificationMethod.EqualInterval,
                    SymbolTemplate       = symbol.MakeSymbolReference(),
                    MinimumSymbolSize    = 6.0,
                    MaximumSymbolSize    = 20.0
                };

                //Update the feature layer renderer
                layer.SetRenderer(layer.CreateRenderer(renderer));
            });
        }