本文整理汇总了C#中FeatureLayer.SetDefinition方法的典型用法代码示例。如果您正苦于以下问题:C# FeatureLayer.SetDefinition方法的具体用法?C# FeatureLayer.SetDefinition怎么用?C# FeatureLayer.SetDefinition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FeatureLayer
的用法示例。
在下文中一共展示了FeatureLayer.SetDefinition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetUpSymbolLevelsForUSHighways
/// <summary>
/// Call this method to apply symbol groups to the featureLayer - one group per value in the renderer.
/// The first group to be added will be the first group to be drawn
/// </summary>
/// <param name="featureLayer"></param>
private void SetUpSymbolLevelsForUSHighways(FeatureLayer featureLayer) {
//All of these methods have to be called on the MCT
if (Module1.OnUIThread)
throw new CalledOnWrongThreadException();
CIMBaseLayer baseLayer = featureLayer.GetDefinition();
//We need CIMGeoFeatureLayerBase because this class controls whether or not we
//use 'groups' (ie Pro Symbol Levels) with the renderer
CIMGeoFeatureLayerBase geoFeatureLayer = baseLayer as CIMGeoFeatureLayerBase;
// assume the unique value renderer was created using the CreateCIMRenderer()
CIMUniqueValueRenderer uniqueValueRenderer = geoFeatureLayer.Renderer as CIMUniqueValueRenderer;
CIMSymbolLayerDrawing symbolLayerDrawing = new CIMSymbolLayerDrawing();
// This flag controls the drawing code and forces it to use defined symbol layers.
//It must be set 'true'
symbolLayerDrawing.UseSymbolLayerDrawing = true;
// setup the symbol layers.
List<CIMSymbolLayerIdentifier> symbolLayers = new List<CIMSymbolLayerIdentifier>();
// this will be a for loop that will iterate over the unique value classes and updating the symbol in each class
int index = 0;
foreach (CIMUniqueValueGroup nextGroup in uniqueValueRenderer.Groups) {
foreach (CIMUniqueValueClass nextClass in nextGroup.Classes) {
CIMMultiLayerSymbol multiLayerSymbol = nextClass.Symbol.Symbol as CIMMultiLayerSymbol;
if (multiLayerSymbol == null) //This check probably is not needed
continue;
//Each group must be uniquely named
string uniqueName = "Group_" + index.ToString();
nextClass.Symbol.SymbolName = uniqueName;
for (int i = 0; i < multiLayerSymbol.SymbolLayers.Length; i++)
//Assign the unique name to all of the layers in the symbol
multiLayerSymbol.SymbolLayers[i].Name = uniqueName;
index++;
//Assign the name to a 'CIMSymbolLayerIdentifier'. This is the equivalent
//of a KeyValuePair in a Dictionary. The Names of each SymbolLayerIdentifier
//will be matched up in the renderer to a corresponding symbol (via nextClass.Symbol.SymbolName)
//So that each SymbolLayer is associated with a specific symbol for a specific value
CIMSymbolLayerIdentifier nextSymbolLayer = new CIMSymbolLayerIdentifier() {
SymbolReferenceName = "symbolReferenceName",
SymbolLayerName = uniqueName
};
symbolLayers.Add(nextSymbolLayer);
}
}
//This is where the symbol layers get added to the feature layer definition
symbolLayerDrawing.SymbolLayers = symbolLayers.ToArray();
geoFeatureLayer.SymbolLayerDrawing = symbolLayerDrawing;
// update the featureLayer definition.
featureLayer.SetDefinition(geoFeatureLayer as CIMBaseLayer);
}