GIS开发第三章_第1页
GIS开发第三章_第2页
GIS开发第三章_第3页
GIS开发第三章_第4页
GIS开发第三章_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GIS设计与开发实验2一、程序运行时截图: 界面设计: 二、设计思路 三、具体步骤1.首先建立SuperMap控件之间的连接:private void ConnectSuperMap(2.打开一个数据集/定义它的位置string path="C:UsersDanielDocumentsVisual Studio2010ProjectsGISSuperMap开发Gis开发空间数据管理(3DataWorld.sdb"/定义他的别名/这里使用了subString(和IndexOf(方法来获取文件的全名String strDsName=path;String strAlias=Pa

2、th.GetFileNameWithoutExtension(path.Substring(path.LastIndexOf("" +1;3.获取数据集集合soDatasets datasets=objDs.Datasets;/可以通过访问datasetsi.Name来得到每个数据集的名字。同时,我们还可以调用操作符重载datasets"Capital"来访问数据集集合中的某数据集。通过访问ds.Type等等属性,即可获得该数据集的类型,或其它属性。4.建立自己的数据集soDataset Myds=objDs.CreateDataset("My

3、ds",seDatasetType.scdRasterCollection, seDatasetOption.scoDefault;其中objDS是DataSource(数据源对象。这里实现了直接从数据源到数据集的转换。4.数据集之间的继承关系 soDatasetRaster datasetR=(soDatasetRasterMyds;/soDatasetRaster datasetR2=(soDatasetRasterds;int width=datasetR.PixelWidth;这里的Myds本来是dataset对象,但是soDatasetRaster继承于DataSet是他的

4、子类,我们采用了向下转型,使得datasetR对象具有了栅格数据特有的PixelWidth属性。5.新建数据源string path="C:UsersDanielDocumentsVisual Studio2010ProjectsGISSuperMap 开发Gis开发空间数据管理(3DataXXX.sdb"在这里我们建立了一个名字为XXX的SDBPlus数据源。 6.新建一个字段/首先获得数据集soDataset ds=datasets"World_Attri"/向下转型为soDatasetVector类型soDatasetVector vector=(

5、soDatasetVectords;/新建一个字段soFieldInfo finfo=new soFieldInfoClass(;/然后设置字段的一些属性finfo.Name="TTT"finfo.Type=seFieldType.scfInteger;/在创建之前必须先清空记录集。vector.ClearRecordsets(;/最后插入并且判断插入是否成功。bool OK=vector.CreateField(finfo;if(OKMessageBox.Show("OK"soDatasetVector 类中有一个 Query 方法。 soRecord

6、set soDatasetVector.Query(strSQLFilter As String,bHasGeometry As Boolean,objFields As soStrings,strOptions As String 参数 strSQLFilter bHasGeometry 可选 必选 必选 类型 String Boolean 描述 查询条件, 相当于 SQL 语句中的 Where 子句。 是否查询空间数据。True,表示要取空间数 据;False,表示不取空间数据;若查询时不 取空间数据,即只查询属性信息,则在返回 的 Recordset 中,凡是对记录集的空间对象 进行操作

7、的方法,都将无效,例如,调用 soRecordset.GetGeometry 将 返 回 空 、 SuperMap.EnsureVisibleRecordset 无效等。 可选参数,字段列表。缺省时,查询结果包 括全部字段。 否则, 只有列表中列出的字段, 内容相当于 SQL 语句中的查询字段部分,如 SELECT field1,field2 FROM dt1 WHERE SmID < 10 ,该语句中的 field1 和 field2 都属于查询 字段,可以用 as 设置别名详见本页示例部 分。 strOptions 可选 String 查询选项。如查询出的结果(1)是否按某 一字段排

8、序(Order By) ,默认为升序,如需 按降序排列,格式为"Order By * desc",其中 (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 soStr

9、ings Set objdtv = SuperMap1.Layers(1.Dataset objOutputFields.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&quo

10、t; 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.CreateDataset(创建了一个名为Myds的点数据 集,并为将其转换为了soDatasetRaster类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论