欢迎来到天天文库
浏览记录
ID:16307517
大小:119.50 KB
页数:9页
时间:2018-08-09
《gis设计与实现实验报告二》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、GIS设计与实现西北师范大学学生实验报告学院地环学院专业地理信息系统年级、班2008级学号苏有才姓名200875000131同组者课程名称GIS设计与实现实验题目生成矢量数据成绩一、实验目的:熟练掌握Shapefile格式数据的创建。二、实验准备:了解Shapefile文件类型及属性表格式;熟悉VBA编程环境;掌握创建Shapefile文件所用到的类:WorkSpaceFactory、WorkSpace、Fields、Field、GeometryDef。三、实验内容:(1)利用ArcMap提供的Customize功能创建三个按钮,名称分别
2、为CreatePoint、CreateLine和CreatePolygon;(2)在VBA环境下编写宏,实现创建点图层、线图层和多边形图层,要求①每个图层属性表均包含FID、Shape、Name(String,10)和Code(String,10)四个字段;②图层名和路径均由用户输入;③单击按钮后,自动将创建好的图层添加到ArcMap当前窗口;(3)在高级编程语言环境下(如.net,VB6.0),实现上述功能,并编译成DLL文件发布。四、实验过程及步骤:(1)利用ArcMap提供的Customize功能创建三个按钮,名称分别为Create
3、Point、CreateLine和CreatePolygon程序代码如下:SubCreate_ShapeFile()DimwsfAsIWorkspaceFactorySetwsf=NewShapefileWorkspaceFactoryDimwsnAsIWorkspaceNameSetwsn=wsf.Create("f:","GIS二次开发",Nothing,0)DimpNAsINameSetpN=wsnDimwsAsIFeatureWorkspaceSetws=pN.Open9GIS设计与实现DimfsAsIFieldsSetfs=Ne
4、wFieldsDimfseAsIFieldsEditSetfse=fsDimf1AsIFieldSetf1=NewFieldDimfe1AsIFieldEditSetfe1=f1Withfe1.Name="FID".Type=esriFieldTypeOID.Length=4EndWithfse.AddFieldf1Dimf2AsIFieldSetf2=NewFieldDimfe2AsIFieldEditSetfe2=f2Withfe2.Name="shape".Type=esriFieldTypeGeometryEndWithDimge
5、odAsIGeometryDefSetgeod=NewGeometryDefDimgeodeAsIGeometryDefEditSetgeode=geodgeode.GeometryType=esriGeometryPointSetgeode.SpatialReference=NewUnknownCoordinateSystemSetfe2.GeometryDef=geod9GIS设计与实现fse.AddFieldf2Dimf3AsIFieldSetf3=NewFieldDimfe3AsIFieldEditSetfe3=f3Withfe3
6、.Name="Type".Type=esriFieldTypeString.Length=4EndWithfse.AddFieldf3Dimf4AsIFieldSetf4=NewFieldDimfe4AsIFieldEditSetfe4=f4Withfe4.Name="Name".Type=esriFieldTypeString.Length=10EndWithfse.AddFieldf4Dimf5AsIFieldSetf5=NewFieldDimfe5AsIFieldEditSetfe5=f5Withfe5.Name="code".Ty
7、pe=esriFieldTypeString.Length=109GIS设计与实现EndWithfse.AddFieldf5DimtAsITableSett=ws.CreateTable("T1",fs,Nothing,Nothing,"")EndSub用同样的方法将加粗体分别改为:geode.GeometryType=esriGeometryLine(创建线数据)geode.GeometryType=esriGeometryPolygon(创建面数据)程序运行结果:(2)在VBA环境下编写宏,实现创建点图层、线图层和多边形图层:程序代码
8、如下:Subdraw_Geometry()Dimp1AsIPoint'定义一个点Setp1=NewPointp1.X=100p1.Y=200Dimp2AsIPoint'定义一个点Setp2=N
此文档下载收益归作者所有