ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

组件式GIS开发总结(一)

2021-12-12 13:06:13  阅读:183  来源: 互联网

标签:总结 objRecordset GIS string SuperMap soDatasetVector 接口 组件


一、组件式开发的优缺点
1)优点

(1)高度的伸缩性
(2)灵活的拓展性
(3)易于开发
(4)易于集成
(5)更高的性价比
2)缺点
(1)与专业的GIS客户端软件相比,组件式GIS的效率相对低下
(2)支持的空间数据量有限
(3)支持的功能有限
(4)系统的容错率和可靠性有待提升
二、SuperMap Objects组件式开发的控件
1)核心控件:SuperMap、SuperWorkspace;
2)功能控件:Super3D、SuperAnalyst、SuperLayout、SuperTopo;
3)辅助开发工具:SuperWkspManager、SuperGridView、SuperLegend;
三、良好的组件式编程习惯
1)避免上帝对象
2)避免幻数
3)避免长函数
4)避免深度嵌套
5)应用分层
6)代码有注释
7)代码简洁、低耦合
8)标识符命名有意义
9)日志打印
四、基本概念
(1) SuperObjects 中提供了两种保存工作空间的接口:SuperWorkspace.Save()和SuperWorkspace.SaveAs();
(2) SuperGIS的工作空间是以树状层次结构保存的,工作空间的拓展名有smw(二进制格式)、sxw(XML格式);
(3) 用户的工作环境同时只允许有一个工作空间,因此,不要在同一个项目中加载一个以上的SuperWorkspace控件;工作空间保存的内容包括数据源、地图、系统资源和三维场景及布局;
(4) SuperMap Objects的主要功能有
1)数据转换
2)空间数据编辑与处理
3)空间数据组织与管理
4)空间数据获取与集成
5)数据访问与互操作
6)空间分析
7)查询分析
8)地理变换
9)地图显示
10)地图投影
11)制图输出
12)地图布局
(5)当需要将2个及以上的同类型的数据集合到一个数据集时,可以使用数据集追加的方法来实现。提供矢量数据集追加方法:soDatasetVector.Append(),提供栅格数据集追加方法:soDatasetRaster.Append();
(6)GIS由软件系统、硬件系统、用户和地理数据组成的。
(7)GIS开发的三种模式:
1)独立开发
2)单纯二次开发
3)集成二次开发
(8)GIS中的2种数据结构:
1)矢量数据结构,特点:定位明显,属性隐含;
2) 栅格数据结构,特点:定位隐含,属性明显;
五、网络分析的类型
1)连通性分析
2)服务区分析
3)物流分析
4)最短路径分析
5)最近设施查找
六、SuperMap Objects 获取字段

//先要判断字段名是否合法,需用以下接口
soDatasetVector.IsAvailableFieldName()
//创建字段,用以下接口
soDatasetVector.CreateField()//创建单个字段的接口
soDatasetVector.CreateFields()//创建多个字段的接口
//删除字段,用以下接口
soDatasetVector.Delete()
//更新字段,用以下接口
soDatasetVecot.UpdateField()//只更新字段值
soDatasetVector.UpdateFieldEx()//同步更新SQL数据源的值

七、栅格分析
1)类型:
(1)栅格统计
(2)表面分析
2)栅格数据模型/结果数据/主要数据源
(1)离散数据
(2)连续数据
八、SuperMap Objects OMD(至关重要)
在这里插入图片描述
三个关系很重要:
3个聚合、1个联合、1个继承;
九、用C#代码写出获取F:\A\AA路径里的工作空间里的所有图层。

this.axSuperWorkspace1.Open(@"F:\A\AA");
for(int i=1; i<=objDss.Count; i++)
{
	string strDssName = objDss[i].Name;
	soDatasets objDts = objDss[i].Datasets;
for(int j=1; j<objDts.Count; j++ )
	{
		string strDtsName = objDts[j].Name;
	}
}

十、用C# 代码写出获取图层中的所有字段

soDataSources objDss = this.axSuperWorkspace1.Datasources;
     soDataSource objDs = objDss[1];
     string strDssName = objDs.Name;
     soDatasets objDts = objDs.Datasets;
     for(int i=1;i<=objDts.Count;i++)
       {
         soDatasetVector objDV = (soDatasetVector)objDts[i];
         soRecordset objRecordset = objDV.Query("", true, null, "");
         if(objRecordset!=null)
           {
             objRecordset.MoveFirst();
             while(!objRecordset.IsEOF())
             {
                for(int k=1;k<=objRecordset.FieldCount;k++)
                {
                   string strFieldInfo = objRecordset.GetFieldInfo(k).Name;
                   string strValue = objRecordset.GetFieldValue(k).ToString();
                }
                objRecordset.MoveNext();
             }
           }
         ReleaseObjects(objDV);
         ReleaseObjects(objRecordset);
       }
   }



标签:总结,objRecordset,GIS,string,SuperMap,soDatasetVector,接口,组件
来源: https://blog.csdn.net/weixin_47062907/article/details/121880925

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有