Convert features into graphics to show them with mil2525d symbols.
Use case
A dictionary renderer uses a style file along with a rule engine to display advanced symbology. This is useful for displaying features using precise military symbology.
How to use the sample
Pan and zoom around the map. Observe the displayed military symbology on the map.
How it works
- Create a
Geodatabase
usingGeodatabase(geodatabasePath)
. - Load the geodatabase asynchronously using
Geodatabase.LoadAsync()
. - Instantiate a
SymbolDicitonary
usingSymbolDictionary(specificationType)
.specificationType
will be the mil2525d.stylx file.
- Load the symbol dictionary asynchronously using
DictionarySymbol.LoadAsync()
. - Wait for geodatabase to completely load.
- Cycle through each
GeodatabaseFeatureTable
from the geodatabase usingGeodatabase.GeodatabaseFeatureTables
. - Create a
FeatureLayer
from each table within the geodatabase usingFeatureLayer(GeodatabaseFeatureTable)
. - Load the feature layer asynchronously with
FeatureLayer.LoadAsync()
. - Wait for each layer to load.
- After the last layer has loaded, then create a new
Envelope
from a union of the extents of all layers.- Set the envelope to be the
Viewpoint
of the map view usingMapView.SetViewpoint(new Viewpoint(Envelope))
.
- Set the envelope to be the
- Add the feature layer to map using
Map.OperationalLayers.Add(FeatureLayer)
. - Create
DictionaryRenderer(SymbolDictionary)
and attach to the feature layer.
Relevant API
- DictionaryRenderer
- SymbolDictionary
Offline data
This sample downloads the following items from ArcGIS Online automatically:
- mil2525d.stylx - A stylx file for use with ArcGIS Runtime 100.0 - 100.4 to build custom applications that incorporate the MIL-STD-2525D symbol dictionary.
- militaryoverlay.geodatabase.zip - This is a mobile geodatabase created from the Military Overlay template for use in ArcGIS Runtime samples
Tags
military, symbol
Sample Code
<UserControl
x:Class="ArcGIS.UWP.Samples.FeatureLayerDictionaryRenderer.FeatureLayerDictionaryRenderer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:esri="using:Esri.ArcGISRuntime"
xmlns:esriUI="using:Esri.ArcGISRuntime.UI.Controls"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<esriUI:MapView x:Name="MyMapView" />
</Grid>
</UserControl>