版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GIS设计与开发实验2一、程序运行时截图: 界面设计: 二、设计思路 三、具体步骤1.首先建立SuperMap控件之间的连接:private void ConnectSuperMap(object objWshandle_ear=this.axSuperWorkspace1.CtlHandle;this.axSuperMap1.Connect(objWshandle_ear;this.axSuperWkspManager1.Connect(objWshandle_ear;2.打开一个数据集/定义它的位置string path="C:UsersDanielDocumentsVisual
2、 Studio2010ProjectsGISSuperMap开发Gis开发空间数据管理(3DataWorld.sdb"/定义他的别名/这里使用了subString(和IndexOf(方法来获取文件的全名/然后调用System.IO.Path中的GetFileNameWithoutExtension(方法去掉后缀。String strDsName=path;String strAlias=Path.GetFileNameWithoutExtension(path.Substring(path.LastIndexOf("" +1;3.获取数据集集合soDatasets
3、 datasets=objDs.Datasets;/可以通过访问datasetsi.Name来得到每个数据集的名字。同时,我们还可以调用操作符重载datasets"Capital"来访问数据集集合中的某数据集。通过访问ds.Type等等属性,即可获得该数据集的类型,或其它属性。4.建立自己的数据集soDataset Myds=objDs.CreateDataset("Myds",seDatasetType.scdRasterCollection, seDatasetOption.scoDefault;其中objDS是DataSource(数据源对象。这里
4、实现了直接从数据源到数据集的转换。4.数据集之间的继承关系 soDatasetRaster datasetR=(soDatasetRasterMyds;/soDatasetRaster datasetR2=(soDatasetRasterds;int width=datasetR.PixelWidth;这里的Myds本来是dataset对象,但是soDatasetRaster继承于DataSet是他的子类,我们采用了向下转型,使得datasetR对象具有了栅格数据特有的PixelWidth属性。5.新建数据源string path="C:UsersDanielDocumentsVis
5、ual Studio2010ProjectsGISSuperMap 开发Gis开发空间数据管理(3DataXXX.sdb"soDataSource objDs=this.axSuperWorkspace1.CreateDataSource(path,"XXX", seEngineType.sceSDBPlus,false,false,false,""在这里我们建立了一个名字为XXX的SDBPlus数据源。 6.新建一个字段/首先获得数据集soDataset ds=datasets"World_Attri"/向下转型为soDa
6、tasetVector类型soDatasetVector vector=(soDatasetVectords;/新建一个字段soFieldInfo finfo=new soFieldInfoClass(;/然后设置字段的一些属性finfo.Name="TTT"finfo.Type=seFieldType.scfInteger;/在创建之前必须先清空记录集。vector.ClearRecordsets(;/最后插入并且判断插入是否成功。bool OK=vector.CreateField(finfo;if(OKMessageBox.Show("OK"在此处
7、特别注意一点,com对象是在打包时自动进行封装的,创建一个字段的时候我们可以先创建一 个soFieldInfoClass(的实例,然后将其转换为soFieldInfo接口类型的变量。 7. 找出所有字段名,找出字段中的每一行具体的值 soDatasetVector vector = (soDatasetVectords; for (int i = 1; i <= vector.FieldCount; i+ textBox3.Text += vector.GetFieldInfo(i.Name.ToString( ; /textBox4.Text += vector.GetFieldInf
8、os(; textBox3.Text += "rn" vector.Open(; soStrings objOutputFields = new soStringsClass(; objOutputFields.Add("Continent" soRecordset rs = vector.Query("", false,objOutputFields; axSuperGridView1.Connect(rs; axSuperGridView1.Update(; 我们有两种方法去找到字段 方法一: 可以通过上面代码中的 vector.
9、GetFieldInfo(方法传入不同的索引值获取字段名。 方法二: int aa = rs.FieldCount; soFieldInfos finfo = vector.GetFieldInfos(; 在这里,finfo 包含了所有的 finfo.Size= 30 个字段。可以通过 访问各个字段 的名字。 接着就要访问某个字段下面的具体的值: 这里我参考了 SupMap 在线文档的索引, soDatasetVector 类中有一个 Query 方法。 soRecordset soDatasetVector.Query(strSQLFilter As String,b
10、HasGeometry As Boolean,objFields As soStrings,strOptions As String 参数 strSQLFilter bHasGeometry 可选 必选 必选 类型 String Boolean 描述 查询条件, 相当于 SQL 语句中的 Where 子句。 是否查询空间数据。True,表示要取空间数 据;False,表示不取空间数据;若查询时不 取空间数据,即只查询属性信息,则在返回 的 Recordset 中,凡是对记录集的空间对象 进行操作的方法,都将无效,例如,调用 soRecordset.GetGeometry 将 返 回 空 、 S
11、uperMap.EnsureVisibleRecordset 无效等。 可选参数,字段列表。缺省时,查询结果包 括全部字段。 否则, 只有列表中列出的字段, 内容相当于 SQL 语句中的查询字段部分,如 SELECT field1,field2 FROM dt1 WHERE SmID < 10 ,该语句中的 field1 和 field2 都属于查询 字段,可以用 as 设置别名详见本页示例部 分。 strOptions 可选 String 查询选项。如查询出的结果(1)是否按某 一字段排序(Order By) ,默认为升序,如需 按降序排列,格式为"Order By * de
12、sc",其中 (2)是否按某一字段分 * 代表某一字段名; 组( Group By )等。对于 SDB 或者 SDBPlus 引擎而言,当 bHasGeometry 为 True 时, 本参数无效。 objFields 可选 soStrings 将示例代码: Private Sub sqlquery_Click( Dim objdtv As soDatasetVector Dim objRs As soRecordset Dim objOutputFields As New soStrings Set objdtv = SuperMap1.Layers(1.Dataset objOu
13、tputFields.Add "zcode" objOutputFields.Add "count(* as count" objOutputFields.Add "sum(population as sumpop" Set objRs = objdtv.Query("", False, objOutputFields, "group by zcode order by sum(population" SuperGridView1.Connect objRs SuperGridView1.Update Set objdtv = Nothing Set objRs = Nothing Set objOutputFields = Nothing End Sub 改成C#形式, 就可以在界面上以GridView形式显示出这个字段中的值了。我的程 序中是以"Continent“字段为例的。 四、 总结与感悟 在第三章,我学到了如何用SuperMap Objects进行空间数据管理。 我自己通过SuperWorkspace.CreateDataSource(创建一个名为XXX的数据源, 在 该数据源下通过soDataSource
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汉诺塔动画解析
- 《GB-T 16895.7-2021低压电气装置 第7-704部分:特殊装置或场所的要求 施工和拆除场所的电气装置》专题研究报告
- 智能灌溉系统运维师岗位招聘考试试卷及答案
- 物业的2025个人年终总结及2026年的年度工作计划
- 春季养肝的饮食方法
- 女性手脚冰凉的营养调理
- 辽宁省2025秋九年级英语全册Unit5Whataretheshirtsmadeof课时2SectionA(3a-3c)课件新版人教新目标版
- 2025年乙型脑炎活疫苗项目发展计划
- 2025年高性能传输线缆项目发展计划
- 干性皮肤的护理产品选择
- 上海财经大学2026年辅导员及其他非教学科研岗位人员招聘备考题库带答案详解
- 2026湖北恩施州建始县教育局所属事业单位专项招聘高中教师28人备考笔试试题及答案解析
- 心肺康复课件
- 2025人民法院出版社社会招聘8人(公共基础知识)测试题附答案解析
- 多元催化体系下羊毛脂转酯化制备胆固醇的工艺解析与效能探究
- 上海市奉贤区2026届高三一模英语试题
- 设施设备综合安全管理制度以及安全设施、设备维护、保养和检修、维修制
- 2025届高考全国二卷第5题说题课件
- 2026福建春季高考语文总复习:名篇名句默写(知识梳理+考点)原卷版
- QSY08002.3-2021健康安全与环境管理体系第3部分审核指南
- 四川省德阳市旌阳区2024-2025学年七年级上学期语文期末检测试卷(含答案)
评论
0/150
提交评论