当前位置:文档之家› Arcgis Engine二次开发实验报告

Arcgis Engine二次开发实验报告

Arcgis Engine二次开发实验报告
Arcgis Engine二次开发实验报告

GIS二次开发实验报告

学号:201420310115

姓名:李梦南

班级:1423101

专业:地理信息系统

任课老师:李小龙

二零一七年六月十二日

目录

1实验一:AOI书签开发 (1)

1.1实验目的 (1)

1.2实验内容 (1)

1.3实验步骤与结果 (1)

2.1实验目的 (5)

2.2实验内容 (5)

2.3实验步骤与结果 (5)

2实验三:地图渲染 (9)

3.1实验目的 (9)

3.2实验内容 (9)

3.3实验步骤结果 (9)

3实验四:空间数据处理 (16)

4.1实验目的 (16)

4.2实验内容 (16)

4.3实验步骤与结果 (16)

4实验五:GIS分析 (25)

5.1实验目的 (25)

5.2实验内容 (25)

5.3实验步骤与结果 (25)

5实验六:栅格数据处理 (33)

6.1实验目的 (33)

6.2实验内容 (33)

6.3实验步骤与结果 (33)

6实验总结 (43)

1实验一:AOI书签开发

1.1 实验目的

?掌握AOI书签程序开发

1.2 实验内容

?实现AOI书签的创建

?实现AOI书签的调用

1.3 实验步骤与结果

实验思路、关键代码(全面注释)、运行结果截图

实验思路:

空间书签是用户定义创建的标志某个特定地理位置的快捷方式,创建好书签后能够很方便的找到某个地理位置。在本实验中我们需要创建的是AOI书签,即用户所关心的一个范围,通过调用该书签,用户可以马上找到书签所指范围。

实现本实验主要包括以下几个方面:

1.添加控件和类库引用:添加创建书签控件、保存和调用书签控件,添加

Geometry类库

2.添加“创建书签”函数:创建书签,保存当前感兴趣范围,将书签名加入

组合框,以便调用

3.添加“书签名称设置”窗体:获取书签名,传递给主窗体

4.添加两个事件响应函数:“创建书签”菜单项的点击事件,作用是打开“书

签名称设置”窗体;“确认”按钮的点击事件,作用是调用创建书签函数

5.实现与调用书签:添加组合框的事件响应函数,作用是当组合框中选项

改变时,地图将刷新显示出书签所记录的范围。

实现创建书签的流程图如下:

关键代码:

1. 添加控件和类库引用

using ESRI.ArcGIS.Geometry;

2. 添加“创建书签”函数

publicvoid CreateBookmark(string sBookmarkName) //参数名为书签名

{

//通过IAOIBookmark 接口创建一个变量,用于保存当前地图的范围 IAOIBookmark aoiBookmark = new AOIBookmarkClass ();

//判断如果变量不为空的话,将当前地图的属性赋给变量,变量名为书签名 if (aoiBookmark != null ) {

aoiBookmark.Location = axMapControl1.ActiveView.Extent; https://www.doczj.com/doc/92786395.html, = sBookmarkName; }

//通过IMapBookmarks 接口访问当前地图,在地图中加入新建书签 IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks ; if (bookmarks != null ) {

bookmarks.AddBookmark(aoiBookmark); }

//将新建书签名加入组合框,以便调用

cbBookmarkList.Items.Add(https://www.doczj.com/doc/92786395.html,); }

3. 添加“书签名称设置”窗体

//定义一个主窗体变量,用于保存主窗体对象

public MainForm m_frmMain;

//用于传入主窗体对象

public AdmitBookmarkName(MainForm frm)

{

InitializeComponent();

if (frm != null)

{

m_frmMain = frm;

}

}

//“确认”按钮的“点击”事件响应函数,用于创建书签

privatevoid btAdmit_Click(object sender, EventArgs e)

{

if (m_frmMain != null || tbBookmarName.Text == "")

{

m_frmMain.CreateBookmark(tbBookmarName.Text);

}

this.Close();

}

4.实现与调用书签

//“创建书签”按钮的“点击”事件响应函数

privatevoid miCreateBookmark_Click(object sender, EventArgs e)

{

AdmitBookmarkName frmABN = new AdmitBookmarkName(this);

frmABN.Show();

}

//组合框的事件响应函数,选择不同书签,显示不同范围

private void cbBookmarkList_SelectedIndexChanged(object sender, EventArgs e) {

//访问地图所包含的书签,获取书签序列

IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks; IEnumSpatialBookmarkenumSpatialBookmark = bookmarks.Bookmarks;

//对地图所包含的书签进行遍历,获取与组合框所选项名称相符的书签enumSpatialBookmark.Reset();

ISpatialBookmarkspatialBookmark = enumSpatialBookmark.Next();

while (spatialBookmark != null)

{

if (cbBookmarkList.SelectedItem.ToString() == https://www.doczj.com/doc/92786395.html,)

{

spatialBookmark.ZoomTo((IMap)axMapControl1.ActiveView);

axMapControl1.ActiveView.Refresh();

break;

}

spatialBookmark = enumSpatialBookmark.Next(); }

5.运行结果

实验二:地图数据组织与访问

2.1 实验目的

?了解ArcGIS Engine中地图数据的组织结构

?掌握ArcGIS Engine地图数据访问方法

2.2 实验内容

?编写“数据操作”类

?利用DataGridView控件展示Continents图层的序号和名称字段

2.3 实验步骤与结果

实验思路:

本实验要实现的功能是地理数据列表显示,是用.NET Framework提供的数据格网视图控件显示指定图层的属性数据,操作对象为“Continents”图层中各个洲的名称数据。

实验包含以下几部分:

1.添加控件:“空间数据”菜单项和“访问图层数据”下拉菜单项

2.添加“数据展示台”窗体:用于显示访问图层的名称数据

3.添加数据操作类,为该类导入相关引用和类库:用于管理当前项目中

涉及数据操作的相关功能

4.为数据操作类添加相应函数:主要是两个获取函数,一个是获取图层

函数,目的是获取各图层;一个是获取“Continents”图层,并读取

该图层中各个洲的名称,以DataTable类型返回

5.添加事件响应函数:添加“访问图层数据”菜单项点击函数,显示数

据展示台窗体

实验实现的流程图如下:

关键代码:

1. 添加“数据展示台”窗体

public DataBoard(String sDataName,DataTable dataTable) {

//初始化窗体及控件 InitializeComponent();

//设置文本框中的文本和数据格网视图的数据源 tbDataName.Text = sDataName;

dataGridView1.DataSource = dataTable; }

2. 添加数据操作类

using System.Data;

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

//定义一个变量保存当前地图对象 public IMap m_map;

//用于传入当前地图对象

public DataOperator(IMap map) { m_map = map; }

3. 获取地图图层

//添加成员函数,获取地图中各大洲名称,用表的形式返回

public DataTable

GetContinentsNames()

{

//获取"Continents"图层,并进行访问,判断是否成功

ILayer layer = GetLayerByName("Continents");

IFeatureLayer featureLayer = layer as IFeatureLayer;

if (featureLayer == null)

{

returnnull;

}

//调用IfeatureLayer的Search方法,用于遍历图层中的要素,判断是否成功IFeature feature;

IFeatureCursor featureCursor = featureLayer.Search(null, false); feature = featureCursor.NextFeature();

if (feature == null)

{

returnnull;

}

//新建DataTable类型对象

DataTable dataTable = new DataTable();

//新建DataColumn对象,保存各个州的序号和名称,并将其加入DataTable中DataColumn dataColumn = new DataColumn();

dataColumn.ColumnName = "序号";

dataColumn.DataType = System.Type.GetType("System.Int32"); dataTable.Columns.Add(dataColumn);

dataColumn = new DataColumn();

dataColumn.ColumnName = "名称";

dataColumn.DataType = System.Type.GetType("System.String"); dataTable.Columns.Add(dataColumn);

//遍历图层中的所有要素,关联数据表中的下一行

//将要素的序号和名称赋给数据表中

DataRow dataRow;

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();

}

//返回数据表

return dataTable;

}

4.实现创建数据列表功能

//生成菜单项点击事件响应函数,并在数据展示台显示数据表

privatevoid miAccessData_Click(object sender, EventArgs e)

{

DataOperator dataOperator = new DataOperator(axMapControl1.Map);

DataBoard dataBoard = new DataBoard("各大洲洲名",

dataOperator.GetContinentsNames());

dataBoard.Show();

}

实验结果:

2实验三:地图渲染

3.1 实验目的

?了解地图符号的分类与可视化过程

?掌握地图符号的渲染方法

3.2 实验内容

?编写“地图编制”类,添加成员函数

?实现获取地图渲染器信息功能

?实现地图的简单符号渲染

3.3 实验步骤结果

实验思路:

地图渲染是指用不同的颜色和符号对地图进行可视化。特征渲染器有八类,本实验是采用简单渲染器,即对整个图层要素用同一种方式进行渲染,操作对象是“World Cities”图层。由于要用到数据操作类函数,所以实验在实验二的基础上进行。

实验分为以下几个部分:

1.添加主窗体控件和导入类库:地图表现菜单项和两个下拉菜单项简单渲染

器和获取渲染器信息。

2.添加地图编制类并为其导入部分类库:该类用于管理当前项目中涉及地图

整饰、修改和展示的相关功能

3.添加类成员函数:包括三个,分别是获取指定图层的渲染器类型信息函数、

获取指定图层的符号信息函数、统一设置指定图层渲染参数函数

4.添加事件响应函数:简单渲染图层菜单项的点击事件响应函数、获取渲染

器信息点击事件响应函数

实现流程如下:

关键代码: 1.添加控件

using ESRI.ArcGIS.Display;

2.添加地图编制类

using ESRI.ArcGIS.Carto;

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

3.完善类的功能

//添加成员函数,获取指定图层的渲染器类型信息

publicstatic String GetRenderTypeByLayer(ILayer layer) {

//判断图层是否获取成功 if (layer == null ) {

return "图层获取失败"; }

//使用IFeatureLayer 接口访问指定图层,并获取其渲染器 IFeatureLayer featureLayer = layer as IFeatureLayer ;

IGeoFeatureLayer geoFeatureLayer = layer as IGeoFeatureLayer ; IFeatureRenderer featureRenderer = geoFeatureLayer.Renderer;

//判断该图层渲染器是否为备选渲染器类型之一,匹配成功则返回类型信息 if (featureRenderer is ISimpleRenderer

)

{

return"SimpleRenderer";

}

elseif (featureRenderer is IUniqueValueRenderer)

{

return"UniqueValueRenderer";

}

elseif (featureRenderer is IDotDensityRenderer)

{

return"DotDensityRenderer";

}

elseif (featureRenderer is IChartRenderer)

{

return"ChartRenderer";

}

elseif (featureRenderer is IProportionalSymbolRenderer) { return"ProportionalSymbolRenderer";

}

elseif (featureRenderer is IRepresentationRenderer)

{

return"RepresentationRenderer";

}

elseif (featureRenderer is IClassBreaksRenderer)

{

return"ClassBreaksRenderer";

}

elseif (featureRenderer is IBivariateRenderer)

{

return"BivariateRenderer";

}

//如果匹配失败,返回提示

return"未知或渲染器获取失败";

}

//添加静态成员函数,获取指定图层的符号信息

publicstatic ISymbol GetSymbolFromLayer(ILayer layer) {

//判断图层是否获取成功

if (layer == null)

{

returnnull;

}

//访问图层,获取图层中的第一个要素,判断是否成功IFeatureLayer featureLayer = layer as IFeatureLayer;

IFeatureCursor featureCursor = featureLayer.Search(null, false); IFeature feature = featureCursor.NextFeature();

if (feature == null)

{

returnnull;

}

//访问指定图层,获取其渲染器,判断是否成功

IGeoFeatureLayer geoFeatureLayer = featureLayer as IGeoFeatureLayer; IFeatureRenderer featureRenderer = geoFeatureLayer.Renderer;

if (featureRenderer == null)

{

returnnull;

}

//访问图层要素对应的符号信息,作为函数信息返回

ISymbol symbol = featureRenderer.get_SymbolByFeature(feature); return symbol;

}

//添加静态成员函数,设置指定图层符号的颜色,并进行简单渲染publicstaticbool RenderSimply(ILayer layer, IColor color)

{

//判断图层和颜色是否获取成功

if (layer == null || color == null)

{

returnfalse;

}

//调用成员函数,获取指定图层的符号,判断是否成功

ISymbol symbol = GetSymbolFromLayer(layer);

if (symbol == null)

{

returnfalse;

}

//获取指定图层的要素类,判断是否成功

IFeatureLayer featureLayer = layer as IFeatureLayer;

IFeatureClass featureClass = featureLayer.FeatureClass;

if (featureClass == null)

{

returnfalse;

}

//获取指定图层要素类的几何形状信息,并匹配,设置不同类型符号的颜色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; markerSymbol.Color = color;

break;

}

case esriGeometryType.esriGeometryPolyline:

{

ISimpleLineSymbol simplelinesymbol = symbol as ISimpleLineSymbol; simplelinesymbol.Color = color;

break;

}

case esriGeometryType.esriGeometryPolygon:

{

IFillSymbol fillSymbol = symbol as IFillSymbol;

fillSymbol.Color = color;

break;

}

default:

returnfalse;

}

//新建简单渲染器对象,设置符号,通过接口访问,判断是否成功ISimpleRenderer simpleRenderer = new SimpleRendererClass(); simpleRenderer.Symbol = symbol;

IFeatureRenderer featureRenderer = simpleRenderer as IFeatureRenderer; if (featureRenderer == null)

{

returnfalse;

}

//通过接口访问指定图层,设置其渲染器

IGeoFeatureLayer geoFeatureLayer = featureLayer as IGeoFeatureLayer; geoFeatureLayer.Renderer = featureRenderer;

returntrue;

}

4.实现图层简单渲染

//实现图层简单渲染

privatevoid miRenderSimply_Click(object sender, EventArgs e)

{

//获取"World Cities"图层

DataOperator dataOperator = new DataOperator(axMapControl1.Map);

ILayer layer = dataOperator.GetLayerByName("World Cities");

//设置颜色为红色

IRgbColor rgbColor = new RgbColorClass();

rgbColor.Red = 255;

rgbColor.Green = 0;

rgbColor.Blue = 0;

//获取"World Cities"图层的符号信息,并通过接口访问设置好的颜色对象ISymbol symbol = MapComposer.GetSymbolFromLayer(layer);

IColor color = rgbColor as IColor;

//实现该图层的简单渲染,判断是否成功,若成功,则刷新视图,显示渲染效果bool bRes = MapComposer.RenderSimply(layer, color);

if (bRes)

{

axTOCControl1.ActiveView.ContentsChanged();

axMapControl1.ActiveView.Refresh();

miRenderSimply.Enabled = false;

}

else

{

MessageBox.Show("简单渲染图层失败!");

}

}

//生成获取图层渲染器类型信息的获取

privatevoid miGetRendererInfo_Click(object sender, EventArgs e)

{

//获取"World Cities"图层

DataOperator dataOperator=new DataOperator(axMapControl1.Map);

ILayer layer=dataOperator.GetLayerByName("World Cities");

//消息框显示该图层的渲染器类型信息

MessageBox.Show(MapComposer.GetRenderTypeByLayer(layer));

}

5.运行结果

3实验四:空间数据处理

4.1 实验目的

?了解创建空间数据的过程

?掌握创建空间数据的方法

4.2 实验内容

?实现创建Shapefile文件的程序

?实现新增点要素程序

4.3 实验步骤与结果

实验思路:

本实验包含两个部分:在硬盘的指定路径下创建一个Shapefile文件;向创建的Shapefile文件中添加要素。实验仍然需要用到数据操作类,所以还是在实验二的基础上操作,对于该类的操作在之后不再赘述。

实验主要包含以下几个部分:

1.添加主窗体控件和类库引用:数据操作菜单项和下拉菜单项创建Shapefile 菜单项。

2.在数据操作类中添加成员函数:包含两个,创建Shapefile文件函数、以图层形式添加要素类函数

3.添加事件响应函数:为创建Shapefile菜单项添加点击事件响应函数

实现流程图如下:

关键代码:

1.添加控件和类库引用

using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.DataSourcesFile;

2.添加功能函数

//添加创建shapefile 文件功能函数 public IFeatureClass CreateShapefile( String sParentDirectory,//上级路径

String sWorkspaceName, //包含文件的文件夹名 String sFileName) {

//如果指定的路径和文件夹已经存在,则删除此文件夹

if (System.IO.Directory .Exists(sParentDirectory+sWorkspaceName)) {

System.IO.Directory .Delete(sParentDirectory+sWorkspaceName,true ); }

//通过工作空间工厂接口创建针对Shape 文件的工作空间工场对象 //并通过参数创建相关工作空间,用于包含Shape 文件

IWorkspaceFactory workspaceFactory=new ShapefileWorkspaceFactoryClass (); IWorkspaceName

workspaceName=workspaceFactory.Create(sParentDirectory,sWorkspaceName,null ,0); ESRI.ArcGIS.esriSystem.IName name=workspaceName as ESRI.ArcGIS.esriSystem.IName ; //打开新建的工作空间,并通过接口访问

IWorkspace workspace=(IWorkspace )name.Open();

IFeatureWorkspace featureWorkspace=workspace as IFeatureWorkspace ; //Shape 文件在概念层次上是一个要素类。创建并编辑该要素类所需的字段集 IFields fields=new FieldsClass

();

IFieldsEdit fieldsEdit=fields as IFieldsEdit;

//创建并编辑“序号”字段

IFieldEdit fieldEdit=new FieldClass();

https://www.doczj.com/doc/92786395.html,_2="OID";

fieldEdit.AliasName_2="序号";

fieldEdit.Type_2=esriFieldType.esriFieldTypeOID;

fieldsEdit.AddField((IField)fieldEdit);

//创建并编辑“名称”字段

fieldEdit=new FieldClass();

https://www.doczj.com/doc/92786395.html,_2="Name";

fieldEdit.AliasName_2="名称";

fieldEdit.Type_2=esriFieldType.esriFieldTypeString;

fieldsEdit.AddField((IField)fieldEdit);

//创建地理定义,设置其空间参考和几何类型,为创建“形状”字段做准备IGeometryDefEdit geoDefEdit=new GeometryDefClass();

ISpatialReference spatialReference=m_map.SpatialReference;

geoDefEdit.SpatialReference_2=spatialReference;

geoDefEdit.GeometryType_2=esriGeometryType.esriGeometryPoint;

//创建并编辑“形状”字段

fieldEdit=new FieldClass();

String sShapeFieldName="Shape";

https://www.doczj.com/doc/92786395.html,_2=sShapeFieldName;

fieldEdit.AliasName_2="形状";

fieldEdit.Type_2=esriFieldType.esriFieldTypeGeometry;

fieldEdit.GeometryDef_2=geoDefEdit;

fieldsEdit.AddField((IField)fieldEdit);

//调用IFeatureWorkspce接口的CreateFeatureClass方法,创建要素类

//并判断是否创建成功

IFeatureClass

featureClass=featureWorkspace.CreateFeatureClass(sFileName,fields,null,null,esr iFeatureType.esriFTSimple,"Shape","");

if(featureClass==null)

{

returnnull;

}

//将创建好的要素类作为结果返回

return featureClass;

}

publicbool AddFeatureClassToMap(IFeatureClass featureClass, String sLayerName)//要素类,图层名

{

ARCGIS实验报告书

ArcGIS实验报告 1使用ARCMAP浏览地理数据 1.1学习内容 第1 步启动ArcMap 打开ArcMap后,open加州Redlands city地图: Figure 1打开Redlands city 地图界面 第2 步检查要素图层及显示其他图层 可以通过左侧的Table of contents 勾选你想打开和关闭的图层,进而找到自己想要的信息。 第4 步查询地理要素 通过Bookmarks下面勾选ESRI找到其位置,再通过Tools工具栏下的 查询steet地物属性。 Figure 2地物属性的查询 通过查询窗口,选择All layers出现STATE street 相交的地块,通过点击

Land Use里面信息,可以反向查询地块的位置: Figure 3反向查询信息 第5 步检查其它属性信息 右键TOC图层列表里的Land Use,选择Open Attribute Table就可以打开并查看具体的记录要素。 Figure 4图层其他属性信息查询 第6 步设置并显示地图提示信息 在TOC图层列表右键Count Shops,选择Properties,在Display栏中Display Expression选项下将字段NAME改为ADDRESS,确定以后。回到地图,鼠标放在Count Shop 上时,显示的是该shop的地理位置信息。 Figure 5更改地图提示信息

第7 步根据要素属性设置图层渲染样式 将Land Use等图层关闭以后,只显示Streets图层。右键Streets图层,选择Properties选项—>选择Symbology对话框。在Show列表中选择Categories,从下拉字段中选择CLASS,Add All Values,点击应用。就可以看到地图中街道的显示按照部分类别进行了颜色区分。最后在Symbology中选择Features,显示恢复原貌。 Figure 6设置图层渲染样式 第8 步根据属性选择要素 在Selection菜单中选择Select By Attributes,选择Streets层,创造一个新的选择集,通过命令"STR_NAME" = 'I 10'就可以选择10号州际公路了。

ArcGIS空间大数据处理实验报告材料

实验四空间数据处理 实验内容: 掌握空间数据的处理(融合、拼接、剪切、交叉、合并)的基本方法和原理,领会其用途。掌握地图投影变换的基本原理和方法,熟悉ArcGIS中投影的应用及投影变换的方法和技术,并了解地图投影及其变换在实际中的应用。 实现方法: (一)空间数据处理 打开ArcMap,在菜单栏中选择“地理处理->环境”,打开环境变量对话框。在环境变量对话框中的常规设置选项中,设定“临时工作空间”为“D:\04实验四\04实验四\Exec4”,如图1所示。 图1 第1步裁剪实体 在ArcMap中,添加数据“云南县界.shp”、“clip.shp”(Clip中有四个实体),添加完后如图2所示。

图2 ●开始编辑,激活Clip图层,选中Clip图层中的一个实体,如图3所示。 图3 ●点击工具栏上按钮,打开ArcToolBox,选择“分析工具->提取->裁剪”, 如图4所示,弹出裁剪对话框,指定输入的实体为“云南县界”,剪切的实体为“Clip”(必须为多边形实体),并指定输出实体类路径及名称为“云南县界_Clip1”,如图5所示。裁剪完成后弹出如图6所示的对话框。

图4 图5

图6 ●依次选中Clip主题中其他三个实体,重复以上操作步骤,完成操作后得到四 个图层——“云南县界_Clip1”,“云南县界_Clip2”,“云南县界_Clip3”,“云南县界_Clip4”,如图7所示。完成操作后,保存编辑。 图7 第2步拼接图层 ●在ArcMap中新建一个地图文档,加载在上一步操作中得到的4个图层,如 图8所示。

图8 ●在工具箱中选择“数据管理工具->常规->追加”,设置输入实体和输出实体,拼 接效果如图9所示。 图9 ●右键点击图层“云南县界_Clip1”,在出现的右键菜单中执行“数据->导出数据”, 弹出导出数据对话框,将输出的图层命名为“YONK.shp”,如图10所示。

ArcGISEngine二次开发——提高篇

ArcGIS Engine二次开发 ——提高篇

1缩略图(鹰眼) 鹰眼功能是GIS的主要功能之一,当地图范围很大时,它可以很好的为用户指明当前地图的范围。在本小节中我们将学习如何制作这种鹰眼。 1.1添加控件 新建一个C#.Net项目,项目名称为OverView,将Form1的名字设置为MainForm,并添加ToolbarControl 、两个MapControl和LicenceControl等四个控件。布局如下图所示。左边的axMapControl1用于地图数据显示和操作,右边axMapControl2用于鹰眼显示。 图 1 界面布局 在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示,并将ToolbarControl的伙伴控件设为axMapControl1。 图2添加按钮 1.2代码添加及解释 鹰眼用来显示主窗体当前视图范围在全景视图中的位置,在ArcMap中使用一个线框在鹰眼视图中标识。当主视图中的视图范围改变时,鹰眼中的线框随之改变,当拖动鹰眼视图中的红线框时,主视图中的视图范围也随之改变。 下面开始实现鹰眼功能,添加、、 三个引用。首先在axMapControl1中视图范围改变时鹰眼窗体要做出对应的响应,即绘制线框并显示,在OnExtentUpdated事件中添加代码如下: private void axMapControl1_OnExtentUpdated(object sender, e) { et项目,项目名称为Buffer,将Form1的名字设置为MainForm,并添加ToolbarControl 、MapControl、TOCControl、LicenceControl和Button等五个控件。并将ToolbarControl 、TOCControl的伙伴控件设为MapControl,Button控件的Name属性设定为btnBuffer,Text属性设定为“缓冲区分析”。控件布局效果如下图所示。 图3控件布局效果 在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示。 图4添加按钮 1.2.1代码添加及解释 首先添加如下四个命名空间的引用。 在使用Geoprocessor工具实现缓冲区分析时,需要首先定义一个Geoprocessor对象,因为命名空间“也包含Geoprocessor类,为了避免混淆,我们使用命名空间来定义Geoprocessor,然后设置Geoprocessor中的环境参数,这里我们使用默认参数。然后定义一个操作类Buffer,并设置参数,生成缓冲区的参数包含原始图层,缓冲半径和输出路径,最后使用已定义的Geoprocessor对象执行即可。双击“生成缓存区”按钮,添加代码如下: private void btnBuffer_Click(object sender, EventArgs e) {

arcgis实验报告

本科生实验报告 学院:资源与环境学院 课程名称:地理信息系统 班级: 12城规 学年学期: 2014 ——2015学年第一学期指导教师:朱小燕

实验一:Arc gis的认识 实验目的: 认识arc gis,熟悉Arc map、Arc globe基本功能 Arc map Arc globe 实验二:地理配准 实验目的: 利用影像配准工具(右键添加地理配准工具条)进行影像数据的地理配准实验步骤: 在地理配准编辑器下,不勾选自动校正,对图像进行控制点的添加

点击右键输入坐标值:X输入经度值,y输入纬度值 选取四点进行一阶多项式(防射) 配准结果:

实验三:矢量化 实验目的: 熟练编辑器的使用(点要素、线要素、多边形要素的数字化)实验步骤; 在目录下选择文件,新建new shapefile(点、线、面) 对图像上的点、线、面(城市、河流、省域)依次进行矢量化 最终矢量化成图为:

对所有的点、线、面矢量化完成后,再依次对点、线、面进行属性的修改,给每个点添加name:标注**城市;给线标注河流的名称;给省标注**省份(自治区)。 图层上点击右键——打开属性表,逐次进行修改 实验四:投影 实验目的: 掌握定义地图的基本步骤 实验步骤: 目录下→工具箱→系统工具箱→Data management tools

1)投影变换 定义投影 分别对点、线、面进行定义投影,坐标系选择:Beijing 1954 2)要素 投影 先选择地理坐标系:Asia——Beijing 1954 再选择投影坐标系:Gauss Kruger——Beijing 1954 ——Beijing 1954 GK zone 18N 投影后图像:

Arcgis二次开发软件安装教程

Arcgis二次开发软件安装教程 1.环境配置 Win7 32位系统,Arcgis for Desktop 10.2,jdk-8u101-windows-i586,eclipse-jee-mars-2-win32,ArcGIS_Engine_DevKit_Windows_102_134944 64位win7系统可参考文档:https://www.doczj.com/doc/92786395.html,/shugui/p/3795803.html 2.安装过程 1)安装Arcgis for Desktop 10.2 下载地址 https://https://www.doczj.com/doc/92786395.html,/share/link?shareid=4262105946&uk=1913532136#path=%252 F 安装教程:https://www.doczj.com/doc/92786395.html,/article/e73e26c0cb5c1324adb6a791.html 2)安装jdk 下载地址 https://www.doczj.com/doc/92786395.html,/technetwork/java/javase/downloads/jdk8-downloads-2133151. html

具体安装过程参考 https://www.doczj.com/doc/92786395.html,/article/6dad5075d1dc40a123e36ea3.html 3)安装Eclipse 下载地址:https://https://www.doczj.com/doc/92786395.html,/downloads/packages/release/Mars/2 解压后即可使用 安装教程参考:https://www.doczj.com/doc/92786395.html,/article/d7130635194f1513fcf47557.html 4) 安装windowbuilder插件 找到对应版本的windowbuilder,本教程使用4.5版本 https://www.doczj.com/doc/92786395.html,/windowbuilder/download.php eclipse在线更新 打开eclipse-->help-->Install New Software-->Add 在location中粘贴刚才复制的链接,OK,等待加载插件信息

ArcGIS实验报告

3. 4实例与练习 练习一:ArcGIS9.3版本进行实验 3. 4. 1某地区地块的拓扑关系建立 1.背景 拓扑关系对于数据处理和空间分析具有重要意义,拓扑分析经常应用于地块查询、土地利用类型更新等。 2.目的 通过本例,掌握创建拓扑关系的具体操作流程,包括拓扑创建、拓扑错误检测、拓扑错误修改、拓扑编辑等基本操作。 3.要求 在Topology数据集中导人两个5hapefile,建立该要素数据集的拓扑关系,进行拓扑检验,修改拓扑错误,并进行拓扑编辑口 4.数据 Blocks.shp, Parcels. shp,分别为某地区的总体规划和细节规划的地块矢量数据,存放在随书光盘…\chp}\Exl中,结果数据存放....\Chp3\Result中。 1)创建地理数据库 (1)在ArcCatalog目录树中,右键单击【Result】文件夹,单击【新建】,单击【文件地理数据库】,输人所建的地理数据库名称;NewGeodatabase。在新建的地理数据库右键选择【新建】中的【要素数据集】,创建要素数据集。 (2)打开【新建要素数据集】对话框,如图所示,将数据集命名为Topology。 (3)单击【下一步】按钮,打开【新建要素数据集】对话框设置坐标系统,如图所示。 (4)单击【导入】按钮,为新建的数据集匹配坐标系统,选择Blocks.shp或Parcels. Shp。 (5)单击【添加】按钮,返回【新建要素数据集】属性对话框,这时要素数据集定义了坐标系统。 (6)单击【下一步】按钮,为新建的数据集选择垂直坐标系统,此处选择[None] (7)单击【下一步】按钮,设置容差,此处选择选择默认设置,点击【完成】,如图所示 2)向数据集中导人数据 (1)在Arccatalog目录树中,右键单击Result文件夹中的Topology数据集,右键单击【导入】|【要素类(多个) 】。 (2)打开【要素类至地理数据库(批量) 】对话框,如图所示。导入Blocks和Parcels,单击

arcgis栅格数据空间分析实验报告

实验五栅格数据的空间分析 一、实验目的 理解空间插值的原理,掌握几种常用的空间差值分析方法。 二、实验内容 根据某月的降水量,分别采用IDW、Spline、Kriging方法进行空间插值,生成中国陆地范 围内的降水表面,并比较各种方法所得结果之间的差异,制作降水分布图。 三、实验原理与方法 实验原理:空间插值是利用已知点的数据来估算其他临近未知点的数据的过程,通常用于将 离散点数据转换生成连续的栅格表面。常用的空间插值方法有反距离权重插值法(IDW)、 样条插值法(Spline)和克里格插值方法(Kriging)。 实验方法:分别采用IDW、Spline、Kriging方法对全国各气象站点1980年某月的降水量进 行空间插值生成连续的降水表面数据,分析其差异,并制作降水分布图。 四、实验步骤 ⑴打开arcmap,加载降水数据,行政区划数据,城市数据,河流数据,并进行符号化,对 行政区划数据中的多边形取消颜色填充 ⑵点击空间分析工具spatial analyst→options,在general标签中将工作空间设置为实验数据所在的文件夹

⑶点击spatial analyst→interpolate to raster→inverse distance weighted,在input points下拉框中输入rain1980,z字段选择rain,像元大小设置为10000 点击空间分析工具spatial analyst→options,在extent标签中将分析范围设置与行政区划一致,点击spatial analyst→interpolate to raster→inverse distance weighted,在input points下拉框中输入rain1980,z字段选择rain,像元大小设置为10000 点击空间分析工具spatial analyst→options在general标签中选province作为分析掩膜,点击spatial analyst→interpolate to raster→inverse distance weighted,在input points下拉框中输入rain1980,z字段选择rain,像元大小设置为10000

ArcGIS实验报告与心得

地理信息系统实验报告与心得 院系:资源与环境学院 年级:2011级 班级:地信一班 姓名: 学号: 指导老师:冯慧敏 时间:2013.05.28

ArcGIS实验报告与心得 一.实验目的: (1)通过实习了解ArcGIS的发展,以及9.3系列软件的构成体系熟练掌握 (2)熟练掌握ArcMap的基本操作及应用 (3)了解及应用ArcGIS的分析功能模块A rcToolbox (4)加深对地理信息系统的了解 二.实验内容 实验一是对ArcGIS概述。介绍ArcGIS的发展,以及9.3系列软件的构成体系,了解桌面产品部分ArcMap、ArcCatalog和ArcToolbox的相关基础知识; 实验二讲解了视图数据的显示与管理 主要阐述如何让创建新的Map Document(工程文档),工程文档的保存,创建新数据层layer,数据层(Layer)的操作等; 实验三讲解了ArcMap下的数据编辑与修改编辑点、线、面文件的流程,点、线、面的主要生成方法和介绍了绘图工具、编辑菜单;实验四讲解了栅格数据矢量化介绍了ArcScan工具。ArcScan是Arcmap Desktop中栅格矢量化的扩展工具。它提供了一套强大且易使用的栅格矢量化工具。它使得用户可以通过捕捉栅格要素,以交互追踪或批处理的方式直接通过栅格影像创建矢量数据; 实验五讲解了符号编辑与属性表操作比如点状符号的制作,现状状符号的制作,面状符号的制作和属性表的常用操作如创建属性表、编

辑表格、表格查询、表格计算等; 实验六讲解了空间查找与空间分析。主要熟练掌握缓冲区分析和叠置分析中的图层擦除(Erase)、交集操作(Intersect)和图层合并(Union); 实验七讲解了矢量数据的最短路径分析和栅格数据的最佳路径分析。主要我们掌握网络分析和栅格数据的空间分析; 实验八讲解了图表与报告创建使用和图版设置与地图整饰。创建图表与使用图、表创建报表与使用报表和图版设置与地图整饰。 三.实验步骤及感想 通过这学期的ArcGIS实习,让我体验到了ArcGIS功能之强大,也让我对ArcGIS有了一个整体的认识。也让我知道了地理信息系统是做什么的,他能解决什么样的问题。比如运用ArcGIS的强大的分析功能做一个选址问题。就拿实验六来说,我们利用缓冲分析和叠置分析来完成选址问题。刚开始做实验时我就在思考,它是怎样去完成这样一个问题的呢?对于每个购房者第一个思考的问题当然是周围的环境,所以当然就要避开主干道的噪音干扰了。这就的用ArcGIS 中强大的缓冲分析了。缓冲区分析(Buffer)是对选中的一组或一类地图要素(点、线或面)按设定的距离条件,围绕其要素而形成一定缓冲区多边形实体,从而实现数据在二维空间得以扩展的信息分析方法。所以我们第一步要做的就是提取主干道。提取主干道是在交通网络图层的属性表选择。具体步骤:在右下角的打开option 选项中,在菜单中选择select by attributes,在select by attributes 对话框

ArcGIS_Engine二次开发——基础篇

ArcGIS_Engine二次开发——基础篇 ArcGIS Engine二次开发 ——基础篇

1ArcGIS Engine二次开发——基础篇 1.1第一个简单的A rcGIS Engine地图显示程序 这个例子将引导您创建第一个简单的地图显示程序,并添加基本的缩放和漫游功能。如果您之前没有接触过ArcGIS Engine的开发,那么这个例子是您迈入ArcGIS Engine二次开发大门的极好例子,将从零开始引导您一步一步完成任务。 1.1.1创建一个新的工程 首先打开Microsoft Visual Studio 2005,点击菜单栏中的“文件”—>“新建”—>“项目”,在弹出的对话框中选择新建一个Visual C#的Windows应用程序,之后更改项目名称为“地图浏览”,更改文件的路径为个人实习文件夹,点击“确定”即可。 图1新建项目对话框 选中项目“地图浏览”中的窗体“Form1”,修改其Name属性为“MainForm”,Text 属性为“地图浏览”,

图2窗体命名 1.1.2添加控件及引用 点击编译器最左侧的“工具箱”(不存在时可通过“视图”“工具箱”打开),在弹出的选择项中找到“ArcGIS Windows Forms”项,单击其中的MapControl,之后在Form1的空白处单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自动加入到Form1中)。用同样的方法,再将LicenseControl添加到Form1中。 图 3 打开工具箱

图4工具箱 如果您在工具箱中找不到MapControl,则请依次尝试以下两种解决方案。首先单击工具栏,待工具箱弹出之后,在工具箱的任意位置上单击鼠标右键,从弹出菜单中选择“重置工具箱”。如果这一步操作之后仍然无法看到MapControl,则在工具箱的任意位置上单击鼠标右键,找到“常规”选项卡,然后在“常规”选项卡上单击鼠标右键,在弹出菜单中单击“选择项(I)…”,在弹出的对话框中选择“.NET Framework组件”,找到“LicenseControl”和“MapControl”,将这两项前的复选框打上勾,最后点击确定即可(如果在“.NET Framework 组件”这个面板中找不到这两项,则选择“COM 组件”面板,在“ESRI LicenseControl”和“ESRI MapControl”前面打勾)。

ArcGIS实验报告第四章

练习:数据更新变换 4. 4.1背景 由于空间数据(包括地形图与DEM )都是分幅存储的.某一特定研究区域常常跨越不同图幅。当要获取有特定边界的研究区域时,就要对数形进行裁切、拼接、提取等操作,有时还要进行相应的投影变换。 4.4.2目的 通过练习,掌握数据提取、裁切‘拼接及投影变换的方法。 4.4.3要求 自水县跨两个1:25万图幅,要求提取出自水县行政范围内的DEM数据,将数据转换成高斯克吕格投影系统。 4. 4. 4数据 矢量数据Vector. shp:为白水县的行政范围。 DEM数据:为地理坐标系统 实验数据存放在随书光盘…\chp4\Exl中,读者可将其拷贝至E盘根目录 4. 4. 5操作步骤 1、白水县行政范围的提取 加载原始数据。直接打开地图文档Chp4\Ex1\chp4_ex1.mxd (1)选择分析工具——〉提取——〉筛选,打开对话框 (2)再输入要素文本框中选择Vector.shp. (3)在输出要素类文本框键入输出的数据的路径与名称 (4)单击表达式可选文本科旁边的SQL按钮,打开查询构建器对话框,设置SQL表达

式:“NAME”= ‘白水县’ (5)单击确定

2.DEM数据拼接 加载横跨白水县的两幅DEM数据,DEM1、DEM2 (1)选择数据管理工具——〉栅格——〉栅格数据集——〉镶嵌至新栅格工具,探出对话框 (2)在输入栅格文本框中选择DEM1 和DEM2

(3)在输出位置文本框键入数据存储位置 (4)在具有拓展名的栅格数据集名称文本框设置输出数据的名称 (5)在像素类型可选窗口,设置输出数据栅格类型 (6)在波段数文本框中键入“1” (7)在镶嵌运算符可选窗口,确定镶嵌重叠部分的方法,这里选择MEAN,表示重叠部分的结果数据取重叠栅格的平均值 (8)单击确定

Arcgis实验报告

地图学原理与方法课程设计 __Arcgis实验 班级测绘1401班 姓名赵强 学号 201408251 任课教师段焕娥 完成日期 2016.6.8

目录 前言..................................................................................................... - 1 - 实验一地理配准 ............................................................................... - 1 - 实验二空间数据矢量化.................................................................... - 3 - 实验三空间校正(边匹配)............................................................ - 7 - 实验四空间校正(橡皮页变换) .................................................. - 9 - 实验五空间校正(图匹配) ........................................................ - 12 - 实验总结 ........................................................................................... - 14 -

VS2013中ArcGIS二次开发部分问题问题解决方法

VS2013中ArcGIS二次开发部分问题问题解决方法 1、VS2013中新建项目时没有ArcGIS模板解决办法: 安装ArcGIS10.x会自动生成C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\ArcGIS文件夹 和C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\ArcGIS文件夹

打开vs2013安装目录: 将上面所说的两个ArcGIS文件夹复制到vs2013安装目录下对应的ItemTemplates\CSharp文件夹和ProjectTemplates\CSharp文件夹, 继续返回vs2013安装目录,找到devenv.exe文件,右击该文件选择属性----兼容性---以管理员身份运行此程序。

在开始菜单栏的所有程序中找到下图文件夹,打开Visual StudioTools, 如下图所示:以管理员身份运行VS2013开发人员命令提示,在打开的命令窗口输入devenv.exe /InstallVSTemplates后回车即可

2、vs2013中工具箱中没有ArcGIS控件解决方法: 在工具箱中右键添加选项卡,并起名为ArcGIS, 在ArcGIS下拉后的空白处右击选择项,在弹出的窗口中点击浏览 找到安装ArcObjects SDK for https://www.doczj.com/doc/92786395.html, Framework时的目录DeveloperKit10.2,打开该目录下的DotNet文件夹,选中ESRI.ArcGIS.AxControls.dll文件,

基于ArcGIS 10.0的DEM分析与可视化 实验报告

一、实验目的 1、掌握利用ArcGIS三维分析模块进行创建表面的基本方法.。 2、掌握利用ArcGIS三维分析进行各种表面分析的基本方法,并能进行表面创建及景观图 制作。 3、掌握地形特征信息的提取方法,能利用ArcGIS软件基于DEM对山脊线和山谷线的提取。 4、掌握三维场景中表面及矢量要素的立体显示其原理与方法,熟练掌握ArcGIS软件表面 及矢量要素杂场景中的三维显示及其叠加显示。 5、熟练掌握ArcScene三维场景中要素、表面的多种可视化方法。 6、通过制作某区域的飞行动画,实现对该区域的宏观浏览,掌握地形的三维显示与飞行动 化的制作方法。 二、主要实验器材(软硬件、实验数据等) 计算机硬件:Lenovo Y460N 计算机软件:ArcGIS10.0软件 实验数据:《ArcGIS地理信息系统空间分析实验教程》随书光盘 三、实验内容与要求 1、表面分析 要求: (1)熟悉ArcGIS三维分析工具中的表面分析工具。 (2)进一步分析表面,包括计算表面积、体积、坡度、坡向等,设置阴影地貌等以增强可视化,或者从一个特定的位置或路径设置可视化的更高级别的可视性分析等。 操作: (1)计算表面积与体积: 1)打开“面积与体积统计数据”工具,在对话框中如下图设置,点击“计算统计 数据”,得到面积和体积统计数据。 图1 计算表面积与体积 (2)坡度的计算: 1)选择表面分析的坡度工具: “Spatial Analyst 工具”→“表面分析”→“坡度”。

2)在打开的对话框中如图2设置,生成坡度栅格图像如图3。 图2:“坡度”对话框 图3 坡度栅格图像 (3)坡向的计算: 1)选择表面分析的坡向工具: “Spatial Analyst 工具”→“表面分析”→“坡向”。 2)在打开的对话框中设置,生成坡向图像如图4。 图4 坡向图像 (4)可视性分析: 1)视线瞄准线的创建:选择 “创建透视线”工具。 2)在打开的对话框中设置,并选择透视线的点;如图5所示。

ArcGIS实验报告——专题地图制作

《地理信息系统概论》实验报告 ——专题地图制作 实验主题:专题地图的制作 实验时间:2013年10月30日 实验目的:将江苏省各市产业结构经过整饰而组合成内容充实、表现方式多样、易于编辑修改与动态更新能力强的专题地图。 实验数据:江苏省空白地图、07年地区生产总值统计 实验内容及步骤: 一、数据格式转换 在ArcView中,不支持“.xls”的数据,因此在使用数据的时候首先要进行数据格式转换,步骤如下:打开Excel→选中所需要的数据表→文件→另存为→保存类型选择“DBF4”。 二、创建一项新的专题地图 1、打开Arcview→with a new View→OK→Add Theme,各项设置如下图所示:

这样,空白的江苏地图就添加到了ArcView之中。 2、表格数据连接

在untitled的窗口中选择“tables”→add,出现如下图所示的对话框: 选择刚才转换成“.dbf”格式的文件(本实验报告选用的是“07统计数据”),出现表格1。此时激活View1窗口,选择“open theme table”,出现表格2。 通过点击“公共字段名”而选定连接字段。 在本实验中,源表是表格1,目标表是表格2,公共字段名是“市县” 先选择源表中的“市县”,然后选择目标表中的“市县”→菜单栏中的“Table”→“join”,表格连接完成。 3、饼状图呈现 双击空白地图→出现如下对话框: 属性设置: (1)Lengend Type选择chat; (2)在fields中选择所需要的字段,本实验选择第一产业、第二产业、第三产业三个关键词。 (3)双击色块可以改变配色。 效果如右图所示。

ArcGIS二次开发课程设计

地理信息系统GIS二次开发程序设计 实验报告 班级:10级测绘1班学号: 姓名: 指导教师:

面向接口编程 一、实验目的: 1.理解接口编程、面向对象编程的思想,两者的区别,以及各自的优缺点; 2.掌握AE接口实现图层加载的方法: IworkspaceFactory-->Workspace->IfeatureWorkSpace->IFeatrueClass->IFeature(); 3.理解并掌握使用UI进行属性查询和空间查询; 二.实验内容: 1. 利用IWorkSpace接口在Map中增加一个GeoDatabase图层; 2. 利用Imap的SelectBy*实现简单选择; 3. 利用IQueryFilter实现简单空间查询。(未实现) 三、实验过程 1.接口、面向接口编程基本知识点。 (1)接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则;是在一定粒度视图上同类事物的抽象表示。接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);第二类是对一个体某一方面的抽象,即形成一个抽象面(interface); 一个体有可能有多个抽象面。 (2)面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法;是与“面向过程”即“我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现”相对应的。 面向对象实现了对象属性与行为的分离,对象之间通过消息进行通信;具有同一属性和行为的对象被抽象成类,每一个类是相同或相似属性和方法的封装;类与类之间具有继承和派生关系。 (3)面向接口与面向对象的区别: 接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)是针对编程开发的对象而言的,不是同一感念。 interface关键字用来声明一个接口,它可以产生一个完全抽象的类,并且不提供任何具体实现。 2.GeoDatabase的数据加载: (1)理解 Workspace是一个容器,包含了空间和非空间数据集,如feature class,raster dataset,table。提供了一系列创建和操作数据集的方法。 FeatureClass 是空间事物的顶级类,类似与C#中的Object类,提供了一系列属性和方法。在同一个FeatureClass中的Feature具有相同的属性字段。 FeatureLayer是一个基于矢量数据的图层,典型的数据包括Geodatabase、coverage和shapefile等,FeatureLayer可以直接在MapControl中显示。

arcgis实习心得体会

arcgis实习心得体会 篇一:arcGiS实验报告与心得 地理信息系统实验报告与心得 院系:资源与环境学院 年级:20XX级 班级:地信一班 姓名: 学号: 指导老师:冯慧敏 时间:20XX.05.28 arcGiS实验报告与心得 一.实验目的: (1)通过实习了解arcGiS的发展,以及9.3系列软件的构成体系熟练掌握 (2)熟练掌握arcmap的基本操作及应用 (3)了解及应用arcGiS的分析功能模块arcToolbox (4)加深对地理信息系统的了解 二.实验内容 实验一是对arcGiS概述。介绍arcGiS的发展,以及9.3系列软件的构成体系,了解桌面产品部分arcmap、arccatalog和arcToolbox的相

关基础知识; 实验二讲解了视图数据的显示与管理 主要阐述如何让创建新的mapdocument(工程文档),工程文档的保存,创建新数据层layer,数据层(Layer)的操作等; 实验三讲解了arcmap下的数据编辑与修改编辑点、线、面文件的流程,点、线、面的主要生成方法和介绍了绘图工具、编辑菜单;实验四讲解了栅格数据矢量化介绍了arcScan工具。arcScan是arcmapdesktop中栅格矢量化的扩展工具。它提供了一套强大且易使用的栅格矢量化工具。它使得用户可以通过捕捉栅格要素,以交互追踪或批处理的方式直接通过栅格影像创建矢量数据; 实验五讲解了符号编辑与属性表操作比如点状符号的制作,现状状符号的制作,面状符号的制作和属性表的常用操作如创建属性表、编 辑表格、表格查询、表格计算等; 实验六讲解了空间查找与空间分析。主要熟练掌握缓冲区分析和叠置分析中的图层擦除(Erase)、交集操作(intersect)和图层合并(Union);实验七讲解了矢量数据的最短路径分析和栅格数据的最佳路径分析。主要我们掌握网络分析和栅格数据的空间分析; 实验八讲解了图表与报告创建使用和图版设置与地图整饰。创建图表与使用图、表创建报表与使用报表和图版设置与地图整饰。三.实验步骤及感想 通过这学期的arcGiS实习,让我体验到了arcGiS功能之强大,也让我对arcGiS有了一个整体的认识。也让我知道了地理信息系统是做

arcgis 二次开发

gis的开发方法有三种,即独立开发,宿主型二次开发,基于gis组件的二次开发,其中独立开发为底层开发,不依赖于任何gis工具软件,开发难度太大,后两者是基于一种软件的二次开发,这样的二次开发则相对较简单,他的好处也是显而易见的。 宿主型二次开发是指基于GIS平台软件上进行应用系统开发。大多数GIS 平台软件都提供了可供用户进行二次开发的脚本语言,如ESRI的ArcView提供 了Avenue语言,Maplnfo公司的MapInfo Professional提供了MapBasic语言 等等。用户可以利用这些脚本语言,以原GIS软件为开发平台,开发出自己的 针对不同应用对象的应用程序。这种方式省时省心,但进行二次开发的脚本语言, 作为编程语言,功能极弱,用它们来开发应用程序仍然不尽如人意,并且所开发 的系统不能脱离GIS平台软件,是解释执行的,效率不高。相比基于组件的二次开发可以根据自己的需要扩展系统的功能,并且可以脱离原gis平台软件,综合看来,单纯二次开发受gis基础平台提供的编程语言的限制,而基于组件式的二次开发不仅能提高开发效率,同时可靠性好,易于移植,便于维护。所以,结合gis基础平台软件与当今可视化开发语言的组件式二次开发成为gis开发的主流。但是二次开发也不是十全十美的,只要我们使其中的瑕疵减少,误差也就会减少。 ArcGIS Engine开发工具包是一个基于组件的软件开发产品,用于建立和部署自定义GIS和制图应用程序。ArcGIS Engine开发工具包不是一个终端用户产品,而是一个应用程序开发人员的工具包。可以用ArcGIS Engine开发工具包建立基本的地图浏览器或综合、动态的GIS编辑工具。使用ArcGIS Engine开发工具包,开发人员在建立定制的地图接口方面具有前所未有的灵活性。开发人员可以使用几个API中的任何一个来建立独一无二的应用程序,或者将ArcGIS Engine组件与其他软件组件组合起来实现地图与用户管理信息之间的协同关系。 (可选资料) 从第一个GIS系统一加拿大地理信息系统(CGIS)到目前用户可以自己定制 的GIS系统,GIS二次开发经历了巨大的变化。在这个发展过程中主要出现了两 种GIS二次方式,即宿主型二次开发和基于GIS组件的二次开发131。 GIS开发过程中常用的两种构架(c/s和B/S) 基于c/s结构的GIS是 由客户机完成GIS分析、输出工作。GIS数据和分析工具最初放在服务器上,运 行时下载到客户机,操作灵活。但是c/s应用软件模式大都是基于“胖客户机” 结构下的两层结构应用软件。客户端软件一般由应用程序及相应的数据库连接程 序组成,服务器端软件一般是某种数据库系统。客户机端软件的主要功能是处理 与用户的交互、按照某种应用逻辑实现与数据库系统的交互;服务器端软件的主 要功能是数据库系统根据客户端软件的请求进行数据库操作,然后将结果传送到 客户端软件。客户端软件与服务器端软件之问的通信主要是通过SQL语句。两层 C/S结构应用软件的开发工作主要集中在客户端,客户端端软件不但要完成用户

应用型ArcGIS开发的三种实现方式

应用型ArcGIS开发的三种实现方式 (1)独立开发 指不依赖于任何GIS工具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独立设计,然后选用某种程序设计语言,如Visual C++、Delphi等,在一定的操作系统平台上编程实现。这种方式的好处在于无须依赖任何商业GIS工具软件,减少了开发成本,但一方面对于大多数开发者来说,能力、时间、财力方面的限制使其开发出来的产品很难在功能上与商业化GIS工具软件相比,而且在购买GIS工具软件上省下的钱可能还抵不上开发者在开发过程中绞尽脑汁所花的代价。 (2)单纯二次开发 指完全借助于GIS工具软件提供的开发语言进行应用系统开发。GIS工具软件大多提供了可供用户进行二次开发的宏语言,如ESRI的ArcView提供了Aven ue语言,MapInfo公司研制的MapInfo Professional提供了MapBasic语言等等。用户可以利用这些宏语言,以原GIS工具软件为开发平台,开发出自己的针对不同应用对象的应用程序。这种方式省时省心,但进行二次开发的宏语言,作为编程语言只能算是二流,功能极弱,用它们来开发应用程序仍然不尽如人意。 (3)集成二次开发 集成二次开发是指利用专业的GIS工具软件,如ArcView、MapInfo等,实现GIS的基本功能,以通用软件开发工具尤其是可视化开发工具,如Delphi、V isual C++、Visual Basic、Power Builder等为开发平台,进行二者的集成开发。 集成二次开发目前主要有两种方式: 1.OLE/DDE 采用OLE Automation技术或利用DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调技术动态获取其返回信息,实现应用程序中的地理信息处理功能; 2. GIS 控件 利用GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能控件,如ESRI的MapObjects、MapInfo公司的MapX等,在Delphi等编程工具编制的应用程序中,直接将GIS功能嵌入其中,实现地理信息系统的各种功能。

arcgis实验实验报告

合肥工业大学资源与环境工程学院 《地理信息系统概论》实验报告 实验五 姓名:张瑞峰 学号:20094539 专业: 地信09-1班 任课教师: 赵萍

一、实验目的: 理解缓冲区分析和叠置分析的基本原理,学习利 用arcgis进行缓冲区分析、叠加分析的操作,掌握如何合理利用空间分析中的缓冲区分析和叠置分析解决实际问 二,实验材料: 软件:ArcGIS Desktop 9.x ,实验数据:文件夹ex5中三、实验内容及步骤 第1步:主干道噪音缓冲区的建立 打开city.mxd文件,将所有数据加进来;选择图层“network.shp”,打开图层的属性表,再点击右下角的“选项”,再点击菜单中选择“通过属性选择”,在打开的对话框中,左边选择“TYPE”双击将其添加到对话框下面SQL算式表中,点中间“=”,再单击“得到唯一值”将TYPE的全部属性值加入上面的列表框中,然后选择“ST”属性值,双击添加到SQL算式表中,单击“应用”按钮,得到截图如下:

点击菜单“工具”,点击自定义,在打开的对话框中选择“命令”选项页,左边目录栏选择“工具”,然后将右边的命令列表中找到的缓冲区向导按钮拖至工具栏,首先在缓冲区对象图层:选择交通网络图层“network”,然后将下面的“只使用

选中的要素”选中,单击“下一步”; 确定尺寸单位米,选择第一种缓冲区建立方法,指定缓冲区半径为200米,单击“下一步”

第2步商业中心影响范围建立 点击缓冲区按钮,在缓冲区对象图层选择商业中心分布图层“Marketplace”,单击“下一步”;确定尺寸单位米,选择第二种缓冲区建立方法,以其属性字段YUZHI为缓冲区半径,单击“下一步”;

ArcGIS进行二次开发别人经验

请问怎样利用ArcGIS进行二次开发? 2012-10-05 17:42|分类:|浏览1995次 我装了arcgis10.上面有arcGlobe,arcSence,arcCatalog,arcMap.只有这些能进行开发吗?l 另外需要装arcgis object和arcEngine吗? 分享到: 2012-10-07 16:10提问者采纳 安装ArcGIS10.0后,装(如Visual Studio),如果已经有,跳过这一步直接安装ArcGIS SDK 及AE并授权,即可在中使用来做。 ArcGIS Map、Server、Catalog、Scene、Globe都是基于ArcGIS Object开发出来的产品;ArcGIS Engine也是基于ArcGIS Object的类库封装起来的一个开发产品,用来自定义开发C/S端应用GIS。 追问 我比较擅长使用C#,但是好像所提供的开发包没有支持c#语言的??我装的vs2010也是C#环境。 回答 好,C#属于.NET,装SDK For .NET就行了。 提问者评价 谢谢你耐心的指导,问题算是解决了。 想自学ArcGIS二次开发,Java语言 2012-03-28 12:11|分类:|浏览529次 想自学ArcGIS二次开发,使用Java语言,本人目前水平:C语言一点基础,做过谭浩强C程序设计上的大部分题,无实际开发经验,会一点ArcGIS简单操作。请问各位高手、大侠:我该如何入手,学习步骤、方法,再推荐一些书籍。谢谢! 分享到:

2012-03-28 15:25提问者采纳 要学开发,必须要先学Java语言,了解编程;之后要熟悉软件的架构与原理,然后你就可以进行的学习了。不过现实中用的ArcGIS Server开发比较多,学习的时候可以偏重些。 追问 能推荐些书籍吗,哪些书比较好,有没有一些相关学习资源? 回答 学习Java的话当然是《Java入门经典》 学习Server的话,比较好的书比较少,不过你可以看一下AE的书籍。当然如果你的英语比较好的话建议你上https://www.doczj.com/doc/92786395.html,和程序中自带的一些例子 用JAVA进行ARCGIS二次开发的源代码 2012-09-03 16:56提问者悬赏:5分||分类:|浏览19次 我有更好的答案 分享到: 1条回答 2012-09-04 20:00|三级最快回答 可用装好sdk for java,在program lifes下会有实例。。

相关主题
文本预览
相关文档 最新文档