Skip to main content

ShapeAttributeValueProvider Class

The class that is used to obtain an attribute from a shape file source (Shapefile or KML file) that is applied to shape items.

Namespace: DevExpress.Xpf.Map

Assembly: DevExpress.Xpf.Map.v24.1.dll

NuGet Package: DevExpress.Wpf.Map

Declaration

public class ShapeAttributeValueProvider :
    AttributeValueProviderBase,
    IColorizerValueProvider

Example

This example demonstrates how to paint each map contour in a specific color, based on population data from the Shapefile.

To do this, create a colorizer and assign it to the VectorLayer.Colorizer property.

To access GDP information from Shapefiles, assign a ShapeAttributeValueProvider object with the specified attribute name (NamedAttributeProviderBase.AttributeName) to the ChoroplethColorizer.ValueProvider property.

Then, specify range stops (data splits in ranges) for the colorizer using the ChoroplethColorizer.RangeStops property.

Finally, add the desired set of colors to the ColorCollection object that is accessed using the MapColorizer.Colors property. The colorizer automatically associates each color with the specified data range to colorize map shapes.

<dxm:VectorLayer.Colorizer>
    <dxm:ChoroplethColorizer RangeStops="0 3000 10000 18000 28000 44000 82000 185000 1000000 2500000 15000000">
        <dxm:ChoroplethColorizer.ValueProvider>
            <dxm:ShapeAttributeValueProvider AttributeName="GDP_MD_EST"/>
        </dxm:ChoroplethColorizer.ValueProvider>
        <dxm:ChoroplethColorizer.Colors>
            <Color>#5F8B95</Color>
            <Color>#799689</Color>
            <Color>#A2A875</Color>
            <Color>#CEBB5F</Color>
            <Color>#F2CB4E</Color>
            <Color>#F1C149</Color>
            <Color>#E5A84D</Color>
            <Color>#D6864E</Color>
            <Color>#C56450</Color>
            <Color>#BA4D51</Color>
        </dxm:ChoroplethColorizer.Colors>
    </dxm:ChoroplethColorizer>
</dxm:VectorLayer.Colorizer>
<dxm:MapControl.Legends>
    <dxm:ColorScaleLegend Layer="{Binding ElementName=mapLayer}" Header="GDP By Countries"
                            Description="In US dollars." RangeStopsFormat="0,B" MinWidth="550"/>
</dxm:MapControl.Legends>
See Also