Exemple #1
0
        private void btnImport_Click(object sender, EventArgs e)
        {
            ISpatialReferenceDialog2 pSpatialReferenceDialog2 = new SpatialReferenceDialogClass();

            _spatialReference = pSpatialReferenceDialog2.DoModalCreate(true, true, true, 0);
            if (_spatialReference == null)
            {
                return;
            }
            IWorkspaceEdit pWorkspaceEdit = _targetWorkspace as IWorkspaceEdit;

            if (pWorkspaceEdit == null)
            {
                return;
            }
            pWorkspaceEdit.StartEditing(true);
            pWorkspaceEdit.StartEditOperation();
            try
            {
                _pointList             = new List <CustomPoint>();
                _pointFeatureClassList = new List <CustomFeatureClass>();
                _lineFeatureClassList  = new List <CustomFeatureClass>();
                if (chkHasCoordInfo.Checked == false)
                {
                    GetSurveyPointList();
                }
                ExcelToPointFeatureClass();
                ExcelToLineFeatureClass();
                foreach (CustomFeatureClass customFeatureClass in _pointFeatureClassList)
                {
                    WorkspaceHelper.LoadFeatureClass(_map, customFeatureClass.FeatureClass);
                }
                foreach (CustomFeatureClass customFeatureClass in _lineFeatureClassList)
                {
                    WorkspaceHelper.LoadFeatureClass(_map, customFeatureClass.FeatureClass);
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
            finally
            {
                pWorkspaceEdit.StopEditOperation();
                pWorkspaceEdit.StopEditing(true);

                foreach (Process p in Process.GetProcessesByName("Excel"))
                {
                    if (string.IsNullOrEmpty(p.MainWindowTitle))
                    {
                        p.Kill();
                    }
                }
            }
        }
Exemple #2
0
        private IFeatureClass CreateFeatureClass(string tableName, esriGeometryType type, List <FieldMapping> fieldMappings)
        {
            IWorkspaceEdit pWorkspaceEdit = _targetWorkspace as IWorkspaceEdit;

            if (pWorkspaceEdit == null)
            {
                return(null);
            }
            if (pWorkspaceEdit.IsBeingEdited())
            {
                pWorkspaceEdit.StopEditOperation();
                pWorkspaceEdit.StopEditing(true);
            }
            IFeatureClass pFeatureClass = WorkspaceHelper.CreateFeatureClass(_targetWorkspace, tableName, type, _spatialReference);

            FeatureClassUtil.AddZ(pFeatureClass);
            FeatureClassUtil.AddM(pFeatureClass);
            foreach (FieldMapping fieldMapping in fieldMappings)
            {
                switch (fieldMapping.Type)
                {
                case esriFieldType.esriFieldTypeInteger:
                    FeatureClassUtil.AddIntField(pFeatureClass, fieldMapping.Name, fieldMapping.Length, null, fieldMapping.AliasName);
                    break;

                case esriFieldType.esriFieldTypeDouble:
                    FeatureClassUtil.AddDoubleField(pFeatureClass, fieldMapping.Name, fieldMapping.Length, fieldMapping.Precision, null, fieldMapping.AliasName);
                    break;

                case esriFieldType.esriFieldTypeString:
                    FeatureClassUtil.AddStringField(pFeatureClass, fieldMapping.Name, fieldMapping.Length, null, fieldMapping.AliasName);
                    break;

                case esriFieldType.esriFieldTypeDate:
                    FeatureClassUtil.AddDateField(pFeatureClass, fieldMapping.Name, fieldMapping.AliasName);
                    break;

                default:
                    break;
                }
                fieldMapping.IndexTargetField = pFeatureClass.FindField(fieldMapping.Name);
            }

            return(pFeatureClass);
        }