Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

LinearRangeDistribution Class

Represents the linear distribution of color ranges in a colorizer.

Namespace: DevExpress.XtraMap

Assembly: DevExpress.XtraMap.v24.2.dll

NuGet Package: DevExpress.Win.Map

#Declaration

public class LinearRangeDistribution :
    RangeDistributionBase

The following members return LinearRangeDistribution objects:

#Example

Set the LinearRangeDistribution, LogarithmicRangeDistribution or ExponentialRangeDistribution object to the ChoroplethColorizer.RangeDistribution property. Note that if the ChoroplethColorizer.ApproximateColors property value equals false, shapes with values inside one range interval have the same color.

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using DevExpress.Map;
using DevExpress.XtraMap;

namespace RangeDistributions {
    public partial class Form1 : Form {
        const string filepath = "../../Data/Countries.shp";

        List<RangeDistributionBase> distributions = new List<RangeDistributionBase>{ 
            new LinearRangeDistribution(),
            new LogarithmicRangeDistribution(),
            new ExponentialRangeDistribution()
        };

        VectorItemsLayer MapLayer { get { return (VectorItemsLayer)mapControl1.Layers["MapLayer"]; } }
        ChoroplethColorizer Colorizer { get { return (ChoroplethColorizer)MapLayer.Colorizer; } }
        ShapefileDataAdapter Adapter { get { return (ShapefileDataAdapter)MapLayer.Data; } }

        public Form1() {
            InitializeComponent();

            cbRangeDistribution.DataSource = distributions;

            Uri baseUri = new Uri(System.Reflection.Assembly.GetEntryAssembly().Location);
            Adapter.FileUri = new Uri(baseUri, filepath);
        }

        private void cbRangeDistribution_SelectedIndexChanged(object sender, EventArgs e) {
            RangeDistributionBase selectedDistribution = cbRangeDistribution.SelectedItem as RangeDistributionBase;
            if (selectedDistribution == null) return;

            if (selectedDistribution.Equals(distributions[0])) seFactor.Enabled = false;
            else {
                seFactor.Enabled = true;
                EquationRangeDistribution eqDistribution = selectedDistribution as EquationRangeDistribution;
                eqDistribution.Factor = (double)seFactor.Value;
            }

            Colorizer.RangeDistribution = selectedDistribution;
        }

        private void seFactor_EditValueChanged(object sender, EventArgs e) {
            EquationRangeDistribution distribution = Colorizer.RangeDistribution as EquationRangeDistribution;
            if (distribution == null) return;

            distribution.Factor = (double)seFactor.Value;
        }

        #region #ApproximateColors
        private void cbApproximateColors_CheckedChanged(object sender, EventArgs e) {
            Colorizer.ApproximateColors = cbApproximateColors.Checked;
        }
        #endregion #ApproximateColors
    }
}

#Inheritance

Object
RangeDistributionBase
LinearRangeDistribution
See Also