Создание базы геоданных

0 голосов
спросил 04 Авг, 11 от BodyZ (460 баллов) в категории Программные продукты Esri
Доброго времени суток.
Столкнулся с проблемой программного создания базы геоданных на локальной машине.
В описании нашел статью о том, как это сделать

http://resources.esri.com/help/9.3/arcgisengine/dotnet/867915B0-DB2F-475F-BBC3-ACCE013DF855.htm

Но не могу разобраться откуда берется входной параметр
IWorkspace workspace
функции

public IFeatureDataset CreateFeatureDataset_Example
(IWorkspace workspace,
  string fdsName, ISpatialReference fdsSR)


Заранее спасибо за ответ.
Извините может за излишнюю назойливость :oops:

3 Ответы

0 голосов
ответил 18 Авг, 11 от BodyZ (460 баллов)
Доброго времени суток.
Простите за долгое молчание :wink:
Подскажите пожалуйста от какого объекта (или каким образом) получается входной параметр
IWorkspace workspace в этом примере:
http://resources.esri.com/help/9.3/arcgisengine/dotnet/867915B0-DB2F-475F-BBC3-ACCE013DF855.htm
В моем случае мне необходимо создать:
1.     Базу геоданных на локальной машине;
2.     В созданной базе геоданных создать и заполнить значениями Shp-файл (Точечных объектов);
3.     Открыть созданный Shp-файл в проекте ArcMap в виде слоя;
4.     В открытом слое задать необходимые условные обозначения точкам, в зависимости от параметра.
И все это желательно проделать в автоматическом режиме. :roll:
Возможно ли это? :?:
Заранее спасибо за ответ. :)


Пункт 1-3 реализовал таким образом
        public override void OnClick()

        {
            // TODO: Add Command_Body_Test.OnClick implementation
            //MessageBox.Show("Автоматическое добавление слоя");
            IMxDocument pMxDocument = m_application.Document as IMxDocument;
            IMap pLocalMap;
            IMaps pMaps = pMxDocument.Maps;
            ILayer pLayer;
            for (int i = 0; i <= pMaps.Count - 1; i++)
            {
               pLocalMap = pMaps.get_Item(i);
               string s1 = pLocalMap.Name;
               IEnumLayer pEnumLayer = pLocalMap.get_Layers(null, true);
               pEnumLayer.Reset();
               pLayer = pEnumLayer.Next();
               Form_Select_Layer form = new Form_Select_Layer(m_application);
               form.ShowDialog();

               if (form.IsNeedCopy)
               {
                    while (pLayer.Name != form.SelectedLayerName)//"Комерційні")
                        pLayer = pEnumLayer.Next();
                    // Создание БАЗЫ геоданных
                    try
                    {
                        //Клонирование коллекции колонок
                        IFieldsEdit pNewFields = new FieldsClass();
                        IClone pCloneField;
                        IField pNewField;
                        IFeatureClass pFClass = (pLayer as IFeatureLayer).FeatureClass;
                        for (int k = 0; k < pFClass.Fields.FieldCount; k++)
                        {
                            pCloneField = (IClone)pFClass.Fields.get_Field(k);
                            pNewField = (IField)pCloneField.Clone();                            pNewFields.AddField(pNewField);
                        }
                        // END //Клонирование коллекции колонок
                        //Клонирование системы координат из исходного слоя
                        ISpatialReference pSR;
                        IGeoDataset pGeoDS = (IGeoDataset)pLayer;
                        IClone pClone = pGeoDS.SpatialReference as IClone;
                        pSR = (ISpatialReference)pClone.Clone();
                        // END //Клонирование системы координат из исходного слоя
                        // Создание базы геоданных
                        IWorkspace pWorkSpace = CreateFileGdbWorkspace("D:\\Gis\\Testing\\", "SampleBodyTest.gdb");
                  &nb
0 голосов
ответил 18 Авг, 11 от TDenis (42,620 баллов)
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...