資源簡介
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個文件信息
- 上一篇:蟻群算法演示程序
- 下一篇:2016年武漢大學地理信息夏令營編程試題與答案
評論
共有 條評論