конвертировать шейп/GDB файлы в SDE

0 голосов
спросил 11 Май, 12 от ilshat86 (360 баллов) в категории Программные продукты Esri
Доброго времени суток. Есть задача конвертировать шейп/GDB файлы в SDE с использованием asp.net. почему то при использовании инструментов аркгис FeatureClassToFeatureClass или FeatureClassToGeodatabase возникает ошибка и вылетает программа.
вот кусочек кода. может я что то не так ввожу

public static IWorkspace ArcSdeWorkspaceFromFile(String connectionFile)
          {
              Type factoryType = Type.GetTypeFromProgID(
               "esriDataSourcesGDB.SdeWorkspaceFactory");
              IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)
               Activator.CreateInstance(factoryType);
              return workspaceFactory.OpenFromFile(connectionFile, 0);
          }


private void button5_Click(object sender, EventArgs e)
        {
           FileInfo fi = new FileInfo(textBox1.Text);
            string unpackDirectory = fi.DirectoryName;
            IWorkspace workspace = ArcSdeWorkspaceFromFile(@"D:\test\test.sde");
            Geoprocessor GP = new Geoprocessor();
            FeatureClassToFeatureClass FF = new FeatureClassToFeatureClass();
            
            IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactoryClass();
               //open the workspace containing the featureclass
            IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspaceFactory.OpenFromFile(unpackDirectory, 0);
               //open the featureclass
            IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(FileName.Text);
            ITrackCancel trackCancel = new ESRI.ArcGIS.Display.CancelTrackerClass();

            FF.in_features = featureClass;
            FF.out_path = workspace.WorkspaceFactory;
            FF.out_feature_class = "#";
            FF.out_name = "Line";
            FF.field_mapping = "#";
            FF.where_clause = "#";

           GP.OverwriteOutput = true;
           try
           {
            
            IGeoProcessorResult result = GP.Execute(FF, trackCancel) as IGeoProcessorResult;
            if (result != null)
            {
               if (result.Status != esriJobStatus.esriJobSucceeded)
                    Console.WriteLine("Failed to create the composite address Locator: ")
                        ;
               else
                    Console.WriteLine("Created the composite address Locator. ");
            }
            else
            {
               if (GP.MessageCount != 0)
               {
                    for (int i = 0; i < GP.MessageCount; i++)
                    {
                        Console.WriteLine("GP Message " + i + " " + GP.GetMessage(i));
                    }
               }
               else
                    Console.WriteLine("Execution failed with no status. ");
            }
    }
           catch (Exception W)
           {
               Console.WriteLine(
                   "An Exception occured while executing the CreateCompositeAddressLocator Tool: " + W);
           }
        }

5 Ответы

0 голосов
ответил 15 Май, 12 от ilshat86 (360 баллов)
а что ни у кого нет никаких догадок хотя бы что ли?
0 голосов
ответил 17 Май, 12 от Dido_kz1 (11,020 баллов)
с использованием asp.net.
это тонкий или толстый клиент ? постарайтесь по шагово проверить и скажите, где именно вылетает, и у ESRI куча примеров, воспользуйтесь поиском
0 голосов
ответил 29 Май, 12 от ilshat86 (360 баллов)
где именно вылетает,

   IGeoProcessorResult result = GP.Execute(FF, trackCancel) as IGeoProcessorResult;
у ESRI куча примеров, воспользуйтесь поиском

Уже смотрел именно таких примеров нет. чтоб в SDE загружали или хотя бы в GDB. есть примеры только для считывания из базы
0 голосов
ответил 06 Июнь, 12 от ilshat86 (360 баллов)
а есть на форуме кто нить, кто писал веб-сервис? возникает вопрос почему некоторые инструменты работают в веб-режиме а некоторые нет. например, FeatureClassToFeatureClass в случае когда shp конвертируется в GDB все нормально работает а при использовании topotoraster вылетает ошибка. хотя в режиме десктоп эти же самые процедуры работают норм.
0 голосов
ответил 08 Июнь, 12 от ilshat86 (360 баллов)
Если кому нибудь еще понадобиться. я разобрался с проблемой. Для корректной работы инструмента topotoraster в параметр input_feature путь к слою нужно заключать в одинарные кавычки например
 input = "'D:\test\sample.gdb\line' visota Contour" 
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...