![GIS二次開(kāi)發(fā)(B)實(shí)驗(yàn)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/b669111910dc07f495fc1bf87f9ff4ff/b669111910dc07f495fc1bf87f9ff4ff1.gif)
![GIS二次開(kāi)發(fā)(B)實(shí)驗(yàn)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/b669111910dc07f495fc1bf87f9ff4ff/b669111910dc07f495fc1bf87f9ff4ff2.gif)
![GIS二次開(kāi)發(fā)(B)實(shí)驗(yàn)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/b669111910dc07f495fc1bf87f9ff4ff/b669111910dc07f495fc1bf87f9ff4ff3.gif)
![GIS二次開(kāi)發(fā)(B)實(shí)驗(yàn)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/b669111910dc07f495fc1bf87f9ff4ff/b669111910dc07f495fc1bf87f9ff4ff4.gif)
![GIS二次開(kāi)發(fā)(B)實(shí)驗(yàn)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/b669111910dc07f495fc1bf87f9ff4ff/b669111910dc07f495fc1bf87f9ff4ff5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
GIS二次開(kāi)發(fā)(B)實(shí)驗(yàn)報(bào)告二〇一五年11月3日目錄1 實(shí)驗(yàn)一:AOI書(shū)簽開(kāi)發(fā) 11.1 實(shí)驗(yàn)?zāi)康?11.2 實(shí)驗(yàn)內(nèi)容 11.3 實(shí)驗(yàn)步驟與結(jié)果 12 實(shí)驗(yàn)二:地圖數(shù)據(jù)組織與訪問(wèn) 82.1 實(shí)驗(yàn)?zāi)康?82.2 實(shí)驗(yàn)內(nèi)容 82.3 實(shí)驗(yàn)步驟與結(jié)果 83 實(shí)驗(yàn)三:地圖渲染與制圖輸出 163.1 實(shí)驗(yàn)?zāi)康?163.2 實(shí)驗(yàn)內(nèi)容 163.3 實(shí)驗(yàn)步驟結(jié)果 164 實(shí)驗(yàn)總結(jié) 23PAGE2/23實(shí)驗(yàn)一:AOI書(shū)簽開(kāi)發(fā)實(shí)驗(yàn)?zāi)康恼莆誂OI書(shū)簽程序開(kāi)發(fā)實(shí)驗(yàn)內(nèi)容實(shí)現(xiàn)AOI書(shū)簽的創(chuàng)建實(shí)現(xiàn)AOI書(shū)簽的調(diào)用實(shí)驗(yàn)步驟與結(jié)果publicvoidcreatebookmark(stringsbookmarkname)//參數(shù)為書(shū)簽名{//通過(guò)iaolbookmark接口創(chuàng)建一個(gè)變量,其類(lèi)型為aoibookmark,保存當(dāng)前地圖范圍。IAOIBookmarkaoibookmark=newAOIBookmarkClass();if(aoibookmark!=null){aoibookmark.Location=axMapControl1.ActiveView.Extent;aoibookmark.Name=sbookmarkname;}//通過(guò)imapbookmarks接口訪問(wèn)當(dāng)前地圖,并向地圖中加入新建書(shū)簽IMapBookmarksbookmarks=axMapControl1.MapasIMapBookmarks;if(bookmarks!=null){bookmarks.AddBookmark(aoibookmark);}cbbookmarklist.Items.Add(aoibookmark.Name);}}}namespacexy{publicpartialclassAdmitBookmarkName:Form{publicMainFormm_frmMain;publicAdmitBookmarkName(){InitializeComponent();}publicAdmitBookmarkName(MainFormfrm){InitializeComponent();if(frm!=null){m_frmMain=frm;}}//“確認(rèn)”按鈕的“點(diǎn)擊”事件響應(yīng)函數(shù),用于創(chuàng)建書(shū)簽privatevoidbtnAdmit_Click(objectsender,EventArgse){if(m_frmMain!=null&&tbBookmarkName.Text==""){m_frmMain.createbookmark(tbBookmarkName.Text);}this.Close();}}}
實(shí)驗(yàn)二:地圖數(shù)據(jù)組織與訪問(wèn)實(shí)驗(yàn)?zāi)康牧私釧rcGISEngine中地圖數(shù)據(jù)的組織結(jié)構(gòu)掌握ArcGISEngine地圖數(shù)據(jù)訪問(wèn)方法實(shí)驗(yàn)內(nèi)容編寫(xiě)“數(shù)據(jù)操作”類(lèi)利用DataGridView控件展示Continents圖層的序號(hào)和名稱字段實(shí)驗(yàn)步驟與結(jié)果初始化窗口usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceMapControlApplication1{publicpartialclassDataboard:Form{publicDataboard(){InitializeComponent();}publicDataboard(stringsDataName,DataTabledataTable){//初始化窗體及控件。InitializeComponent();//設(shè)置文本框中的文本和數(shù)據(jù)網(wǎng)格視圖的數(shù)據(jù)源。tbDataName.Text=sDataName;dataGridView1.DataSource=dataTable;}privatevoidDataboard_Load(objectsender,EventArgse){}privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse){}}}引用一個(gè)各種類(lèi)usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Data;usingESRI.ArcGIS.Carto;usingESRI.ArcGIS.Geometry;usingESRI.ArcGIS.Geodatabase;usingESRI.ArcGIS.DataSourcesFile;namespaceMapControlApplication1{classDataOperator{//保存當(dāng)前地圖對(duì)象publicIMapm_map;//用于傳入當(dāng)前地圖對(duì)象publicDataOperator(IMapmap){m_map=map;}publicILayerGetLaybyName(stringsLayerName){//判斷圖層名或地圖對(duì)象是否為空。若為空,函數(shù)返回空。if(sLayerName==""&&m_map==null){returnnull;}//對(duì)地圖對(duì)象中的所有圖層進(jìn)行遍歷。若某一圖層的名稱與指定圖層名相同,則返//回圖層。for(inti=0;i<m_map.LayerCount;i++){if(m_map.get_Layer(i).Name==sLayerName){returnm_map.get_Layer(i);}}//若地圖對(duì)象中的所有圖層名均與指定圖層名不匹配,函數(shù)返回值為空。returnnull;}publicDataTableGetContinentsNames(){//獲取Continents圖層,利用IFeatureLayer接口訪問(wèn),并判斷是否成功,若失敗函數(shù)返回空ILayerlayer=GetLaybyName("Continents");IFeatureLayerfeatureLayer=layerasIFeatureLayer;if(featureLayer==null){returnnull;}//調(diào)用IFeatureLayer接口的seach方法,獲取是否成功獲取第一個(gè)要素。若失敗,函數(shù)返回空。IFeaturefeature;IFeatureCursorfeatureCursor=featureLayer.Search(null,false);feature=featureCursor.NextFeature();if(feature==null){returnnull;}//新建DataTable類(lèi)型對(duì)象,用于函數(shù)返回。DataTabledataTable=newDataTable();//新建DataColumn類(lèi)型對(duì)象,分別保存各個(gè)州的序號(hào)的名稱。設(shè)置完畢后,加入datatable的列集合DataColumndataColumn=newDataColumn();dataColumn.ColumnName="序號(hào)";dataColumn.DataType=System.Type.GetType("System.Int32");dataTable.Columns.Add(dataColumn);dataColumn=newDataColumn();dataColumn.ColumnName="名稱";dataColumn.DataType=System.Type.GetType("System.String");dataTable.Columns.Add(dataColumn);//對(duì)圖層中的要素進(jìn)行遍歷。每獲取一個(gè)要素,就關(guān)聯(lián)datatable的下一個(gè)datarow,DataRowdataRow;while(feature!=null){dataRow=dataTable.NewRow();dataRow[0]=feature.get_Value(0);dataRow[1]=feature.get_Value(2);dataTable.Rows.Add(dataRow);feature=featureCursor.NextFeature();}//返回設(shè)置好的數(shù)據(jù)表。returndataTable;}}}在主窗體中加入代碼,并運(yùn)行privatevoidmiAccessData_Click(objectsender,EventArgse){DataOperatordataOperator=newDataOperator(axMapControl1.Map);DataboarddataBord=newDataboard("各大洲名",dataOperator.GetContinentsNames());//運(yùn)行載有數(shù)據(jù)的“數(shù)據(jù)展示臺(tái)”窗體對(duì)象。dataBord.Show();}
實(shí)驗(yàn)三:地圖渲染與制圖輸出實(shí)驗(yàn)?zāi)康牧私獾貓D符號(hào)的分類(lèi)與可視化過(guò)程掌握地圖符號(hào)的渲染方法實(shí)驗(yàn)內(nèi)容編寫(xiě)“地圖編制”類(lèi),添加成員函數(shù)實(shí)現(xiàn)獲取地圖渲染器信息功能實(shí)現(xiàn)地圖的簡(jiǎn)單符號(hào)渲染實(shí)驗(yàn)步驟結(jié)果
C#Code
private
void
簡(jiǎn)單渲染圖層ToolStripMenuItem1_Click(object
sender,
EventArgs
e)
{
dataoperator
dataOperator
=
new
dataoperator(axMapControl1.Map);
ILayer
layer
=
dataOperator.getlayerbyname("World
Cities");
IRgbColor
rgbColor
=
new
RgbColorClass();
rgbColor.Blue
=
0;
rgbColor.Red
=
255;
rgbColor.Green
=
0;
IColor
color
=
rgbColor
as
IColor;
ISymbol
symbol
=
MapComposer.getsymbolfromlayer(layer);
bool
res
=
MapComposer.RenderSimply(layer,
color);
if(res)
{
axMapControl1.ActiveView.ContentsChanged();
axMapControl1.ActiveView.Refresh();
簡(jiǎn)單渲染圖層ToolStripMenuItem.Enabled
=
false;
}
else
{
MessageBox.Show("簡(jiǎn)單渲染圖層失敗");
}
}主窗體新建渲染圖層菜單,并新建子菜單
C#Code
private
void
獲取渲染器信息ToolStripMenuItem_Click(object
sender,
EventArgs
e)
{
dataoperator
dataOperator
=
new
dataoperator(axMapControl1.Map);
ILayer
layer
=
dataOperator.getlayerbyname("World
Cities");
MessageBox.Show(MapComposer.getrendertypebylayer(layer));
}新建MapComposer類(lèi)并輸入以下代碼
C#Code
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
ESRI.ArcGIS.esriSystem;
using
ESRI.ArcGIS.Carto;
using
ESRI.ArcGIS.Controls;
using
ESRI.ArcGIS.ADF;
using
ESRI.ArcGIS.SystemUI;
using
ESRI.ArcGIS.Geometry;
using
ESRI.ArcGIS.Display;
using
ESRI.ArcGIS.Geodatabase;
namespace
MapControlApplication1
{
class
MapComposer
{
public
static
string
getrendertypebylayer(ILayer
layer)
{
if(layer
==
null)
return
"獲取失敗";
IFeatureLayer
ftly
=
(IFeatureLayer)layer;
IGeoFeatureLayer
gftly
=
(IGeoFeatureLayer)layer;
IFeatureRenderer
ftren
=
gftly.Renderer;
if(ftren
is
ISimpleRenderer)
return
"ISimpleRenderer";
else
if(ftren
is
IUniqueValueRenderer)
return
"IUniqueValueRenderer";
else
if(ftren
is
IDotDensityRenderer)
return
"IDotDensityRenderer";
else
if(ftren
is
IChartRenderer)
return
"IChartRenderer";
else
if(ftren
is
IProportionalSymbolRenderer)
return
"IProportionalSymbolRenderer";
return
"未知或者獲取渲染器失敗";
}
public
static
ISymbol
getsymbolfromlayer(ILayer
layer)
{
if(layer
==
null)
return
null;
IFeatureLayer
ftly
=
(IFeatureLayer)layer;
IFeatureCursor
ftcs
=
ftly.Search(null,
false);
IFeature
ft
=
ftcs.NextFeature();
if(ft
==
null)
return
null;
IGeoFeatureLayer
gftly
=
ftly
as
IGeoFeatureLayer;
IFeatureRenderer
ftren
=
gftly.Renderer;
if(ftren
==
null)
return
null;
ISymbol
syb
=
ftren.get_SymbolByFeature(ft);
return
syb;
}
public
static
bool
RenderSimply(ILayer
layer,
IColor
color)
{
if(layer
==
null
||
color
==
null)
return
false;
ISymbol
symbol
=
getsymbolfromlayer(layer);
if(symbol
==
null)
return
false;
IFeatureLayer
featureLayer
=
layer
as
IFeatureLayer;
IFeatureClass
featureClass
=
featureLayer.FeatureClass;
if(featureClass
==
null)
return
false;
esriGeometryType
geoType
=
featureClass.ShapeType;
switch(geoType)
{
case
esriGeometryType.esriGeometryPoint:
{
IMarkerSymbol
markerSymbol
=
symbol
as
IMarkerSymbol;
markerSymbol.Color
=
color;
break;
}
case
esriGeometryType.esriGeometryMultipoint:
{
IMarkerSymbol
markerSymbol
=
symbol
as
IMarkerSymbol;
break;
}
case
esriGeometryType.esriGeometryPolyline:
{
ISimpleLineSymbol
simpleLineSymbol
=
symbol
as
ISimpleLineSymbol;
simpleLineSymbol.Color
=
color;
break;
}
case
esriGeometryType.esriGeometryPolygon:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Ortho-methyl-4-anilino-1-boc-piperidine-生命科學(xué)試劑-MCE-9872
- 2025年度網(wǎng)紅電商品牌購(gòu)銷(xiāo)合同
- 2025年度礦山資源整合與投資合作協(xié)議
- 施工方案對(duì)土石方材料的要求與選擇
- 游泳教學(xué)與生命安全教育的融合
- 高校突發(fā)公共事件應(yīng)急預(yù)案
- 數(shù)據(jù)中心安全管理措施與緊急情況應(yīng)對(duì)實(shí)例分析
- 60條合同規(guī)定:如何實(shí)現(xiàn)一次性產(chǎn)品零使用
- 上市公司廣告策劃與執(zhí)行合同范本
- 二手房訂房合同條款解析
- 《中國(guó)心力衰竭診斷和治療指南(2024)》解讀完整版
- 特殊教育導(dǎo)論 課件 第1-6章 特殊教育的基本概念-智力異常兒童的教育
- DB13(J)T145-2012建筑工程資料管理規(guī)程(上冊(cè))
- 企業(yè)職務(wù)犯罪法制講座課件
- 2023學(xué)年完整公開(kāi)課版家鄉(xiāng)的方言
- 護(hù)理質(zhì)量管理課件
- 護(hù)理學(xué)基礎(chǔ)教案導(dǎo)尿術(shù)
- 顱腦外傷(新版)課件
- 《先秦漢魏晉南北朝詩(shī)》(精校WORD版)
- 分包商座談會(huì)領(lǐng)導(dǎo)致辭
- GB/T 16679-1996信號(hào)與連接的代號(hào)
評(píng)論
0/150
提交評(píng)論