当前位置: 首页>>代码示例>>C#>>正文


C# FeatureLayer.GetDefinition方法代码示例

本文整理汇总了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);
        }
开发者ID:ChaitG,项目名称:arcgis-pro-sdk-community-samples,代码行数:64,代码来源:CreateSymbolLevelsOnUSHighways.cs

示例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());
            });
        }
开发者ID:ChaitG,项目名称:arcgis-pro-sdk-community-samples,代码行数:50,代码来源:AdvancedPopup.cs

示例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());
            });
        }
开发者ID:ChaitG,项目名称:arcgis-pro-sdk-community-samples,代码行数:21,代码来源:SimplePopup.cs


注:本文中的FeatureLayer.GetDefinition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。