本文整理汇总了C#中FeatureLayer.GetDefinition方法的典型用法代码示例。如果您正苦于以下问题:C# FeatureLayer.GetDefinition方法的具体用法?C# FeatureLayer.GetDefinition怎么用?C# FeatureLayer.GetDefinition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FeatureLayer
的用法示例。
在下文中一共展示了FeatureLayer.GetDefinition方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
}
示例2: CreateAdvancedPopupAsync
private Task CreateAdvancedPopupAsync(FeatureLayer fl) {
return QueuedTask.Run(() => {
var def = fl.GetDefinition() as CIMFeatureLayer;
string popupText = string.Format("{0} ({1}), population {2}",
PopupDefinition.FormatFieldName("STATE_NAME"),
PopupDefinition.FormatFieldName("STATE_ABBR"),
PopupDefinition.FormatFieldName("TOTPOP2010"));
//Create a popup definition with text and table, an image and some different chart types
//Just add all the table fields by default like we did for the "Simple Popup"
PopupDefinition popup = new PopupDefinition() {
Title = PopupDefinition.FormatTitle(
string.Format("{0} (Advanced Popup)", PopupDefinition.FormatFieldName(def.FeatureTable.DisplayField))),
TextMediaInfo = new TextMediaInfo() {
Text = PopupDefinition.FormatText(popupText)
},
TableMediaInfo = new TableMediaInfo(fl.GetFeatureClass().GetDefinition().GetFields()),
OtherMediaInfos = {
//Add an image of the US
new ImageMediaInfo() {
SourceURL = PopupDefinition.FormatUrl(
new Uri("http://www.town-usa.com/images/timezone.gif", UriKind.Absolute))
},
//Add a column chart to the popup carousel
new ChartMediaInfo() {
Title = PopupDefinition.FormatTitle("Column Chart"),
Caption = PopupDefinition.FormatCaption("1990 vs 2000 population"),
ChartMediaType = ChartMediaType.Column,
FieldNames = { "POP1990","POP2000" }
},
//Add a pie chart to the popup carousel
new ChartMediaInfo() {
Title = PopupDefinition.FormatTitle("Pie Chart"),
Caption = PopupDefinition.FormatCaption("2012 House Dem. vs Rep."),
ChartMediaType = ChartMediaType.Pie,
FieldNames = { "Y2012HOU_D","Y2012HOU_R" }
},
//Add a line chart to the popup carousel
new ChartMediaInfo() {
Title = PopupDefinition.FormatTitle("Line Chart"),
Caption = PopupDefinition.FormatCaption("Pop Change 1990 to 2000"),
ChartMediaType = ChartMediaType.Line,
FieldNames = { "POP1990", "POP2000" }
}
}
};
fl.SetPopupInfo(popup.CreatePopupInfo());
});
}
示例3: CreateSimplePopupAsync
private Task CreateSimplePopupAsync(FeatureLayer fl) {
return QueuedTask.Run(() => {
var def = fl.GetDefinition() as CIMFeatureLayer;
string popupText = string.Format("{0} ({1}), population {2}",
PopupDefinition.FormatFieldName("STATE_NAME"),
PopupDefinition.FormatFieldName("STATE_ABBR"),
PopupDefinition.FormatFieldName("TOTPOP2010"));
//Create a popup definition with text and table
//Just add all the table fields by default
PopupDefinition popup = new PopupDefinition() {
Title = PopupDefinition.FormatTitle(
string.Format("{0} (Simple Popup)", PopupDefinition.FormatFieldName(def.FeatureTable.DisplayField))),
TextMediaInfo = new TextMediaInfo() {
Text = PopupDefinition.FormatText(popupText)
},
TableMediaInfo = new TableMediaInfo(fl.GetFeatureClass().GetDefinition().GetFields())
};
fl.SetPopupInfo(popup.CreatePopupInfo());
});
}