Exemple #1
0
        public static ArcGIS.Core.CIM.CIMDictionaryRenderer CreateDictionaryRenderer()
        {
            Dictionary <string, string> fieldMapDictionary;

            if (Standard == SupportedStandardsType.mil2525c_b2)
            {
                fieldMapDictionary = fieldMap2525C_B2;
            }
            else
            {
                fieldMapDictionary = fieldMap2525D;
            }

            ArcGIS.Core.CIM.CIMStringMap[] stringMap = new ArcGIS.Core.CIM.CIMStringMap[fieldMapDictionary.Count()];

            int count = 0;

            foreach (KeyValuePair <string, string> pair in fieldMapDictionary)
            {
                stringMap[count]       = new ArcGIS.Core.CIM.CIMStringMap();
                stringMap[count].Key   = pair.Key;
                stringMap[count].Value = pair.Value;
                count++;
            }

            ArcGIS.Core.CIM.CIMDictionaryRenderer dictionaryRenderer =
                new ArcGIS.Core.CIM.CIMDictionaryRenderer();

            dictionaryRenderer.DictionaryName = GetDictionaryString();
            dictionaryRenderer.FieldMap       = stringMap;

            return(dictionaryRenderer);
        }
        public async Task <bool> AddFeatureClassToActiveView(string featureClassName)
        {
            if (string.IsNullOrEmpty(featureClassName) || string.IsNullOrEmpty(DatabaseName))
            {
                return(await Task.FromResult <bool>(false));
            }

            bool layerAdded = false;

            await ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
            {
                string uri       = $@"{DatabaseName}\{ProSymbolUtilities.GetDatasetName()}\{featureClassName}";
                Item currentItem = ItemFactory.Instance.Create(uri);
                if (LayerFactory.Instance.CanCreateLayerFrom(currentItem))
                {
                    FeatureLayer fl = LayerFactory.Instance.CreateLayer(currentItem,
                                                                        MapView.Active.Map) as FeatureLayer;

                    if (fl != null)
                    {
                        ArcGIS.Core.CIM.CIMDictionaryRenderer dictionaryRenderer =
                            ProSymbolUtilities.CreateDictionaryRenderer();
                        fl.SetRenderer(dictionaryRenderer);

                        layerAdded = true;
                    }
                }
            });

            return(await Task.FromResult <bool>(layerAdded));
        }