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

GIS二次开发实验报告

GIS二次开发实验报告
GIS二次开发实验报告

GIS二次开发实验报告

学号:

姓名:

班级:

专业:

指导老师:

二零一五年11月15日

目录

1 实验一:软件安装与AOI书签开发 (2)

1.1 实验目的 (2)

1.2 实验内容 (2)

1.3 实验结果 (2)

2 实验二:地图数据组织与访问 (5)

2.1 实验目的 (5)

2.2 实验内容 (5)

2.3 实验结果 (5)

3 实验三:地图渲染与制图输出 (9)

3.1 实验目的 (9)

3.2 实验内容 (9)

3.3 实验结果 (9)

4 实验四:空间数据处理 (14)

4.1 实验目的 (14)

4.2 实验内容 (14)

4.3 实验结果 (14)

5 实验五:GIS分析 (20)

5.1 实验目的 (20)

5.2 实验内容 (20)

5.3 实验结果 (20)

6实验六:栅格数据处理 (25)

4.1 实验目的 (25)

4.2 实验内容 (25)

4.3 实验结果 (25)

7实验总结 (31)

1实验一:软件安装与AOI书签开发

1.1实验目的

?掌握AOI书签程序开发

1.2实验内容

?实现AOI书签的创建

?实现AOI书签的调用

1.3实验步骤与结果

安装程序后,新建地图显示项目。在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为miCreateBookmark,在旁边添加组合框,控件名为cbBookmarkList。

1.右击引用选择AddArcGIS Reference在弹出的对话框中添加引用在主窗体(即MainForm.cs)中添加代码;

(1)首先添加引用代码:using ESRI.ArcGIS.Display;

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.Geodatabase;

using ESRI.ArcGIS.DataSourcesFile;

using ESRI.ArcGIS.DataSourcesRaster;

(此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需要的所有引用,在之后的编程中,可以不用重复引用)

(2)添加“创建书签”函数

在MainForm类中添加成员函数CreateBookMark,代码如下:

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

{

//通过IAOIBookmark接口创建一个变量,其类型为AOIBookmark,用于保存当前地图的范围

IAOIBookmark aoiBookmark = new AOIBookmarkClass();

if (aoiBookmark != null)

{

aoiBookmark.Location = axMapControl1.ActiveView.Extent;

https://www.doczj.com/doc/01642335.html, = sBookmarkName;

}

//通过IMaoBookmarks接口访问当前地图,并向地图中加入新建书签 IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;

if (bookmarks != null)

{

bookmarks.AddBookmark(aoiBookmark);

}

//将新建书签名加入组合框中,用于之后调用对应书签

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

}

2.添加“书签名成设置”窗体

(1)点击项目添加Windows窗体,该窗体命名为“AdmitBookmarkName.cs”,点击添加后,转入设计窗口。

(2)设置窗体的文本属性为“书签名称设置”,尺寸设置为“200,100”,初始位置设置为“CenterScreen”

(3)添加控件,添加一个文本框,控件名为“tbBookmarkName”。一个按钮,文本属性为“确认”,控件名为“btnAdmit”

(4)双击“确认”按钮,自动生成点击事件响应函数,并转至窗体代码页。

3.添加成员变量m_frmMain,并为确认按钮输入代码,代码如下:

//用于保存主窗体对象

public MainForm m_frmMain;

//用于传入主窗体对象

public AdmitBookmarkName(MainForm frm)

{

InitializeComponent();

if (frm != null)

{

m_frmMain = frm;

}

}

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

private void btnAdmit_Click(object sender, EventArgs e)

{

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

{

m_frmMain.CreateBookmark(tbBookmarkName.Text);

}

this.Close();

}

4.为主窗体的“创建书签”菜单生成“点击”事件响应函数,代码如下:AdmitBookmarkName frmABN = new AdmitBookmarkName(this);

frmABN.Show();

5.为组合框cb_BookmarkList生成“选择索引更改”事件响应函数,代码如下

//组合框的“选择索引更改”事件响应函数,用于在改变组合框所选项时地图范围变为其对应书签所保存的范围

private void cbBookmarkList_SelectedInexChanged(object sender, EventArgs e)

{

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

IMapBookmarks bookmarks = axMapControl1.Map as IMapBookmarks;

IEnumSpatialBookmark enumSpatialBookmark = bookmarks.Bookmarks;

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

enumSpatialBookmark.Reset();

ISpatialBookmark spatialBookmark = enumSpatialBookmark.Next();

while (spatialBookmark != null)

{

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

{

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

axMapControl1.ActiveView.Refresh();

break;

}

spatialBookmark = enumSpatialBookmark.Next();

}

6.实验结果如下

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

2.1实验目的

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

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

2.2实验内容

?编写“数据操作”类

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

2.3实验步骤与结果

1.添加“空间数据”菜单项,在下拉菜单中添加一个菜单项文本为“访问图层数据”名称为“miAccessData”,用于稍后调用“数据展示台”窗体。

2.新建窗体类,窗体文件命名为“DataBoard.cs”文本属性为“数据展示台”。添加一个文本框,控件名为“tbDataName”,一个数据网格视图,控件名为“dataGridView1”,ReadOnly=true。

如图所示

3.在当前窗体代码中加入以下代码

public DataBoard(String sDataName, DataTable dataTable)

{

//初始化窗体及控件

InitializeComponent();

//设置文本框中的文本和数据网格视图的数据源

tbDataName.Text = sDataName;

dataGridView1.DataSource = dataTable;

}

4.添加类,命名为“DataOPerator.cs”并导入类库引用

using System.Data;

using ESRI.ArcGIS.Carto;

using ESRI.ArcGIS.Geometry;

using ESRI.ArcGIS.Geodatabase;

using ESRI.ArcGIS.DataSourcesFile;

5.添加以下代码

//保存当前地图对象

public IMap m_map;

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

public DataOperator(IMap map)

{

m_map = map;

}

6.添加“获取地图图层”功能函数。代码如下

public ILayer GetLayerByName(String sLayerName)

{

//判断图层名或地图对象是否为空。若为空,函数返回空。

if (sLayerName == "" || m_map == null)

{

return null;

}

//对地图对象中的所有图层进行遍历。若某一图层的名称与指定图层名相同,则返回该图层、

for (int i = 0; i < m_https://www.doczj.com/doc/01642335.html,yerCount; i++)

{

if (m_map.get_Layer(i).Name == sLayerName)

{

return m_map.get_Layer(i);

}

}

return null;

}

7.添加成员函数GetContinentsNames代码如下

public DataTable GetContinentsName()

{

//获取“Continents”图层,利用IFeatureLayer接口访问,并判断是否成功。若失败,函数返回空

ILayer layer = GetLayerByName("Continents");

IFeatureLayer featureLayer = layer as IFeatureLayer;

if (featureLayer == null)

{

return null;

}

//调用IFeatureLayer接口的Seach方法,获取要素指针(IFeatureCursor)接口对象,用于在之后遍历图层中的全部要素,并判断是否成功获取第一个要素,若失败,函数返回空

IFeature feature;

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

feature=featureCursor.NextFeature();

if (feature==null )

{

return null ;

}

//新建DataTable类型对象,用于函数返回

DataTable dataTable = new DataTable();

//新建DataColumn类型对象,分别保存各个州的序号和名称。设置完毕后,加入DataTable的列集合(Columns)中。

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

//对图层中的要素进行遍历。每获取一个要素,就关联DataTable 的下一个DataRow,将要素在序号和名称字段上的值赋给DataRow的对应列中。在"ContInents"图层属性表中,序号信息在第0个字段中,名称信息在第2个字段中。相关内容可以通过ArcMap对地图文档进行查看。

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;

}

8.添加“访问图层数据”菜单“点击”事件响应函数,代码如下

private void miAccessData_Click(object sender, EventArgs e)

{

//获取保存各个州名称的DataTable,将其作为构造函数的参数,新建“数据展示台”窗体对象

DataOperator dataOperator = new

DataOperator(axMapControl1.Map);

DataBoard dataBoard = new DataBoard(

"各大洲洲名",

dataOperator.GetContinentsName());

//运行载有数据的“数据展示台”窗体对象。

dataBoard.Show();

}

9.实验结果如下

3 实验三:地图渲染与制图输出

3.1实验目的

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

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

3.2实验内容

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

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

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

3.3实验步骤结果

1.添加一个主窗体菜单控件,控件名为“miCarto”,文本属性为“地图表现”,添加两个下拉菜单项文本属性分别为“简单渲染图层”和“获取渲染器信息”,控件名分别为“miRenderSimple”和“miGetRenderInfo”

2.添加类库引用

3.添加“地图编制”类命名为“MapComposer.cs”,添加类库引用。添加成员函数,代码如下;

public static String GetRendererTypeByLayer(ILayer layer)

{

//判断图层是否获取成功。若失败,函数返回“图层失败”

if (layer == null)

{

return "图层获取失败";

}

//使用IGeoFeatureLayer接口访问指定图层,并获取其渲染器。

IFeatureLayer featureLayer = layer as IFeatureLayer;

IGeoFeatureLayer geoFeatureLayer = layer as IGeoFeatureLayer;

IFeatureRenderer featureRenderer = geoFeatureLayer.Renderer;

//判断该图层渲染器是否为备选渲染器类型之一,如匹配成功返回其类型信息。

if (featureRenderer is ISimpleRenderer)

{

return "SimpleRenderer";

}

else if (featureRenderer is IUniqueValueRenderer)

{

return "UniqueValueRenderer";

}

else if (featureRenderer is IDotDensityRenderer)

{

return "DotDensityRenderer";

}

else if (featureRenderer is IChartRenderer)

{

return"ChartRenderer";

}

else if (featureRenderer is IProportionalSymbolRenderer)

{

return "ProportionalSymbolRenderer";

}

else if (featureRenderer is IRepresentationRenderer)

{

return "RepresentationRenderer";

}

else if (featureRenderer is IClassBreaksRenderer)

{

return "ClassBreaksRenderer";

}

else if (featureRenderer is IBivariateRenderer)

{

return "BivariateRenderer";

}

//若渲染器类型匹配失败,则返回“未知或渲染器获取失败”。

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

}

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

public static ISymbol GetSymbolFromLayer(ILayer layer)

{

//判断图层是否获取成功。若失败,函数返回空。

if (layer == null)

{

return null;

}

// 利用IFeatureLayer接口访问指定图层,获取到图层中的第一个要素,判断是否成功。富哦失败,函数返回空。

IFeatureLayer featureLayer = layer as IFeatureLayer;

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

IFeature feature = featureCursor.NextFeature();

if (feature == null)

{

return null;

}

//利用IGeoFeatureLayer访问指定图层,获取其渲染器,并判断是否成功。否则失败,函数返回空。

IGeoFeatureLayer geoFeatureLayer = featureLayer as IGeoFeatureLayer;

IFeatureRenderer featureRenderer = geoFeatureLayer.Renderer;

if (featureRenderer == null)

{

return null;

}

//通过IFeatureRenderer接口的方法获取图层要素对应的符号信息,并作为函数结果返回。

ISymbol symbol = featureRenderer.get_SymbolByFeature(feature);

return symbol;

}

//添加静态成员函数RenderSimply,用于统一设置指定图层的颜色,并进行简单渲染。

public static bool RenderSimply(ILayer layer, IColor color)

{

//判断图层和颜色是否获取成功。若失败,函数返回false.

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

{

return false;

}

//调用GetSymbolFromLayer成员函数,获取指定图层的符号,并判断是否成功。若失败,函数返回false。

ISymbol symbol = GetSymbolFromLayer(layer);

if (symbol == null)

{

return false;

}

//获取指定图层的要素类,并判断是否成功。若失败,函数返回false。

IFeatureLayer featureLayer = layer as IFeatureLayer;

IFeatureClass featureClass = featureLayer.FeatureClass;

if (featureClass == null)

{

return false;

}

//获取指定图层要素类的几何形状信息,并进行匹配。根据不同相撞,设置不同类型符号的颜色。若几何形状不属于

//Point、MultiPoint、PolyLine和Polygon,则函数返回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;

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 :

return false;

}

//新建简单渲染器对象,设置其符号。通过IFeatureRenderer接口访问它,并判断是否成功。若失败,函数返回false。

ISimpleRenderer simpleRenderer = new SimpleRendererClass();

simpleRenderer.Symbol = symbol;

IFeatureRenderer featureRenderer = simpleRenderer as IFeatureRenderer;

if (featureRenderer == null)

{

return false;

}

//通过IGeoFeatureLayer接口访问指定图层,并设置其渲染器。函数返回ture。

IGeoFeatureLayer geoFeatureLayer = featureLayer as IGeoFeatureLayer;

geoFeatureLayer.Renderer = featureRenderer;

return true;

}

4.添加“简单渲染器图层”点击事件响应函数

private void 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;

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("简单渲染图层失败!");

}

}

5.添加“获取渲染器信息”点击事件响应函数代

private void miGetRendererInfo_Click(object sender, EventArgs e)

{

DataOperator dataOperator = new DataOperator(axMapControl1.Map);

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

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

}

6.实验运行结果如下

4 实验四:空间数据处理

4.1实验目的

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

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

4.2实验内容

?实现创建Shapefile文件的程序

?实现新增点要素程序

4.3实验步骤与结果

1.添加主窗体控件:文本=“数据操作”,控件名为“miData”添加下拉控件:文本为“创建Shapefile”,控件名为“miCreateShapefile”

2.添加类库的引用

3.添加“创建Shape文件”功能函数代码如下

//创建Shape文件

public IFeatureClass CreateShapefile(

String sPearentDiewctory, //上级路径

String sWorkspaceName, //包含shape文件的文件夹名

String sFileName) //shape文件名

{

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

if (System.IO.Directory.Exists(sPearentDiewctory + sWorkspaceName))

{

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

}

//通过IWorkspaceFactory接口创建针对shape文件的工作空间对象,并通过参数创建相关工作(文件夹),用于包含shape文件。

IWorkspaceFactory workspaceFactory = new ShapefileWorkspaceFactoryClass();

IWorkspaceName workspaceName = workspaceFactory.Create(sPearentDiewctory, sWorkspaceName, null, 0);

ESRI.ArcGIS.esriSystem.IName name = workspaceName as ESRI.ArcGIS.esriSystem.IName;

//打开新建的工作空间,并通过IFeatureWorkspace接口访问它。

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/01642335.html,_2 = "OID";

fieldEdit.AliasName_2 = "序号";

fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID;

fieldsEdit.AddField((IField)fieldEdit);

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

fieldEdit = new FieldClass();

https://www.doczj.com/doc/01642335.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/01642335.html,_2 = sShapeFieldName;

fieldEdit.AliasName_2 = "形状";

fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;

fieldEdit.GeometryDef_2 = geoDefEdit;

fieldsEdit.AddField((IField)fieldEdit);

//调用IFeatureworkspace接口的CreateFeatureClass方法,创建要素类。并判断是否创建成功。

IFeatureClass featureClass = featureWorkspace.CreateFeatureClass(sFileName, fields, null, null, esriFeatureType.esriFTSimple, "Shape", "");

if (featureClass == null)

{

return null;

}

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

return featureClass;

}

////////////////////////////////////////////////////////////////////

public bool AddfeatureClassToMap(

IFeatureClass featureClass, //将要被添加的要素类

String sLayerName) //图层名称

{

//判断要素类、图层名和地图对象是否为空。如为空,则函数返回false。

if (featureClass == null || sLayerName == "" || m_map == null)

{

return false;

}

//通过IFeatureLayer接口创建要素图层对象,将要素类以层的形式进行操作。

IFeatureLayer featureLayer = new FeatureLayerClass();

featureLayer.FeatureClass = featureClass;

https://www.doczj.com/doc/01642335.html, = sLayerName;

//将要素图层转换为一般图层,并判断是否成功。若失败,函数返回false。

ILayer layer = featureLayer as ILayer;

if (layer == null)

{

return false;

}

//将创建好的图层添加至地图对象。将地图对象转化为活动视图,并判断是否成功。若失败,函数返回false。

m_map.AddLayer(layer);

IActiveView activeView = m_map as IActiveView;

if (activeView == null)

{

return false;

}

//活动视图进行刷新,新添加的图层将被展示在控件中。函数返回true。

activeView.Refresh();

return true;

}

4.添加“创建Shape文件”点击事件响应函数,代码如下

private void miCreateShapefile_Click(object sender, EventArgs e)

{

//创建Shape文件,将其以要素类形式获取,并判断是否成功。若失败,消息框提示,函数返回空。

DataOperator dataOperator = new DataOperator(axMapControl1.Map);

IFeatureClass featureClass = dataOperator.CreateShapefile("E:\\","ShapefileWorkspace","ShapefileSample");

if (featureClass == null)

{

MessageBox.Show ("创建Shape文件失败!");

return;

}

//////////

bool bRes=dataOperator.AddfeatureClassToMap(featureClass,"Observation Stations");

if (bRes )

{

miCreateShapefile.Enabled =false;

miAddFeature.Enabled = true;

return;

}

else

{

MessageBox.Show ("将新建Shape文件加入地图失败!");

return;

}

}

5.实验运行结果如下

6.添加“数据操作”下拉控件,文本为“添加要素”控件名为“miAddFeature”

7.添加“添加要素”函数,代码如下

//添加要素

public bool AddFeatureToLayer(

String sLayerName, //指定图层的名称

String sFeatureName, //将被添加的要素名称

IPoint point) //将被添加的要素的坐标信息

{

//判断图层名、要素名、要素坐标和地图对象是否为空。若为空,函数返回false。

if (sLayerName == "" || point == null || m_map == null)

{

return false;

}

//对地图对象中的图层进行遍历。当某图层的名称与指定名称相同时,则跳出循环。

ILayer layer = null;

for (int i = 0; i < m_https://www.doczj.com/doc/01642335.html,yerCount; i++)

{

layer = m_map.get_Layer(i);

{

break;

}

layer = null;

}

//判断图层是否获取成功。若失败,函数返回false。

if (layer == null)

{

return false;

}

//通过IFeatureLayer接口访问获取到的图层,并进一步获取其要素类。

IFeatureLayer featureLayer = layer as IFeatureLayer;

IFeatureClass featureClass = featureLayer.FeatureClass;

//通过IFeature接口访问要素新创建的要素,并判断是否成功。若失败,函数返回false。

IFeature feature = featureClass.CreateFeature();

if (feature == null)

{

return false;

}

//对新创建的要素进行编辑,将其坐标、属性值进行设置。最后保存该要素,并判断是否成功。若失败,函数返回false。

feature.Shape = point;

int index = feature.Fields.FindField("Name");

feature.set_Value(index, sFeatureName);

feature.Store();

if (feature == null)

{

return false;

}

//将地图对象转化为活动视图,并判断是否成功。若失败,函数返回false。

IActiveView activeView = m_map as IActiveView;

if (activeView == null)

{

return false;

}

//活动视图进行刷新,新添加的要素将被展示在控件中。函数返回true。

activeView.Refresh();

return true;

}

8.添加“添加要素”点击事件响应函数,代码如

private void miAddFeature_Click(object sender, EventArgs e)

{

{

miAddFeature.Checked = true;

}

else

{

miAddFeature.Checked = false;

}

}

9.为地图控件对象添加鼠标按下事件响应函数,代码如下

private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)

{

//在“添加要素”菜单项中被勾选时,进行以下操作。

if (miAddFeature.Checked == true)

{

//新建Point类对象,保存鼠标按下的位置信息。

IPoint point = new PointClass();

point.PutCoords(e.mapX, e.mapY);

//在新建图层中添加要素,要素的名称通体设置为”观测站“。

DataOperator dataOperator = new DataOperator(axMapControl1.Map);

dataOperator.AddFeatureToLayer("Observation Stations", "观测站", point);

return;

}

}

10.实验运行结果如下

GIS二次开发实验报告

GIS二次开发实验报告 学号: 姓名: 班级: 专业: 指导老师: 二零一五年11月15日

目录 1 实验一:软件安装与AOI书签开发 (2) 1.1 实验目的 (2) 1.2 实验内容 (2) 1.3 实验结果 (2) 2 实验二:地图数据组织与访问 (5) 2.1 实验目的 (5) 2.2 实验内容 (5) 2.3 实验结果 (5) 3 实验三:地图渲染与制图输出 (9) 3.1 实验目的 (9) 3.2 实验内容 (9) 3.3 实验结果 (9) 4 实验四:空间数据处理 (14) 4.1 实验目的 (14) 4.2 实验内容 (14) 4.3 实验结果 (14) 5 实验五:GIS分析 (20) 5.1 实验目的 (20) 5.2 实验内容 (20) 5.3 实验结果 (20) 6实验六:栅格数据处理 (25) 4.1 实验目的 (25) 4.2 实验内容 (25) 4.3 实验结果 (25) 7实验总结 (31)

1实验一:软件安装与AOI书签开发 1.1实验目的 ?掌握AOI书签程序开发 1.2实验内容 ?实现AOI书签的创建 ?实现AOI书签的调用 1.3实验步骤与结果 安装程序后,新建地图显示项目。在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为miCreateBookmark,在旁边添加组合框,控件名为cbBookmarkList。 1.右击引用选择AddArcGIS Reference在弹出的对话框中添加引用在主窗体(即MainForm.cs)中添加代码; (1)首先添加引用代码:using ESRI.ArcGIS.Display; 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.Geodatabase; using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.DataSourcesRaster; (此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需要的所有引用,在之后的编程中,可以不用重复引用) (2)添加“创建书签”函数 在MainForm类中添加成员函数CreateBookMark,代码如下: public void CreateBookmark(string sBookmarkName)//参数为书签名 { //通过IAOIBookmark接口创建一个变量,其类型为AOIBookmark,用于保存当前地图的范围 IAOIBookmark aoiBookmark = new AOIBookmarkClass(); if (aoiBookmark != null) { aoiBookmark.Location = axMapControl1.ActiveView.Extent;

GIS实习报告

实习1 步骤: 1.下载安徽地区DEM数据,如多幅,做图像的拼接。登录https://www.doczj.com/doc/01642335.html,/下载DEM数据 拼接: 2.DEM填洼

3.水流方向矩阵 4.水流累积量矩阵

5.生成河网 提取河流网络矢量数据:

平滑处理河流网络: 打开[编辑器]工具栏,执行工具栏中的命令[编辑器]——>[开始编辑],确保目标图层为河流网络图层[StreamT_StreamN1],通过打开[StreamT_StreamN1]属性表,并选择属性表的所有行选择图层[StreamT_StreamN1]中的所有要素,也可以通过[要素选择按钮]选择图层中所有要素 执行[编辑器]工具栏中的命令[编辑器]——>[更多的编辑工具]——>[高级编辑]打开工具条:[高级编辑],点击其上的[平滑]按钮: 在[平滑]处理对话框中输入参数[允许最大偏移]为4,得到平滑后的河流网络矢量图层,执行命令: [编辑器]——>[停止编辑],保存所做修改。 实习2—1

1. 现有某区域一幅有投影信息的单波段遥感图像(tm00.img)、DEM数据、两幅多光谱遥感图像(tm01.img\tm0 2.img)及该区域的矢量数据图层文件(bound.shp),其中有一幅多光谱图像无投影信息(tm02.img),现需要对无投影信息的多光谱图像进行几何校正、镶嵌、裁切等处理,并利用矢量数据裁剪镶嵌后的多光谱数据,利用裁剪后的多光谱数据及DEM数据,提取区域植被覆盖信息。 要求: 以有投影信息的单波段遥感图像为参考空间,对tm02img进行几何校正;命名为jztm02img,对jztm02img及tm01.img进行镶嵌,并用bound.shp进行裁剪,记录主要操作过程及结果,要求结果中体现几何校正中控制点分布、控制点数量,RMS要求在0.5个像元内。 利用裁剪后的多光谱数据及DEM数据,提取区域缓坡植被信息、非朝北缓坡植被、陡坡植被、水体、裸地、背景区,提取规则如下: 朝北缓坡植被:NDVI大于0.25,坡度小于20°,朝北 非朝北缓坡植被:NDVI大于0.25,坡度小于20°,非朝北 陡坡植被:NDVI大于0.25,坡度大于等于20° 水体:NDVI小于等于0.25,波段4的DN值大于0且小于20 裸地:NDVI小于等于0.25,波段4的DN值大等于20 背景区:NDVI小于等于0.25,波段4的DN值等于0 要求规则表达正确,统计各类植被信息百分比,并对分类结果进行专题制图,专题要求有经纬网、图名、指北针、比例尺、图例,制图符合规范。 1.用tm00对tm02配准。得到tm02_pz 配准菜单下——几何校正——图像到图像

GIS实验报告一

《GIS原理与应用》课程实验报告一 学生姓名朱山昱班级 0802602 学号 19 实验名称:使用ArcMap浏览地理数据 实验目的 1.了解地理数据是如何进行组织及基于“图层”进行显示的。 2.认识ArcMap 图形用户界面。 3.通过浏览与地理要素关联的数据表,你可以了解地理数据是如何与其属性信息进行 连接的。 4.掌握GIS两中基本查询操作,加深对其实现原理的理解。 5.初步了解设置图层显示方式-图例的使用。 实验原理: 实验的主要原理是查询数据。通过查询需要的数据并选定,最终显示出来并供浏览。 ArcMap可以加载图层并显示,调整图层顺序或只打开某一图层时就可以显示不同的信息。用过查看图层属性表,就可以查看每一图层各种属性及其相关信息。在属性表中,还可以通过查找这一工具根据位置来实现对某一种或几种数据属性的查询。经过自主的筛选后,选定自己需要的图层属性,就可以通过图层显现出来。 实验数据: Redlands市土地利用及街区矢量数据 实验过程: 1、在 ArcMap中, 打开 Redlands.mxd。街道名称为“NEW YORK”的是什么类型的道路? 是Local street(本地街道)

打开属性表,点击选项,选择查找,弹出对话框,查找街道名称为“NEW YORK ”的道路,查看其道路类型。 2.在ArcMap 中, 打开Redlands.mxd 。在Railroads 图层中有多少条铁路线?

六条,仅选中Railroads,让其图层显现,数得共有六条。 实验总结: ArcGIS Desktop是一个用于表达通用GIS 数据模型(要素、栅格、拓扑、网络等等)同时也是用于显示地表上的要素和要素间关系的视图。是一套用来从现有的数据集获取新数据集的信息转换工具。这些空间处理功能从已有数据集提取信息,然后进行分析,最终将结果导入到数据集中。ArcMap 是ArcGIS Desktop 中一个主要的应用程序,具有基于地图的所有功能,包括制图、地图分析和编辑。 ArcGIS主要有两种查询,其原理是根据位置查询要素属性或通过属性来查询要素的功能是每个桌面GIS 软件必须提供的功能。查询,通常是通过语句或表达式来定义的,用以在从地图上及数据库中选择要素。知道要素的重要特征,他想要找出具有这些特征的那些要素的具体位置。要素的位置,但是想进一步了解与之相关的特征。在GIS中,这是很容实现的,因为地图显示区中的地理要素与它们的属性是(描述性的特征)相互关联的,属性信息是存储在数据库中的。 在GIS 中,你可以在地图上点击一个要素来查看数据库中与之相关联的属性。另一类型的GIS查询是确定符合给定条件的要素它的位置在哪里。在这种情况下,用户最普通的GIS查询就是确定在指定的位置有什么。 成绩评定: 签字: 2011年05月28日

GIS开发实习报告

学号1221030205 实习报告 GIS程序设计实习 起止日期:2015 年7 月13 日至2015 年7 月19 日 学生姓名吴馁 班级12级地信2 班 成绩 指导教师(签字) 地质与测绘学院 2015年7 月20 日

GIS程序设计实习 一、实习目的 通过GIS程序设计实习,使学生了解需求分析、项目管理方案设计、系统总体设计以及系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在C#和ArcEngine环境下构建应用型地理信息系统的方法。 二、实习内容 熟悉开发环境:Visual Studio 2010; C#; Arc Engine 10.1 功能需求分析 基于组件技术开发应用型地理信息系统 组件式技术已成为当今软件技术的潮流之一。组件式GIS软件的基本思想是把GIS各大功能模块划分为几个控件。各个GIS控件之间,以及GIS控件与其他非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。 重点完成的工作包括:1)建立ArcGIS Engine 应用程序框架;2)实现对矢量数据(Shape File格式)的访问;3)实现采用简单、唯一值、分类等多种方式对面状矢量数据进行渲染(Render)。 三、实习步骤: 实习一:初识ArcGIS Engine 开发环境 1、新建一个Windows窗体应用程序

2、在新建窗体中添加控件 在工具箱中选择添加toolbarcontrol,TOCControl,MapControl控件 在解决方案资源管理器中双击program.cs在主函数中添加ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);使得文件可以加载到MapControl中。

gis综合实验报告

gis综合实验报告 篇一:GIS综合实验报告 安徽理工大学地理信息系统 实验报告书姓名: 班级 学号: 指导教师:XX年11月目录前言-------------------------------------------------3 实验一:几何校正 -------------------------------------4 (1)实验目的 (2)实验原理 (3)实验内容与步骤 实验二:数据库设计基本流程---------------------------9 (1)实验目的 (2)实验原理 (3)实验内容与步骤 实验三:空间分析-------------------------------------12 (1)实验目的

(2)实验原理 (3)实验内容与步骤 实验四:地图制图-------------------------------------20 (1)实验目的 (2)实验原理 (3)实验内容与步骤 总结------------------------------------------------25 前言通过对《地理信息系统教程》的学习,掌握地理信息系统的基本概念、空间数据的建立、 采集、处理与存储组织、gis空间分析的原理方法、地图可视化等内容,并了解常用gis软 件的操作,为后续其它gis课程的学习打下基础。本实验课程要求掌握:arccatalog的基本操作、arcmap地图可视化、空间分析等操作。 强化对课本知识的掌握,并不断学习运用到以后的生活中去。实验一:几何校正 一、实验目的 利用影像配准工具进行影像数据的地理配准,熟悉编辑器的使用,掌握如何进行几何校

gis毕业实习报告

gis毕业实习报告 篇一:GIS实习报告 一、实习目的 地理信息系统是近年来迅速发展的一门学科,并且广泛运用到各方面,所以作为该专业的我们具有实践应用能力是很重要的,毕业实习是对我们四年来所学课程及实践应用能力的一个整体检验。通过实习,要求我们对目前社会或企业的前沿知识或技术有所了解,明确在未来工作中的学习方向,并且从中找到自己的差距和不足,同时自己的能力和软件应用水平在实践中也会得到全面提高。要求学生能将所学的地理信息系统的基本理论、基础知识与基本技能应用到信息化建设中。 主要任务,熟练运用所学的MAPGIS软件完成相关数据的编辑处理。将所学的知识应用于实践中,协助完成所在单位的不稳定耕地数据库建设工作。通过一个半月实习加深和巩固所学基本知识和基本技能,积累一定的社会工作能力,学会如何为人处事,如何提升自己和实现自我价值。 二、实习单位简介 实习单位是广西第一测绘院。广西第一测绘院是广西测绘局直属的事业性测绘单位,是国家测绘局首批授予的甲级

测绘资格单位,是ISO9001:XX国际质量管理体系认证单位。改革开放三十年来,形成“以项目为依托,产学研一体化”的指导思想,坚 持以人为本,夯实基础,努力构建科学发展、和谐发展的工作环境,现已发展壮大成为广西规模最大,实力最强、设备精良、快速反应的综合性测绘队伍。多年来,广西第一测绘院一直秉承“科技兴测”发展战略,不断加大研发力度,有六个科技开发项目获自治区(省)人民政府科学技术进步奖,其中一等奖1个,二等奖3个,三等奖2个。3个项目获国家测绘局科技进步三等奖,5个项目获中国测绘学会全国优秀工程铜奖。有二个科技开发项目拥有自主知识产权,于XX 年被国家人事部、国家测绘局授予“全国测绘系统先进集体”荣誉称号,于XX年被广西区政府授予“广西第二次土地调查先进集体”“广西双保工作先进集体”荣誉称号。 三、实习内容 在单位实习的时间里,我从事的是不稳定耕地数据库建设工作,主要负责数据的初步处理工作,包括数据格式转换,地图定位,采集耕地点,检查耕地点是否有漏画、多画、多加点、少加点等,检查微短线,拓扑构面等工作,采用的软件是MAPGIS。这个项目要求我们在掌握一定的MAPGIS的相关专业知识上,细心、耐心、认真有责任心有毅力的进行工

有关gis的实验报告和心得体会

有关gis的实验报告和心得体会 实验一 实验一,我感觉还不能很熟练的应用mapinfo的功能以及菜单栏、工具栏中各个图标的功能,所以当我开始做实验一时碰到的问题还是不少的,首先是对mapinfo软件的相关操作功能不太了解,比如加载数据的图标,如何使打开的图变大缩小,如何浏览做完后的实验成果图,以及在实验过程中,哪些步骤是不能省略掉的,比如使用控制图层在缩放范围内显示的这个小实验,就要注意打开几个图层的界面看起来非常复杂,通过图层控制来操作,可以使图层在缩放范围内显示,这就需要在图层控制的对话框中哪些框框该打钩,哪些不该打钩,这样所显示的效果就会不一样。只有熟练掌握了mapinfo的基本操作,以及步骤间的衔接才能完成实验。最后还是自己耐心的看书和实践中去找答案和解决问题。在这个实验中我学会了如何mapinfo软件的基本操作和怎么样制作地图图层以及如何使用模板创建专题地图。在制作这个实验的过程中体会了很多,也感觉在做专题地图和地图制作时的整个过程充满着趣味性,使我对地图的相关制作有了一定的了解。 实验二 实验二,因为已经对mapinfo软件操作功能有了一个初步的了解了,所以当在开始着手制作实验二是实验相关操作步骤时,在对fuzhou.jpg图像进行屏幕跟踪化过程时和后面进行的图像加载和配准时碰到的问题也相对较少也比较熟练。从实验二开始要用arcview软件时由于刚接触这个软件所以在做这部分的实验时制作速度显然比较

慢碰到的问题也还有的,面对许多功能按钮不熟悉时只能查找资料和问同学,但最终还是把实验二给做了,以下是我总结的注意点。 1.做屏幕跟踪这个实验时,在mapinfo中打开图像文件时,注意选择文件类型是栅格图像,然后点击一下所要打开的××市行政图,这样呈现出所要的画面。 2.编辑控制点的时候,至少选择三个点且三个点不要都在一条直线上,那样配准不成功。 3.选择合适的绘图工具,注意选中的是面状的绘图工具,选择线状的话跟踪完后不会出现实验所需的效果。 4在用鼠标画行政区时,注意拐点处必须点一下,画出来会更准确,注意在没画完不要双击,在画重叠部分时,注意激活。 5.在新建表示注意字段的类型时,图层分类要清晰。 6.投影、坐标系设置时,要设置地图单位为米。 实验三 实验三是对maminfo和arcview这两个软件一起搭配操作的制图实验操作。从实验数据格式的转换到投影变换的过程,都需要对这两个软件功能有所了解。虽然通过书本中的案例可以很容易的得出操作结果,但为了进一步了解这个转换过程中每一个相关信息和转换的含义,自己还是在书本上查找答案,和在制图操作实验中的注意点。 1.在第一步的数据格式转换中,注意不要把底图文件也选进去。 注意文件的命名,不要存得太深,最好可以放在根目录下,用英文命名,勿用中文命名。 2.数据格式转换的对话框中,要指明文件类型为mapinfotab格式。

GIS软件应用实习报告

辽宁工程技术大学 本科生实习报告书 教学单位测绘学院 专业测绘工程 班级测绘11-2 学生姓名李xx 学号 11040xxxxx 指导教师李xxx

GIS软件应用实习 2013/2014学年第1学期 实习时间:2013.10.15-2013.10.19

一.实习时间与地点 1. 时间:2013年10月15日一10月19日; 2. 地点:校计算机实验室(玉龙主楼601)。 二.实习目的及预期 在实习前预习时了解到,我们需要通过本次实习,初步掌握地理信息系统软件MapInfo的使用,重点掌握专题地理信息系统的空间数据的入库和属性数据的入库及联接,以及根据录入的数据进行地理分析操作。本实习不仅仅是针对GIS 软件的学习,更重要的是使我们对专题信息系统的建立具有初步的直接印象,为以后专题信息系统的开发奠定基础。在实习指导教师李兰勇老师的讲解和指导下,我们每人一机,结合MapInfo软件和实验数据独立完成本次实习的全部内容。三.实习内容与成果 3.1 MapInfo软件的介绍与安装 3.1.1 MapInfo概述 GIS出现20多年,成为比较成熟的技术。80年代以来,商品软件如Arc/Info、MGE(Intergraph)等GIS走出实验室进入实用。用户中有大量的对数据可视化,地理分析等方面的需求,但传统GIS产品的价格高,专业性强,应用平台高,界面复杂,普通用户难以完成开发。而MapInfo结合数据库与电子地图,适合PC 机运行,易于使用和二次开发,是一种桌面地图信息系统。MapInfo总部在美国,遍及58个国家,有6种语言的版本,应用于市政管理,市场策划与规划,土地与自然管理,交通运输,保险服务,通讯业务,治安,教育,经济,银行等。Microsoft 与MapInfo协议,Office组件及Excel中融入基本的桌面地理信息功能。95年北京成立MapInfo中国有限公司,在上海,广州,成都等地设立分公司。 3.1.2 MapInfo总体介绍 85%以上的数据具有地理信息,而表格式和文字式的数据表达形式不能把大量的信息清晰地表现在人们面前,如将各种数据放在地图上表示出来,辅以地理分析,可使它们之间的关系趋势一目了然。通过熟练运用MapInfo工具软件,我们可以实现:地图输入及编辑,数据组织,数据的表达方式,地图数据的分析、表达,空间查询,空间分析,数据输出,程序开发工具MapBasic等内容。 3.1.3 MapInfo Professional 7.0安装操作步骤

GIS实验报告-地信讲解

地理信息系统原理实验报告 班级: 学号: 姓名: 指导教师:

一、实验目的 1熟悉桌面GIS软件Super Map的界面环境 2初步掌握Super Map的主要工具及菜单命令的使用 3理解GIS软件应具有的基本功能 4结合对所选地图的矢量化的操作,具体掌握GIS软件的操作步骤 二、实验时间 1、第八周----第十六周进行实验绘图实体操作 2、第十七周----第十九周进行图片剪切,资料整理,总结报告 三、实验内容 ●Supermap Deskpro的认识 Supermap Deskpro是超图的专业桌面GIS软件之一。Super Map GIS桌面平台产品是基于Super Map GIS核心技术研制开发的一体化的GIS桌面软件,是Super Map GIS系列产品的重要组成部分,它界面友好、简单易用,不仅可以很轻松地完成对空间数据的浏览、编辑、查询、制图输出等操作,而且还能完成拓扑分析、三维建模、空间分析、网络分析等较高级的 GIS 功能。 SuperMap Deskpro 是一款专业桌面GIS软件,提供了地图编辑、属性数据管理、分析与辅助决策相关业务以及输出地图、打印报表、三维建模等方面的功能。SuperMap Deskpro 作为一个全面分析管理的工具,应用于土地管理、林业、电力、电信、交通、城市管网、资源管理、环境分析、旅游、水利、航空和军事等所有需要地图处理行业。 ●Supermap Deskpro的使用 通过该软件进行地图的矢量化,具体过程如下:

1、前期的准备 数据来源:纸质西安地图 地图的整体设计:遵循地图越详细越好的原则,我们对点、线、面数据集作了详细的规划,详情请看图层分层。考虑到以后做专题图,对数据集属性字段做了必要的添加,用以区分不同的地物。 本地图特色:采用Deskpro软件自带的矢量符号库符号分别作点、线、面专题图。 2、地图矢量 2.1纸质地图的扫描扫描之前对地图进行图面整理,扫描的分辨率设为 300-500dpi,扫描后得到*.jpg格式的原始栅格数据的地图 2.2创建相应的坐标系数据源启动Deskpro选择新建工作空间。 新建数据源

GIS应用实习报告

GIS应用实习报告 院、系、部 专业 姓名 学号 指导教师 2011年 07月03日

一、实习时间: 2011年上期17-18周,周一至周五。 二、实习地点: 三、实习目的: 目的:通过ArcGIS9.2的使用,让学生参与到地理数据采集、编辑、管理和分析整个流程的各个环节,对地理信息系统主要功能有个全面深刻的了解,并通过一些实际的数据和任务(如电子地图数据生产,选址分析、道路拓宽分析等常见的GIS实际应用问题)设定,培养学生根据实际问题,选取合适的空间分析手段和方法,制定详细的解决方案,解决实际的问题的能力,培养严肃认真、积极思考的优良作风;使学生尽早接触GIS的应用,真正理解GIS的意义所在,为后续的专业课程打下必要的良好的理论和技能基础。同时ArcGIS9.2是目前功能最全面最为强大的商用GIS专业软件,ArcGIS9.2的良好掌握,也为以后解决实际的问题提供了很好技能基础。 要求: 1、按实习任务制定合理可行的工作计划。 2、进行必要的资料收集、文献阅读等准备工作。 3、制定适当的技术方案。 4、独立完成课程设计各个阶段的任务。 5、对课程设计进行总结,撰写课程设计报告书。 四、实习具体内容 1.地图矢量化 (1)内容: 1)相关概念:地图矢量化的概念,地图矢量化是重要的地理数据获取方式之一。所谓地图矢量化,就是把栅格数据转换成矢量数据的处理过程。当纸质地图经过计算机图形、图像系统光—电转换量化为点阵数字图像,经图像处理和曲线矢量化,或者直接进行手扶跟踪数字化后,生成可以为地理信息系统显示、修改、标注、漫游、计算、管理和打印的矢量地图数据文件,这种与纸质地图相对应的计算机数据文件称为矢量化电子地图;2)实习目的:熟悉地图屏幕跟踪数字化流

GIS专业毕业实习报告

GIS专业毕业实习报告 一、实习目的及任务 (3) 1.1实习目的 (3) 1.2实习任务要求 (4) 二、实习单位及岗位简介 (4) 2.1实习单位简介 (4) 2.2实习岗位简介(概况) (5) 三、实习内容(过程) (5) 3.1举行计算科学与技术专业岗位上岗培训。 (5) 3.2适应地理信息系统专业岗位工作。 (5) 3.3学习岗位所需的知识。 (6) 四、实习心得体会 (6) 4.1人生角色的转变 (6) 4.2虚心请教,不断学习。 (7) 4.3摆着心态,快乐工作 (7) 五、实习总结 (8) 5.1打好基础是关键 (8) 5.2实习中积累经验 (8) 5.3专业知识掌握的不够全面。 (8) 5.4专业实践阅历远不够丰富。 (8) 本文共计5000字,是一篇各专业通用的毕业实习报告范文,属于作者原创,绝非简单复制粘贴。欢迎同学们下载,助你毕业一臂之力。

前言 随着社会的快速发展,用人单位对大学生的要求越来越高,对于即将毕业的地理信息系统专业在校生而言,为了能更好的适应严峻的就业形势,毕业后能够尽快的融入到社会,同时能够为自己步入社会打下坚实的基础,毕业实习是必不可少的阶段。毕业实习能够使我们在实践中了解社会,让我们学到了很多在地理信息系统专业课堂上根本就学不到的知识,受益匪浅,也打开了视野,增长了见识,使我认识到将所学的知识具体应用到工作中去,为以后进一步走向社会打下坚实的基础,只有在实习期间尽快调整好自己的学习方式,适应社会,才能被这个社会所接纳,进而生存发展。 刚进入实习单位的时候我有些担心,在大学学习地理信息系统专业知识与实习岗位所需的知识有些脱节,但在经历了几天的适应过程之后,我慢慢调整观念,正确认识了实习单位和个人的岗位以及发展方向。我相信只要我们立足于现实,改变和调整看问题的角度,锐意进取,在成才的道路上不断攀登,有朝一日,那些成才的机遇就会纷至沓来,促使我们成为地理信息系统专业公认的人才。我坚信“实践是检验真理的唯一标准”,只有把从书本上学到的地理信息系统专业理论知识应用于实践中,才能真正掌握这门知识。因此,我作为一名地理信息系统专业的学生,有幸参加了为期近三个月的毕业实习。 一、实习目的及任务 经过了大学四年地理信息系统专业的理论进修,使我们地理信息系统专业的基础知识有了根本掌握。我们即将离开大学校园,作为大学毕业生,

(最新版)GIS实验报告

地理信息系统 实验报告 姓名: 学号: 班级: 教师: 2011年5月 实验一:GIS平台初识 实验要求:SuperMap GIS软件的安装、卸载以及界面和主要功能熟悉实验时间:2011年5月5日实验地点:N

实验过程: 一、系统安装 1、基本步骤 1.1 将SuperMap GIS 5 产品安装光盘CD1 放入CD-ROM 驱动器,出现如图所示界面 1.2 选择“安装SuperMap GIS 5”,安装向导列出可供选择产品,如图所示 : 1.3. 选择SuperMap Deskpro 5.0,进入准备安装状态,如图所示;

1.4准备阶段结束后,弹出如图所示对话框,点击“下一步”按钮,继续安装; 1.5显示如图所示对话框,请认真阅读最终用户许可协议,选择“接受条款”或者“不接受条款”选项,然后点击“下一步”按钮; 1.6仔细阅读系统安装说明,如果系统配置符合要求,单击“下一步”按钮。如图所示;

1.7键入用户名和公司名称之后,单击“下一步”按钮。如图所示: 1.8在如下选择安装文件夹对话框中,如按照系统缺省进行安装,则直接点击“下一步”按钮;如需要改变安装文件夹,则点击“浏览”按钮,指定安装路径,然后点击“下一步”按钮。SuperMapDeskpro 5.0 产品提供四种安装类型:典型安装、压缩安装、定制安装。典型安装,将安装最常用的选项,这里推荐大多数用户选择此项。压缩安装,将安装所需的最少选项,当您的磁盘空间有限时可以选择此项。定制安装,可以自定义选择要安装的选项,推荐高级用户使用此项。选择安装类型后,点击“下一步”按钮,如图所示;

ARCGIS实习报告

《GIS技能训练教学实习》 实习报告 专业地理信息系统 班级 学号 姓名 2014 年5月

目录 一、实习目的及意义 (1) 二、实习组织方式 (1) 三、实习内容求及要求 (1) 四、实习步骤 (1) 五、注意事项 (41) 六、实习心得 (41) 七、参考文献 (41) 八、附录 (42) 8.1实验数据 (42) 8.2成果图 (43)

一、实习目的及意义 1、了解ArcGIS的基本组成模块ArcCatalog、Arcmap和ArcToolBox的应用基础及一些基本操作。 2、强化ArcGIS的各种功能意义,掌握ArcGIS软件的使用和应用 3、理解ArcGIS在GIS技术中的作用,进一步提高学生分析问题、解决问题的能力,增强实践技能,并培养学生勇于动手、勤于动手、热爱本专业的思想。 4、深刻地理解和巩固基本理论知识, 掌握基本技能和动手操作能力, 提高综合观察分析问题的能力, 二、实习组织方式 软件:ArcGIS Desktop10.2 时间:2014年4月28到5月4号 地点:核工楼410 三、实习内容及要求 1、实习内容 1.1、ArcGIS软件常用功能的操作练习 1.2、完成《实习二空间数据的采集与组织》的实习 1.3、完成《实习三空间数据的处理与变换》的实习 1.4、完成《实习五矢量数据的空间分析》的实习 1.5、完成《实习六栅格数据的空间分析》的实习 2、实习要求 要求学生在实习期间,做好实习日记、记录每次遇到的问题以及通过与老师同交流来解决问题。实习结束时,写出实习报告并有实习作品。实习报告内容详略得当,重点突出。实习结束后,需要提交实习的最终结果。 四、实习步骤 4.1 空间数据的采集与组织 4.1.1 某地区地块的拓扑关系建立 拓扑关系对于数据处理和空间分析具有重要意义,拓扑经常应用于地块查询、土地利用类型更新等。 在 Topology 数据集中导入上述两个 Shapefile,建立该要素数据集的拓扑关系,使拓扑生效后检测拓扑错误,修改拓扑错误,最后进行拓扑编辑。新建文件夹,将结果存入该文件夹中。 操作步骤: (1)创建地理数据库

二次开发实习报告

GIS二次开发上机实习报告 一、实习目的 1、掌握基于SuperMap软件的GIS二次开发程序编写的入门 2、熟练掌握SuperMap桌面软件对数据进行的一系列操作 3、在掌握软件操作的同时,进行开发的基础编程 4、先掌握开发程序的含义,并在此基础上自己做简单的开发 二、实习内容 通过基于SuperMap Objects组件开发的入门操作,掌握用简单C#的程序语言进行控件的关联与断开,加载数据集等,通过SuperMap 桌面软件对一些数据进行空间数据的查询(SQL查询、空间查询及距离查询等)、专题图的制作、拓扑检查与处理、缓冲区查询与分析、空间数据的管理、数据的格式转换(数据的导入与导出)及网络分析等一些操作,通过软件的操作一并进行基础程序的解译与编写。报告中主要阐述空间数据的查询、缓冲区分析及网络中的旅行商分析。三、实习步骤 安装VS、License Manager许可及SuperMap软件。 1、开发入门 打开VS软件,在form1窗体中加载SuperWorkspace Control、SuperMap Control控件,先参照SuperMap Objects入门教程的程序,加载地图,得结果如下:

所用到的基础程序有: 1、关联地图与数据控件 this.SuperMap1.connect(SuperWorkspace1.ctlHandle) 2、打开数据 this.SuperWorkspace1.OpenDataSource(地图位置) 3、加载数据集 SuperMapLayers.AddDataSets(objDataSource.Datasets[i], SuperMap1.Refresh() 2、SuperMap桌面软件的操作 (1)、空间数据的查询 数据查询操作是针对矢量数据集而言,在查询以前,首先要获得待查询对象所在的矢量数据集soDatasetVector,通过这个对象所提供的几个查询接口,填写相应的参数,就可以得到查询结果soRecordset,根据这个soRecordset,用户就可以对查询到的数据进行操作。以一幅“美国行政区划图”为演示数据。 1、首先通过SuperMap桌面软件查找图中Missouri河。

ArcGIS地理信息系统实验报告

实验报告 实验一数据更新变换 实验目的:通过练习,掌握数据提取、裁剪、拼接及投影变换的方法。 实验要求:白水县跨两个1:25万图幅,要求提取出白水县行政范围内的DEM数据,将数据转换成高斯克吕格投影系统。 实验步骤: 1 白水县行政范围的提取 1.1加载原始数据chp4/ex1/Vector.shp 1.2打开ArcTollbox里,分析工具/提取/筛选,打开对话框 输入要素选择Vector,表达要素点击,打开查询构建器,选择"NAME" = '白水县'

提取白水县行政范围结果Vector-Select5,如下图: 2 DEM数据拼接 2.1 加载dem1、dem2 2.2 打开ArcTollbox中,数据管理工具/栅格/栅格数据集/镶嵌至新栅格,打开对话框,输入栅格dem1、dem2,选择输出位置和数据集名称,波段数为1.

拼接结果dem如下图: 3 利用白水县范围对DEM裁切 3.1 ArcTollbox中,spatial analyst 工具/提取分析/按掩膜提取,打开对话框如左图,输入栅 格dem,要素掩膜数据为Vector-Select5,确定,裁切结果Extract_dem3如右图:

4 白水县DEM的投影变换 4.1 ArcTollbox中数据管理工具/投影和变换/栅格/投影栅格,打开对话框,输入栅格Extract_dem3,输出坐标系点击,打开空间参考属性对话框,定义坐标系,选择/Projected Coordinate Systems/Gauss Kruger/Xian 1980/Xian 1980 GK Zone 19.prj 投影变换结果Extract_dem3_ProjectRaster如下图:

GIS实习报告

《地理信息系统基础与应用》课程设计实习报告 院系: 班级: 姓名: 指导老师: 实习时间:

一、实习目的 1、《GIS 基础与应用》是一门实践性很强的学科。GIS 实习能够让我们更深入的了解地理信息系统的的概念和原理,能够更广泛的了解GIS 的应用领域,并且使我们更加牢固的掌握《GIS 基础与应用》的相关内容。因此《GIS 原理与应用》集中实习采用理论联系实际的方法,针对具体的项目进行设计,从而加深对《GIS 基础与应用》基本理论的理解,着重培养我们分析问题和解决问题的能力。集中实习是课程学习的一个实践环节,是对课程理论的综合和补充,对加深课程理论的理解和应用具有重要意义。 2、通过集中实习,培养学生运用本课程基本理论知识和技能,分析和解决本课程范围内的实际问题的能力,加深对课程理论的理解和应用; 3、在指导老师的指导下,培养每个学生独立完成集中实习的全部内容的学习能力。 4、根据所学GIS 原理及方法,利用以提供数据利用相关软件对数据进行矢量化,可视化操作等。5. 熟练运用MAPGIS 软件扫描矢量化地图,掌握扫描矢量化的基本原理、方法和步骤。6、熟练掌握MAPGIS 的空间数据输入与输出,及图形编辑等功能。 三、实习内容 实习内容:MAPGIS 的启动与初始设置:的启动与初始设置:(1)在桌面上双击标有“MAPGIS66 主菜单”的图标,或在“开始”菜,即可打开系统设置单中“所有程序——MAPGIS66——MAPGIS66 主菜单” 界面。(2)于设置界面的右下角点击“系统设置”,进入系统设置界面: 工作目录的设置路径为你所想要保存本工程的文件夹;矢量字库目录的路径为MAPGIS 文件下的CLIB 文件;系统库目录为MAPGIS 文件下的SLIB 文件;然后点确定”即可. (3)于图形处理目录下选择“输入编辑”后,一路“确定”即可进入如下图形编辑系统工作界面。2、图形编辑系统的具体操作: 四、实习步骤 GIS 概述与MAPGIS 地理信息系统的基本功能:地理信息系统的基本功能:(一) 地理信息系统的基本概念地理信息系统(Geographic Information System,简称GIS)是在计算机软、硬件支持下,采集、存储、管理、检索、分析和描述地理空间数据,适时提供各种空间的和动态的地理信息,用于管理和决策过程的计算机系统。它是集计算机科学、地理学、测绘遥感学、空间科学、环境科学、信息科学和管理科学等为一体的边缘学科,其核心是计

GIS实验报告

GIS实验报告 一、引言Introduction 1.1背景 金川县位于四川省西北部,阿坝州西南部,东南距省会成都424公里,离阿坝州州府马尔康91公里。金川县地处川西北生态经济区中心地带,阿坝州南部综合经济区重要板块,位于大渡河上游,大金川河旁,省道211经过县城。此次金川县城市总体规划重点是对金川县城的城市发展方向做出判断。 金川县城沿大金川河发展,周边山地丘陵地形复杂,城市位于槽谷地带。随着金川县社会经济的高速发展,现状用地已经不能满足其发展需求。在本次实验报告中,将运用GIS的科学分析方法,对像金川县城这样处于的复杂山地地形和河流谷地的城市建设用地发展方向做出较为理性的评价。 1.2实验假设 本次实验的目标是:整理分析各项对于建设用地选择有影响的评价因子,运用GIS的数据管理能力,综合评价城市建设用地的选择方向。改变以往规划环节中依靠感性的设计方法,为项目提供科学数据分析和可视化设计流程,并以此为依据,对建设用地进行反向论证,不断优化设计,提高规划的科学性。 1.3区域现状 本次实验的研究目的是进行建设用地选择,因此研究区域范围较小,主要包括:大金川河两侧用地面积较大且较为平缓的地带。(沿大金川河,金川老城区

南部,老城区北部、老城区东部) 二、方法Methods 2.1资料收集 根据实验目的提取实验所需要的各项要素,并将提取出来的要素整理为便于实验操作文件格式,祛除多余冗杂的信息,减少无效数据的干扰,提高实验效率。 本次实验报告的地形CAD较为复杂,老城区部分由 于城市建设情况,而缺乏高程赋值的等高线,故此次实验 以高程点为基础,选择所有的高程点;原位粘贴到“0金 川县高程点.dwg”文件;将研究区域内的河流及泥石流槽 描边并单独放入“0河流.dwg”文件;将老城区及周边建设 用地现状描绘整理到“0建设用地现状.dwg”文件;将提供 的地质灾害报告中的地灾评价整理到“0地灾评价.dwg”文件中;最后,将整个研究区域的边界线描出整理到“0地形边界线.dwg”文件中,方便出图。 2.2DEM数据整理 2.2.1加载整理的CAD要素 首选是添加数据。在添加数据的对话框中,选择链接到文件夹,在连接到文件夹中加载整理好的DWG格式的文件,包括高程点、河流、建设用地现状、地灾评价、地形边界线。在此过程中,由于各项要素均已在CAD里整理,因此没 有出现乱线等问题。 2.2.2捡校导入CAD的高程点数据 右键单击Arc map中

arcengine实习报告

arcengine,实习报告 篇一:GIS开发实习报告 学号 1221030205 实习报告 GIS程序设计实习 起止日期: XX 年 7 月13 日至 XX年 7 月 19 日 学 班 成生姓名级绩吴馁 12级地信2 班 指导教师(签字) 地质与测绘学院 XX年 7 月 20 日 GIS程序设计实习 一、实习目的 通过GIS程序设计实习,使学生了解需求分析、项目管

理方案设计、系统总体设计以及系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在C#和ArcEngine环境下构建应用型地理信息系统的方法。 二、实习内容 熟悉开发环境: Visual Studio XX; C#; Arc Engine 功能需求分析 基于组件技术开发应用型地理信息系统 组件式技术已成为当今软件技术的潮流之一。组件式GIS软件的基本思想是把GIS各大功能模块划分为几个控件。各个GIS控件之间,以及GIS控件与其他非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。 重点完成的工作包括:1)建立ArcGIS Engine 应用程序框架;2)实现对矢量数据(Shape File格式)的访问;3)实现采用简单、唯一值、分类等多种方式对面状矢量数据进行渲染(Render)。 三、实习步骤: 实习一:初识ArcGIS Engine 开发环境

1、新建一个Windows窗体应用程序 2、在新建窗体中添加控件 在工具箱中选择添加toolbarcontrol,TOCControl,MapControl控件 在解决方案资源管理器中双击在主函数中添加();使得文件可以加载到MapControl中。 右击toolbarcontrol选择属性,如图选择Items选项,添加如图控件 右击MapControl属性,在General的map document中添加要加载的地图文件 通过以上步骤添加的控件还只是单独存在,而我们的程序需要各控件间协同工作,因此要进行控件绑定。分别右击ToolbarControl、TOCControl控件,将Buddy设置为axMapControl1。 试运行一下如图 篇二:安徽理工大学,ArcEngine实习报告(才哥) 实验一、ArcEngine 控件及核心类库的认识及Mapcontrol 控件的使用和地图的显示与地图缩放以及

gis二次开发实习总结

gis二次开发实习总结 篇一:gis二次开发实习报告 重庆交通大学 测量与空间信息处理实验报告 实验课程:GIS二次开发程序设计 实验名称:设计程序完成图像基本操作 班级:测绘一班 学号: 09210111 姓名:程佳琦 实验日期:2012年 6 月 5 日 一、实验目的和要求 通过编写程序完成以不同的方式(包括菜单、对话框和命令按钮)加载图像,并完成对图像的基本操作,包括放大、缩小和平移。要求程序简洁界面整洁排列有序,能在正确设计程序的基础上达到对于图像加载及简单操作的程序的熟练程度,为二次开发的学习打下良好的基础。 二、实验内容 运用Visual Basic设计程序,分别完成以菜单、对话框和命令按钮为对象的像加载,在加载的基础上实现对图像的一些简单操作,设计程序完成对于图像的一些简单的操作,如放大、缩小和平移等。 三、实验步骤

1.设计程序完成菜单加载,并且完成相应放大、缩小和平移。 1)设计程序如下: 2)程序运行: 3)打开图像并放大: 4)图像缩小: 5)图像平移: 2.设计程序完成对话框图像加载,并完成相应的基本操作,包括图像的放大、缩小和平移。 1)设计程序: 2)程序运行: 篇二:GIS开发实习报告 学号 1221030205 实习报告 GIS程序设计实习 起止日期: 2015 年 7 月13 日至 2015年 7 月19 日 学 班 成生姓名级绩吴馁 12级地信2 班 指导教师(签字)

地质与测绘学院 2015年 7 月 20 日 GIS程序设计实习 一、实习目的 通过GIS程序设计实习,使学生了解需求分析、项目管理方案设计、系统总体设计以及系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在C#和ArcEngine环境下构建应用型地理信息系统的方法。 二、实习内容 熟悉开发环境: Visual Studio 2010; C#; Arc Engine 10.1 功能需求分析 基于组件技术开发应用型地理信息系统 组件式技术已成为当今软件技术的潮流之一。组件式GIS软件的基本思想是把GIS各大功能模块划分为几个控件。各个GIS控件之间,以及GIS控件与其他非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。 重点完成的工作包括:1)建立ArcGIS Engine 应用程序框架;2)实现对矢量数据(Shape File格式)的访问;3)实现采用简单、唯一值、分类等多种方式对面状矢量数据进行渲染(Render)。

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