PRJLIST控件是MAPGIS基本的工程管理控件,它集成了对工程文件进行控制处理所必需的数据对象的方法,具有对整个工程文件内容及各个文件状态控制的功能。
EDITGISATT控件是MAPGIS基本的属性编辑控件,它可以对工作区中实体的属性进行编辑和修改。
4.2 使用MAPGIS控件开发应用程序
使用可视化程度很高的开发工具VB ,Delphi等开发MAPGIS应用程序的最快速有效的方法就是使用MAPGIS控件。这些控件已经为用户的程序与MAPGIS操作平台的接口做好了准备,用户可以体会到使用这些控件可以很容易地实现MAPGIS系统里的功能。下面我们以ACTXEDIT控件和PRJLIST控件为例讲述在Visual Basic开发环境下如何构造一个简单的MAPGIS图形编辑器的方法和基本步骤。
例子见二次开发手册14.1.1节(P524)。 4.3 开发的数据组织和结构设计
1)数据的组织
图形编辑地二次开发地数据对象除了基本地点线面文件,用地比较多地还有工程文件数据.
2)结构的设计
(a)以单个文件为处理对象地情况(以CGisEditView为开发基本视类)
基本数据文件(点/线/面和 光栅文件) 文件处理 CGisEditView处理,实现平 台的基本编辑功能
派生 SetExtTool CMyEditTool集合 功能1…交互/处理 CMyEditView为实现自己的功能2…交互/处理 处理功能提供桥梁 功能3…交互/处理
…… 自己的处理在此实现,通
其它的辅助功能和设置 过SetExtTool()
(b)工程文件为处理对象地情况(以CPrjEditView为开发基本视类)本例采用VC的文档与视的结构体系,一个工程数据对应两种不同的表现和交互方式:工程列表管理和图形显示.其中工程列表管理主要控制工程文件中的不同图层文件的状态和存在;图形显示主要是对各个图层文件中的所有图元的空间数据和属性数据进行管理.它们公用一个数据源—“工程文件”,它保存在文档中.
它们之间的结构示意图:
(c) 控件开发(以编辑控件GisEdit和PrjList为例)本例采用工程数据为处理对象.
3) MFC开发与控件开发之间的结构关系对应图
用户的工程操作 CMyEditTool集合 功能1…交互/处理 功能2…交互/处理 功能3…交互/处理 …… 自己的处理在此实现,通过SetExtTool() 交互操作 SetExtTool 派生 CMyPrjListView为工程管理交互提供接口 派生 SetTxtToo工程数据文件(包括点/线/面和图象文件) 文件处理 CPrjListView处理基本的工程数据管理 CPrjEditView处理,实现平台的基本编辑功能 CMyPrjEditView为图形交互和功能处理提供接口 工程数据文件 GisEdit控件(包括属性/方法/事件) 在GisEdit的鼠标处理事件中实现自己的交互操作和功能. 在GisEdit的EditOperator事件中切换操作状态 PrjList控件(包括属性/方法/事件) 无论是MFC开发还是控件开发,他们的分层结构都有较好的对应关系。
CPrjListView视类 PrjList控件 CPrjEditView视类 MFC开发方案
控件开发方案
对应 CGisView视类 派生 CGisEditView视类 GisEdit控件 MapGisCtrl控件 派生 MpOutClr.ocx MapProjectOut控件MapPublishOut控件MapRastOut控件 属性操作API函数 EditGisAtt控件 第八讲 矢量空间分析和属性查询
1.矢量空间分析
迭加分析:包括区对区迭加分析、线对区迭加分析、点对区迭加分析、区对点迭加分析和点对线迭加分析。
缓冲区分析:包括点BUFFER分析、线BUFFER分析、区BUFFER分析。 设有原文件A和B,迭加结果为文件C,其中: A文件属性为: 缺省字段, f1 B文件属性为: 缺省字段, f2
缺省字段随着图形类型的不同而不同,分别是: 点文件:标志码。
线文件:标志码、线长度。 区文件:标志码、面积、周长。 迭加过程如下图所示:
文件A(A图形和A属性) 文件B(B图形和B属性)
文件C(C图形和C属性) 其中C文件的图形类型和A文件相同,而属性则是A文件与B文件属性连接的结果。
1.1迭加分析
(a) 区对区迭加分析
包括合并、相交、相减、判别四种方式。迭加结果用限影表示,迭加结果的属性为: 标志码、面积、周长,f1、区号、f2
其中区号为第二个文件的区号。
合并:属于A或属于B的区域。
标志码 面积 周长 f1 标志码 面积 周长 f2 标志码 面积 周长 f1 区号 F2 1 320.5 61.2 a
1 280.7 50.1 b 1 2 3 198.2 51.3 a 122.3 42.1 a 158.4 53.4 1 1 b b
相交:属于A且属于B的区域。
1
320.5 61.2 a
1 280.7 50.1 b
1 122.3 42.1 A
标志码 面积 周长 f1 标志码 面积 周长 f2 标志码 面积 周长 F1 区号 f2 1 b
相减:属于A不属于B的区域。
标志码 面积 周长 f1 标志码 面积 周长 f2 标志码 面积 周长 F1 区号 F2 1
320.5 61.2 a
1 280.7 50.1 b
1 198.2 51.3 A
判别:属于A的区域。
标志码 面积 周长 f1 标志码 面积 周长 f2 标志码 面积 周长 f1 区号 F2 1 320.5 61.2 a 1 280.7 50.1 b 1 2 198.2 51.3 a b 122.3 42.1 a 1
(b) 线对区迭加分析
包括相交、判别、相减三两种方式,迭加结果文件仍然是线文件,迭加结果的属性为:
标志码、线长度、f1、区号、f2
线图元用标号表示。 相交:穿过区域的线段部分
标志码 线长度 f1 标志码 面积 周长 f2 1 167.0 a
1 320.5 61.2 b 标志码 线长度 f1 区号 f2
1 80.8 a 1 b
判别:所有线图元
标志码 线长度 f1 标志码 面积 周长 f2 1
167.0 a
1 320.5 61.2 b 标志码 线长度 F1 区号 f2 1 2 3 32.2 a 80.8 A 44.0 A 1 b
相减:区域以外的线段
标志码 线长度 f1 标志码 面积 周长 f2 1 167.0 a
1 320.5 61.2 b 标志码 线长度 f1
1 3 32.2 44.0 a a
(c) 点对区迭加分析
包括相交、判别、相减三种方式,迭加结果文件仍然是点文件,结果属性为:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库二次开发初级培训班培训讲义(8)在线全文阅读。
相关推荐: