Example #1
0
        /// <summary>
        /// Renders a feature layer using proportional symbols to draw quantities.
        /// ![Proportional Symbols renderer](http://Esri.github.io/arcgis-pro-sdk/images/Renderers/proportional-renderer.png)
        /// </summary>
        /// <remarks></remarks>
        /// <returns></returns>
        internal static Task ProportionalRendererAsync()
        {
            //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(() =>
            {
                //Gets the first numeric field of the feature layer
                var firstNumericFieldOfFeatureLayer = SDKHelpers.GetNumericField(featureLayer);
                //Gets the min and max value of the field
                var sizes = SDKHelpers.GetFieldMinMax(featureLayer, firstNumericFieldOfFeatureLayer);
                ProportionalRendererDefinition prDef = new ProportionalRendererDefinition()
                {
                    Field = firstNumericFieldOfFeatureLayer,
                    MinimumSymbolSize = 4,
                    MaximumSymbolSize = 50,
                    LowerSizeStop = Convert.ToDouble(sizes.Item1),
                    UpperSizeStop = Convert.ToDouble(sizes.Item2)
                };
                CIMProportionalRenderer propRndr = (CIMProportionalRenderer)featureLayer.CreateRenderer(prDef);
                featureLayer.SetRenderer(propRndr);
            }));
        }
 /// <summary>
 /// Renders a feature layer using proportional symbols to draw quantities.
 /// ![Proportional Symbols renderer](http://Esri.github.io/arcgis-pro-sdk/images/Renderers/proportional-renderer.png)
 /// </summary>
 /// <remarks></remarks>
 /// <param name="featureLayer"></param>
 /// <returns></returns>
 internal static Task ProportionalRenderer(FeatureLayer featureLayer)
 {
     return(QueuedTask.Run(() =>
     {
         //Gets the first numeric field of the feature layer
         var firstNumericFieldOfFeatureLayer = SDKHelpers.GetNumericField(featureLayer);
         //Gets the min and max value of the field
         var sizes = SDKHelpers.GetFieldMinMax(featureLayer, firstNumericFieldOfFeatureLayer);
         ProportionalRendererDefinition prDef = new ProportionalRendererDefinition()
         {
             Field = firstNumericFieldOfFeatureLayer,
             MinimumSymbolSize = 4,
             MaximumSymbolSize = 50,
             LowerSizeStop = Convert.ToDouble(sizes.Item1),
             UpperSizeStop = Convert.ToDouble(sizes.Item2)
         };
         CIMProportionalRenderer propRndr = (CIMProportionalRenderer)featureLayer.CreateRenderer(prDef);
         featureLayer.SetRenderer(propRndr);
     }));
 }