版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GIS二次开发实验报告学 号:姓 名:班 级:专 业:指导老师:二零一五年11月15日目录1 实验一:软件安装与AOI书签开发21.1 实验目的21.2 实验内容21.3 实验结果22 实验二:地图数据组织与访问52.1 实验目的52.2 实验内容52.3 实验结果53 实验三:地图渲染与制图输出 93.1 实验目的93.2 实验内容93.3 实验结果94 实验四:空间数据处理1.44.1实验目的4.2 实验内容4.3 实验结果5 实验五:GIS分析205.1实验目的20.5.2 实验内容205.3 实验结果206实验六:栅格数据处理254.1实验目的254.2实验内容254
2、.3实验结果25.31实验总结1实验一:软件安装与AOI书签开发1.1实验目的掌握AOI书签程序开发1.2 实验内容实现AOI书签的创建实现AOI书签的调用1.3 实验步骤与结果安装程序后,新建地图显示项目。在程序的主窗体上端添加添加菜单项,文本属性为创建书签,控件名为 miCreateBookmark ,在旁边添加组合框,控件名为 cbBookmarkList 。1. 右击引用选择 AddArcGIS Referenee在弹出的对话框中添加引用在主窗体(即Mai nF orm.cs )中添加代码;(1) 首先添加引用代码:using ESRI.ArcGIS.Display;usi ng ES
3、RI.ArcGIS.esriSystem;usi ng ESRI.ArcGIS.Carto;usi ng ESRI.ArcGIS.C on trols;usi ng ESRI.ArcGIS.ADF;using ESRI.ArcGIS.SystemUI;usi ng ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;usi ng ESRI.ArcGIS.DataSourcesFile;usi ng ESRI.ArcGIS.DataSourcesRaster;,在之后的编,用于保存当前(此引用代码都需添加引用后才可以使用,上述引用代码为本类中所需
4、要的所有引用程中,可以不用重复引用)(2) 添加 创建书签”函数在MainForm 类中添加成员函数 CreateBookMark ,代码如下:public void CreateBookmark(stri ng sBookmarkName)/参数为书签名/通过IAOIBookmark 接口创建一个变量,其类型为 AOIBookmark地图的范围IAOIBookmark aoiBookmark = new AOIBookmarkClass();if (aoiBookmark != nu II) aoiBookmark.Locati on = axMapC on trol1.ActiveView
5、.Exte nt; aoiBookmark.Name = sBookmarkName;/通过IMaoBookmarks 接口访问当前地图,并向地图中加入新建书签IMapBookmarks bookmarks =axMapC on trol1.MapasIMapBookmarks;if (bookmarks != n ull)bookmarks.AddBookmark(aoiBookmark);/将新建书签名加入组合框中,用于之后调用对应书签cbBookmarkList .I tems.Add(aoiBookmark.Name);2. 添加书签名成设置”窗体(1)点击项目添加 Windows 窗
6、体,该窗体命名为 AdmitBookmarkName.cs ",点 击添加后,转入设计窗口。(2)设置窗体的文本属性为 书签名称设置”,尺寸设置为200,100 ”,初始位置设置为 CenterScreen ”(3) 添加控件,添加一个文本框,控件名为tbBookmarkName "。一个按钮,文本属性为确认”,控件名为btnAdmit ”(4) 双击确认"按钮,自动生成点击事件响应函数,并转至窗体代码页。3. 添加成员变量 m_frmMain ,并为确认按钮输入代码,代码如下:/用于保存主窗体对象public Mai nF orm m_frmMa in;/用于传
7、入主窗体对象public AdmitBookmarkName(Ma inForm frm)In itializeComp onen t();if (frm != n ull)m_frmMai n = frm;/"确认"按钮的 点击”事件响应函数,用于创建书签private void btn Admit_Click(object sen der, Eve ntArgs e)if (m_frmMain != null | tbBookmarkName.Text ="")m_frmMai n. CreateBookmark(tbBookmarkName.Tex
8、t);this.Close();4. 为主窗体的创建书签”菜单生成点击”事件响应函数,代码如下:AdmitBookmarkName frmABN = new AdmitBookmarkName(this);frmABN.Show();5. 为组合框cb_BookmarkList生成选择索引更改"事件响应函数,代码如下/组合框的选择索引更改”事件响应函数,用于在改变组合框所选项时地图范围变为其对应 书签所保存的范围private void cbBookmarkList_Selectedl nexCha nged(object sen der. Even tArgs e)/访问地图所包含
9、的书签,并获取书签序列IMapBookmarks bookmarks = axMapC on trol1.Map as IMapBookmarks;lEnu mSpatialBookmark enu mSpatialBookmark = bookmarks.Bookmarks;/对地图所包含的书签进行遍历,获取与组合框所选项名称相符的书签enu mSpatialBookmark.Reset();ISpatialBookmark spatialBookmark = enu mSpatialBookmark.Next();while (spatialBookmark != n ull)if (cb
10、BookmarkList.Selectedltem.ToStri ng() = spatialBookmark.Name)spatialBookmark.ZoomTo(IMap)axM apCon trol1.ActiveView); axMapC on trol1.ActiveView.Refresh();break;spatialBookmark = enu mSpatialBookmark.Next();6实验结果如下ki + 0 F 霁:B 吕 ljy<H 叵f Vfcrld 匚rti»i Pepijiatiofi CLess.5,000,000 占詔 gre-= I
11、_© L.DOO.uJO to >000, *O 沁OM F lbOOOaO(* 叽 go to 畑®c HX>r0W ro 2M.OOC .50.000 mw H iImfi S0r000Li) H C&rtiwfflEJ E World117fi>甌 55.37 DecinMlDeirefi |l'bJ.3O9LYrr 二需 oJCQBombay z BangkokTokyo2实验二:地图数据组织与访问2.1实验目的了解ArcGIS Engine中地图数据的组织结构掌握ArcGIS Engine地图数据访问方法2.2实验内容编写数据操作
12、”类利用DataGridView控件展示Continents图层的序号和名称字段2.3实验步骤与结果1添加 空间数据”菜单项,在下拉菜单中添加一个菜单项文本为访问图层数据”名称为miAccessData ”用于稍后调用 数据展示台”窗体。2新建窗体类,窗体文件命名为 DataBoard.cs ”文本属性为数据展示台"。添加一个文本框控件名为tbDataName ”,一个数据网格视图,控件名为dataGridViewl ”,Read Only=true 。如图所示3.在当前窗体代码中加入以下代码public DataBoard(String sDataName, DataT able
13、dataT able)/初始化窗体及控件In itializeComp onen t();/设置文本框中的文本和数据网格视图的数据源 tbDataName.Text = sDataName;dataGridViewl.DataSource = dataT able;4. 添加类,命名为DataOPerator.cs ”并导入类库引用using System.Data;usi ng ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.DataSourcesFile
14、;5. 添加以下代码/保存当前地图对象public IMap m_map;/用于传入当前地图对象public DataOperator(IMap map)m_map = map;6. 添加 获取地图图层”功能函数。代码如下public ILayer GetLayerByName(Stri ng sLayerName)函数返回空/判断图层名或地图对象是否为空。若为空,if (sLayerName = "" | m_map = n ull)return n ull;/对地图对象中的所有图层进行遍历。若某一图层的名称与指定图层名相同,则返回该图层、for (int i = 0;
15、i < m_map.LayerC ount; i+)if (m_map.get_Layer(i).Name = sLayerName)return m_map.get_Layer(i);return nu II;7.添加成员函数GetContinentsNames 代码如下public DataTable GetCo ntinen tsName()/获取Continents ”图层,利用IFeatureLayer接口访问,并判断是否成功。若失败,函数返回空ILayer layer = GetLayerByName("C on ti nen ts");IFeatureL
16、ayer featureLayer = layer as IFeatureLayer;if (featureLayer = nu II)return n ull;/调用IFeatureLayer接口的Seach方法,获取要素指针(IFeatureCursor)接口对象,用于在之后遍历图层中的全部要素,并判断是否成功获取第一个要素,若失败,函数返回空IFeature feature;IFeatureCursor featureCursor = featureLayer.Search( null, false); feature=featureCursor.NextFeature();if (fe
17、ature=n ull )retur n n ull ;/新建DataTable类型对象用于函数返回DataTable dataTable = new DataTable();/新建DataColumn类型对象,分别保存各个州的序号和名称设置完毕后,加入DataTable的列集合(Columns)中。DataColu mn dataColu mn = new DataColu mn();dataColu mn .Colum nN ame ="序号"dataColu mn .DataType = System.Type.GetType("System.l nt32&
18、quot;); dataTable.Colu mn s.Add (dataColu mn );dataColu mn =new DataColu mn ();dataColu mn .Colum nN ame ="名称"dataColu mn .DataType = System.Type.GetType("System.Stri ng");dataTable.Colu mn s.Add(dataColu mn );/对图层中的要素进行遍历。每获取一个要素,就关联DataTable 的下一个DataRow,将要素在序号和名称字段上的值赋给 DataRow
19、的对应列中 在"Contlnents"图层属性表中,序号信息在第0个字段中,名称信息在第2个字 段中。相关内容可以通过ArcMap对地图文档进行查看。DataRow dataRow;while (feature != n ull)dataRow = dataTable.NewRow();dataRow0 = feature.get_Value(0);dataRow1 = feature.get_Value(2);dataTable.Rows.Add(dataRow);feature = featureCursor.NextFeature();/返回设置好的数据表。retur
20、 n dataTable;8.添加访问图层数据”菜单点击”事件响应函数,代码如下private void miAccessData_Click(object sen der, Even tArgs e)/获取保存各个州名称的DataTable,将其作为构造函数的参数,新建数据展示台”窗体对象DataOperator dataOperator = newDataOperator(axM apCo ntroll.M ap);DataBoard dataBoard = new DataBoard("各大洲洲名IIdataOperator.GetCo ntinen tsName();/运行载
21、有数据的 数据展示台”窗体对象 dataBoard.Show();9实验结果如下町辟需亍借|口1 X名称0Africa.1Aiitarctica2Asi爼$Australia4Euxopt5Horath Anigrica£O c eriLi aSouth.屆&ri芒注3 实验三:地图渲染与制图输出3.1 实验目的了解地图符号的分类与可视化过程掌握地图符号的渲染方法3.2 实验内容编写地图编制”类,添加成员函数实现获取地图渲染器信息功能实现地图的简单符号渲染3.3 实验步骤结果1添加一个主窗体菜单控件 ,控件名为miCarto ”,文本属性为 地图表现”,添加两个下拉菜 单项文
22、本属性分别为简单渲染图层”和获取渲染器信息”,控件名分别为 miRenderSimple 和 miGetRe nderl nfo ”2添加类库引用3添加地图编制”类命名为 MapComposer.cs ”,添加类库引用。添加成员函数,代码如 下;public static String GetRe ndererTypeByLayer(ILayer layer)/判断图层是否获取成功。若失败,函数返回图层失败”if (layer = n ull)return "图层获取失败”/使用IGeoFeatureLayer接口访问指定图层,并获取其渲染器IFeatureLayer feature
23、Layer = layer as IFeatureLayer;IGeoFeatureLayer geoFeatureLayer = layer as IGeoFeatureLayer;IFeatureRe nderer featureRe nderer = geoFeatureLayer.Re nderer;/判断该图层渲染器是否为备选渲染器类型之一,如匹配成功返回其类型信if (featureRe nderer is ISimpleRe nderer)return "SimpleRe nderer"else if (featureRe nderer is IUn ique
24、ValueRe nderer)return "Un iqueValueRe nderer"else if (featureRe nderer is IDotDe nsityRe nderer)return "DotDe nsityRe nderer"else if (featureRe nderer is IChartRe nderer)return"ChartRe nderer"else if (featureRe nderer is IProporti on alSymboIRe nderer)return "Propo
25、rti on alSymbolRe nderer"else if (featureRe nderer is IReprese ntatio nRen derer)return "Represe ntatio nRen derer"else if (featureRe nderer is IClassBreaksRe nderer)return "ClassBreaksRe nderer"else if (featureRe nderer is IBivariateRe nderer)return "BivariateRe nderer
26、"/若渲染器类型匹配失败,则返回未知或渲染器获取失败”。return "未知或渲染器获取失败”;/添加静态成员函数 GetRendererType ,用于获取指定图层的符号信息。public static ISymbol GetSymbolFromLayer(ILayer layer)/判断图层是否获取成功。若失败,函数返回空。if (layer = n ull)return n ull;/利用IFeatureLayer接口访问指定图层,获取到图层中的第一个要素,判断是否成功。富哦失败,函数返回空。IFeatureLayer featureLayer = layer as
27、IFeatureLayer;IFeatureCursor featureCursor = featureLayer.Search( nu II, false);IFeature feature = featureCursor.NextFeature();if (feature = n ull)return n ull;/利用IGeoFeatureLayer访问指定图层,获取其渲染器,并判断是否成功。 否则失败,函数返回空。IGeoFeatureLayer geoFeatureLayer = featureLayer as IGeoFeatureLayer;IFeatureRe nderer f
28、eatureRe nderer = geoFeatureLayer.Re nderer;if (featureRe nderer = n ull)return n ull;/通过IFeatureRenderer接口的方法获取图层要素对应的符号信息,并作为函数结果返回。ISymbol symbol = featureRe nderer.get_SymbolByFeature(feature);return symbol;/添加静态成员函数 RenderSimply,用于统一设置指定图层的颜色,并进行简单渲染。public static bool Ren derSimply(ILayer laye
29、r, IColor color)/判断图层和颜色是否获取成功。若失败,函数返回false.if (layer = n ull | color = n ull)return false;/调用GetSymbolFromLayer 成员函数,获取指定图层的符号,并判断是否 成功。若失败,函数返回false。ISymbol symbol = GetSymbolFromLayer(layer);if (symbol = nu II)return false;/获取指定图层的要素类,并判断是否成功。若失败,函数返回false。IFeatureLayer featureLayer = layer as I
30、FeatureLayer;IFeatureClass featureClass = featureLayer.FeatureClass;if (featureClass = nu II)return false;/获取指定图层要素类的几何形状信息,并进行匹配。根据不同相撞,设置不同类型符号的颜色。若几何形状不属于/Point、MultiPoint、PolyLine 和 Polygon ,则函数返回 false。esriGeometryType geoType = featureClass.ShapeType;switch (geoType)case esriGeometryType .esri
31、GeometryPo int:IMarkerSymbol markerSymbol=symbol as IMarkerSymbol;markerSymbol.Color=color;break;case esriGeometryType.esriGeometryMultipo int:IMarkerSymbol markerSymbol=symbol as IMarkerSymbol;markerSymbol.Color =color;break;case esriGeometryType.esriGeometryPolyli ne:asISimpleLi neSymbolsimpleL in
32、 eSymbol=symbolISimpleLi neSymbol;simpleL in eSymbol.Color =color;break;case esriGeometryType.esriGeometryPolygo n:IFillSymbol fillSymbol = symbol as IFillSymbol;fillSymbol.Color = color;break;default :return false;/新建简单渲染器对象,设置其符号。通过IFeatureRenderer接口访问它,并判断是否成功。若失败,函数返回false。ISimpleRe nderer simpl
33、eRe nderer = new SimpleRe ndererClass();simpleRe nderer.Symbol = symbol;IFeatureRe nderer featureRe nderer = simpleRe nderer as IFeatureRe nderer;if (featureRe nderer = n ull)return false;/通过IGeoFeatureLayer 接口访问指定图层,并设置其渲染器。函数返回ture 。IGeoFeatureLayer geoFeatureLayer = featureLayer as IGeoFeatureLay
34、er;geoFeatureLayer.Re nderer = featureRe nderer;return true;4.添加 简单渲染器图层”点击事件响应函数private void miRe nderSimply_Click(object sen der, Even tArgs e)/ 获取 World Cities ” 图层。DataOperator dataoperator = new DataOperator(axMapC on troll.Map);ILayer layer = dataoperator.GetLayerByName("World Cities"
35、;);IRgbColor rgbColor = new RgbColorClass();rgbColor.Red = 255;rgbColor.Gree n =0;rgbColor.Blue = 0;ISymbol symbol = MapComposer.GetSymbolFromLayer(layer);IColor color = rgbColor as IColor;bool bRes = MapComposer.Re nderSimply(layer, color);if (bRes)axTOCCo ntrol1.ActiveView.Co nten tsCha nged();axM
36、 apCon trol1.ActiveView.Refresh();miRe nderSimply.E nabled = false;elseMessageBox.Show(”简单渲染图层失败!");5.添加 获取渲染器信息”点击事件响应函数代private void miGetRe ndererl nfo_Click(object sen der. Eve ntArgs e)DataOperator dataOperator = new DataOperator(axMapC on trol1.Map);ILayer layer = dataOperator.GetLayerByN
37、ame("World Cities");MessageBox.Show(MapComposer.GetRe ndererTypeByLayer(layer);6.实验运行结果如下4 实验四:空间数据处理4.1实验目的了解创建空间数据的过程掌握创建空间数据的方法4.2实验内容实现创建Shapefile文件的程序实现新增点要素程序4.3实验步骤与结果1添加主窗体控件:文本=数据操作Shapefile ",控件名为 miCreateShapefile ”2添加类库的引用3添加创建Shape文件”功能函数代码如下/创建Shape文件public IFeatureClass
38、 CreateShapefile(Stri ng sPeare ntDiewctory,String sWorkspaceName,Stri ng sFileName),控件名为miData "添加下拉控件:文本为/上级路径/包含shape文件的文件夹名/shape文件名创建/如果指定的路径和文件夹已经存在,则删除此文件夹。eif (Syste m0 .Directory.Exists(sPeare ntDiewctory + sWorkspaceName)Syste m.IO .Directory.Delete(sPeare ntDiewctory+ sWorkspaceName,
39、true);/通过IWorkspaceFactory 接口创建针对shape文件的工作空间对象,并通过参数创建相关工作(文件夹),用于包含shape文件。IWorkspaceFactoryworkspaceFactorynewShapefileWorkspaceFactoryClass();workspaceNameIWorkspaceNameworkspaceFactory.Create(sPeare ntDiewctory, sWorkspaceName, n ull, 0);n ameworkspaceNameasESRI.ArcGIS.esriSystem.IName;/打开新建的工作
40、空间,并通过IFeatureWorkspace 接口访问它IWorkspace workspace = (IWorkspace )n ame.Ope n();IFeatureWorkspace featureWorkspace = workspace as IFeatureWorkspace;/shape文件在概念层次上是一个要素类。创建并编辑该要素类所需要的字IFields fields=new FieldsClass();IFieldsEdit fieldsEdit = fields as IFieldsEdit;/创建并编辑 序号”字段。此字段为要素类必需字段IFieldEdit fie
41、ldEdit = new FieldClass();fieldEdit.Name_2 = "OID"fieldEdit.AliasName_2 =" 序号"fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID;fieldsEdit.AddField(IField)fieldEdit);/创建并编辑 名称”字段fieldEdit = new FieldClass();fieldEdit.Name_2 = "Name"fieldEdit.AliasName_2 =" 名称"
42、fieldEdit.Type_2 = esriFieldType.esriFieldTypeStri ng;fieldsEdit.AddField(IField)fieldEdit);/创建地里定义,设置其空间参考和几何类型,为创建形状”字段做准备。IGeometryDefEdit geoDefEdit= new GeometryDefClass();ISpatialRefere nee spatialRefere nee = m_map.SpatialRefere nee;geoDefEdit.SpatialRefere nce_2 =spatialRefere nee;geoDefEdit
43、.GeometryType_2 = esriGeometryType.esriGeometryPoi nt;/创建并编辑 形状”字段。此字段为要素类必须字段。fieldEdit = new FieldClass();Stri ng sShapeFieldName = "Shape"fieldEdit.Name_2 = sShapeFieldName;fieldEdit.AliasName_2 =" 形状"fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;fieldEdit.GeometryDef
44、_2 = geoDefEdit; fieldsEdit.AddField(IField)fieldEdit);/ 调用 IFeatureworkspace 接口的 CreateFeatureClass 方法,创建要素类 判断是否创建成功。null,IFeatureClassfeatureClassfeatureWorkspace.CreateFeatureClass(sFileName,fields,n ull,esriFeatureType.esriFTSimple, "Shape", "");if (featureClass = nu II)retu
45、rn n ull;/将创建好的要素类作为结果返回。return featureClass;/public bool AddfeatureClassT oMap(IFeatureClass featureClass, / 将要被添加的要素类String sLayerName)/ 图层名称/判断要素类、图层名和地图对象是否为空。如为空,则函数返回falseif (featureClass = null | sLayerName = "" | m_map = nuII)return false;/通过IFeatureLayer接口创建要素图层对象 ,将要素类以层的形式进行操作。I
46、FeatureLayer featureLayer = new FeatureLayerClass(); featureLayer.FeatureClass = featureClass;featureLayer.Name = sLayerName;/将要素图层转换为一般图层,并判断是否成功。若失败,函数返回false。ILayer layer = featureLayer as ILayer;if (layer = n ull)return false;/将创建好的图层添加至地图对象。将地图对象转化为活动视图,并判断是否成功。若失败,函数返回false。m_map.AddLayer(laye
47、r);IActiveView activeView = m_map as IActiveView;if (activeView = n ull)return false;/活动视图进行刷新,新添加的图层将被展示在控件中 。函数返回true。activeView.Refresh();return true;4. 添加创建Shape文件"点击事件响应函数,代码如下private void miCreateShapefile_Click(object sen der, Even tArgs e)/创建Shape文件,将其以要素类形式获取,并判断是否成功。若失败,消 息框提示,函数返回空。D
48、ataOperator dataOperator = new DataOperator(axMapC on trol1.Map);IFeatureClassfeatureClass=dataOperator.CreateSh apefile("E:","Sh apefileWorkspace","Sh apefileSample");if (featureClass = nu II)MessageBox.Show ("创建 Shape 文件失败!");return;/bool bRes=dataOperator.A
49、ddfeatureClassToMap(featureClass,"Observati onStatio ns");if (bRes )miCreateShapefile.E nabled =false;miAddFeature.E nabled = true;return;elseMessageBox.Show (”将新建Shape文件加入地图失败 ! ”); return;5. 实验运行结果如下日 O Layers日 0 Observation StationsI I I. J1 A t A r 厂 He 产6. 添加数据操作"下拉控件,文本为 添加要素”控件
50、名为miAddFeature7. 添加 添加要素”函数,代码如下/添加要素public bool AddFeatureToLayer(String sLayerName,/指定图层的名称String sFeatureName,/将被添加的要素名称函数返回IPoint point)/将被添加的要素的坐标信息/判断图层名、要素名、要素坐标和地图对象是否为空。若为空,false。if (sLayerName = "" | point = n ull | m_map = nu II)return false;/对地图对象中的图层进行遍历。当某图层的名称与指定名称相同时,则跳出循环。
51、ILayer layer = n ull;for (int i = 0; i < m_map.LayerC ount; i+)layer = m_map.get_Layer(i);if (layer.Name = sLayerName)break;layer = n ull;/判断图层是否获取成功。若失败,函数返回false。if (layer = n ull)return false;/通过IFeatureLayer接口访问获取到的图层,并进一步获取其要素类。IFeatureLayer featureLayer = layer as IFeatureLayer;IFeatureClas
52、s featureClass = featureLayer.FeatureClass;/通过IFeature接口访问要素新创建的要素,并判断是否成功。若失败,函数返回false。IFeature feature = featureClass.CreateFeature();if (feature = n ull)return false;/对新创建的要素进行编辑,将其坐标、属性值进行设置。最后保存该要素并判断是否成功。若失败,函数返回false。feature.Shape = point;in t in dex = feature.Fields.Fi ndField("Name&qu
53、ot;);feature.set_Value(i ndex, sFeatureName);feature.Store();if (feature = n ull)return false;/将地图对象转化为活动视图,并判断是否成功。若失败,函数返回false。lActiveView activeView = m_map as lActiveView;if (activeView = n ull)return false;/活动视图进行刷新,新添加的要素将被展示在控件中。函数返回true。activeView.Refresh();return true;8. 添加 添加要素”点击事件响应函数,代
54、码如private void miAddFeature_Click(object sen der, Even tArgs e)if (miAddFeature.Checked = false)miAddFeature.Checked = true;elsemiAddFeature.Checked = false;9为地图控件对象添加鼠标按下事件响应函数,代码如下privatevoidaxMapC on trol1_ OnM ouseDow n(objectIMapCo ntrolEve nts2_ OnM ouseDow nEve nt e)/在添加要素”菜单项中被勾选时,进行以下操作。if (miAddFeature.Checked = true)II新建Point类对象,保存鼠标按下的位置信息。IPo int point = new Poi ntClass();poin t.PutCoords(e.mapX, e.mapY);II在新建图层中添加要素,要素的名称通体设置为”观测站DataOperatordataOperator=DataOperator(axMapCo ntroll.Map);dataOperator.AddFeatureT oLayer("Observati onStatio ns",p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1231-2025乘用车电磁阀式连续阻尼控制减振器总成
- 阳泉职业技术学院《心理统计与spss》2025-2026学年期末试卷
- 福建林业职业技术学院《现代汉语语法研究》2025-2026学年期末试卷
- 福州理工学院《学前儿童保育学》2025-2026学年期末试卷
- 福建艺术职业学院《新闻学概论》2025-2026学年期末试卷
- 蚌埠城市轨道交通职业学院《互联网与社会》2025-2026学年期末试卷
- 集美大学诚毅学院《运动营养学》2025-2026学年期末试卷
- 中国医科大学《大学生职业与发展》2025-2026学年期末试卷
- 民办合肥财经职业学院《当代英国概况》2025-2026学年期末试卷
- 宣城职业技术学院《绩效管理》2025-2026学年期末试卷
- 营养学电子课件
- 《市域(郊)铁路设计规范》条文说明
- 中国空军发展史
- 医疗机构抗菌药物使用培训计划
- 涂料生产与涂装作业指导书
- 代耕代种合同范本
- 内分泌与代谢系统疾病常见症状或体征的护理内科护理学第七章讲解
- 《智能网联汽车云控系统 第1部分 系统组成及基础平台架构》
- 旅行社企业章程范本
- 2025年湖南出版集团招聘笔试参考题库含答案解析
- 氧化铝制取全套教学教程整套课件全书电子教案
评论
0/150
提交评论