• 大小: 338KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C#
  • 标签: AO  

资源简介

c#下Arcobject的应用实例 介绍了AO在c#下的加载、创建的基本流程

资源截图

代码片段和文件信息


using System;
using System.IO ;
using System.Windows.Forms ;
using System.Reflection ; 

using ESRI.ArcGIS.Carto ; 
using ESRI.ArcGIS.Display ;
using ESRI.ArcGIS.Geometry ;
using ESRI.ArcGIS.Geodatabase ; 

namespace AoTest
{
/// 
/// 使用本类可以新建点、线、面
/// 移动点、线、面
/// 编辑线、面的节点
/// 使用时需设置Map和Currentlayer
/// 

public class AoEditor
{
private ilayer m_pCurrentlayer;
private IMap m_pMap ;
private IFeature m_pEditFeature ;
private IPoint m_pPoint;
private IDisplayFeedback m_pFeedback;
// private ISelectionTracker m_pSelectionTracker;
private bool m_bInUse;
private IPointCollection m_pPointCollection;

/// 
/// 当前图层只写
/// 

public ilayer Currentlayer
{
set
{
m_pCurrentlayer = (ilayer) value;
}
}

/// 
/// 地图对象只写
/// 

public IMap Map
{
set 
{
m_pMap = (IMap) value;
}
}

/// 
/// 构造函数
/// 

public AoEditor()
{

}

/// 
/// 开始编辑使工作空间处于可编辑状态
/// 在进行图层编辑前必须调用本方法
/// 

public void StartEditing()
{  
try
{
if (m_pCurrentlayer ==null )  return ;

if (!(m_pCurrentlayer is IGeoFeaturelayer))  return ;

IFeaturelayer pFeaturelayer = (IFeaturelayer) m_pCurrentlayer;
IDataset pDataset = (IDataset) pFeaturelayer.FeatureClass;
if (pDataset ==null) return ;
  
// 开始编辑并设置Undo/Redo 为可用
IWorkspaceEdit pWorkspaceEdit =(IWorkspaceEdit) pDataset.Workspace;
if (!pWorkspaceEdit.IsBeingEdited()) 
{
pWorkspaceEdit.StartEditing(true);
pWorkspaceEdit.EnableUndoRedo();
}
}
catch(Exception e)
{
Console.WriteLine(e.Message.ToString());
}
}

/// 
/// 停止编辑,并将以前的编辑结果保存到数据文件中。
/// 

public void StopEditing()
{
bool bHasEdits = false;
bool bSave = false;
  
try
{
if (m_pCurrentlayer ==null) return ;

IFeaturelayer pFeaturelayer =(IFeaturelayer) m_pCurrentlayer;
if (pFeaturelayer.FeatureClass ==null) return ;

IDataset pDataset =(IDataset) pFeaturelayer.FeatureClass;
if (pDataset ==null) return ;
   
//如果数据已被修改,则提示用户是否保存
IWorkspaceEdit pWorkspaceEdit =(IWorkspaceEdit) pDataset.Workspace;
if (pWorkspaceEdit.IsBeingEdited())
{
pWorkspaceEdit.HasEdits(ref bHasEdits);
if (bHasEdits)
{
DialogResult result;
result = MessageBox.Show(“是否保存已做的修改?““提示“MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
bSave = true;
}
}
pWorkspaceEdit.StopEditing(bSave);
}
 
m_pMap.ClearSelection();
IActiveView pActiveView =(IActiveView) m_pMap;
pActiveView.Refresh();
}
catch(Exception e)
{
Console.WriteLine(e.Message.ToString());
}

}

/// 
/// 检查工作空间中是否有数据处于编辑状态
/// 

/// 是否正在编辑

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      28157  2005-08-17 16:39  AoTest\AoEditor.cs

     文件      17924  2008-04-28 14:55  AoTest\AoTest.csproj

     文件       2083  2008-04-21 13:51  AoTest\AoTest.csproj.user

     文件        899  2008-04-21 13:51  AoTest\AoTest.sln

    ..A..H.     23552  2008-05-20 23:23  AoTest\AoTest.suo

     文件       1078  2005-08-08 08:50  AoTest\App.ico

     文件       1859  2005-08-08 08:50  AoTest\AssemblyInfo.cs

     文件       6692  2005-08-10 09:35  AoTest\AttributeList.cs

     文件       9223  2005-08-09 17:37  AoTest\AttributeList.resx

     文件      28157  2005-08-17 16:39  AoTest\Backup\AoEditor.cs

     文件      11126  2005-08-17 14:34  AoTest\Backup\AoTest.csproj

     文件       1805  2005-09-29 15:53  AoTest\Backup\AoTest.csproj.user

     文件        897  2005-08-08 08:50  AoTest\Backup\AoTest.sln

    ..A..H.      9216  2005-09-29 15:53  AoTest\Backup\AoTest.suo

     文件       1078  2005-08-08 08:50  AoTest\Backup\App.ico

     文件       1859  2005-08-08 08:50  AoTest\Backup\AssemblyInfo.cs

     文件       6692  2005-08-10 09:35  AoTest\Backup\AttributeList.cs

     文件       9223  2005-08-09 17:37  AoTest\Backup\AttributeList.resx

     文件      66248  2005-09-27 15:01  AoTest\Backup\Form1.cs

     文件      63755  2005-08-18 09:38  AoTest\Backup\Form1.resx

     文件       9944  2005-09-29 15:52  AoTest\Backup\SurveyTools.cs

     文件     122880  2005-09-27 15:01  AoTest\bin\Debug\AoTest.exe

     文件     105984  2005-09-27 15:01  AoTest\bin\Debug\AoTest.pdb

     文件       5632  2005-12-08 14:51  AoTest\bin\Debug\AoTest.vshost.exe

     文件       5120  2005-08-09 09:07  AoTest\bin\Debug\Noname43651.mxd

     文件      11862  2005-08-18 09:54  AoTest\bin\Debug\USA\CAPITALS.DBF

     文件        167  1999-05-28 13:59  AoTest\bin\Debug\USA\Capitals.prj

     文件        788  2005-08-18 09:54  AoTest\bin\Debug\USA\CAPITALS.sbn

     文件        156  2005-08-18 09:54  AoTest\bin\Debug\USA\CAPITALS.sbx

     文件       2004  2005-08-18 09:54  AoTest\bin\Debug\USA\CAPITALS.SHP

............此处省略41个文件信息

评论

共有 条评论