GIS 软件开发技术

21
GIS GIS 软软软软软软 软软软软软软 主主 主主主 主主主主主主主主主主主主主 主主主主主主主主主主主主主

description

GIS 软件开发技术. 主讲:蔡忠亮 武汉大学资源与环境科学学院. 课程主要内容. 第一部分 GIS 软件开发技术基础 第二部分 MapInfo 环境下的 GIS 开发技术 第三部分 Arc/Info 环境下的 GIS 开发技术 第四部分 GIS 底层开发技术. 第二部分 MapInfo 环境下 GIS 开发技术. 第一章 MapBasic + MapInfo 第二章 VB + MapX 第三章 VC + MapX. OID. 图形数据文件库. 属性数据库. 2.1 MapX 编程基础. MapInfo 的数据组织 双元模型 - PowerPoint PPT Presentation

Transcript of GIS 软件开发技术

Page 1: GIS 软件开发技术

GISGIS 软件开发技术软件开发技术主讲:蔡忠亮

武汉大学资源与环境科学学院武汉大学资源与环境科学学院

Page 2: GIS 软件开发技术

2

课程主要内容课程主要内容第一部分 GIS 软件开发技术基础第二部分 MapInfo 环境下的 GIS 开发技术第三部分 Arc/Info 环境下的 GIS 开发技术第四部分 GIS 底层开发技术

Page 3: GIS 软件开发技术

3

第二部分 第二部分 MapInfoMapInfo 环境下环境下 GISGIS 开发技术开发技术 第一章 MapBasic + MapInfo 第二章 VB + MapX 第三章 VC + MapX

Page 4: GIS 软件开发技术

4

MapInfo 的数据组织 双元模型 层次结构

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

2.1 MapX2.1 MapX 编程基础编程基础

图形数据文件库 属性数据库OID

Page 5: GIS 软件开发技术

5

MapInfo 的数据组织

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

2.1 MapX2.1 MapX 编程基础编程基础

表结构表结构 (( 文本文文本文件件 )) 属性数据属性数据 属性数据对属性数据对应空间数据应空间数据的指针位置的指针位置空间数据空间数据

Page 6: GIS 软件开发技术

6

MapX 空间数据结构 MapX 是 MapInfo 公司向用户提供的具有强大地图分析功能的 ActiveX 控件产品。能支持绝大多数标准的可视化开发环境如 Visual C++ 、Visual Basic 、 Delphi 、 PowerBuilder 等

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

2.1 MapX2.1 MapX 编程基础编程基础

Page 7: GIS 软件开发技术

7

MapX 空间数据结构

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

2.1 MapX2.1 MapX 编程基础编程基础

Page 8: GIS 软件开发技术

8

MapX 空间数据结构

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

2.1 MapX2.1 MapX 编程基础编程基础

Page 9: GIS 软件开发技术

9

MapX 空间数据结构 位于顶层的是 Map 对象本身,其它均由Map 对象继承。 Layers 、 DataSets 、Annotations 是 Map 对象下面的三个重要的分支。其中 Layer 主要用于操作地图的图层, DataSet 用于访问空间数据表,Annotation 用于在地图上增加文本或者符号。

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

2.1 MapX2.1 MapX 编程基础编程基础

Page 10: GIS 软件开发技术

10

MapX 基本属性 Map Layers -> Layer -> Feature GeoSets Annotation 可在 MapX 创建的对象

AffineTransform 、 BindLayer 、 BitmapSymbols 、 CoordSys 、 Datum 、 Feature 、 Fields 、 LayerInfo 、 Map 、 ODBCQueryInfo 、 Parts 、 Point 、 Points 、 Rectangle 、 RowValue 、 RowValues 、 Style 、 Variables 、 NotesQueryInfo 、NotesViewInfo

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

2.1 MapX2.1 MapX 编程基础编程基础

Page 11: GIS 软件开发技术

11

2.1 MapX2.1 MapX 编程基础编程基础 MapX 可以绑定的数据源

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

 类型 描述ADO  使用 ADO( Active data objects)

DAO  DAO对象,可以是 VB中的 data control、 Access表格等,也可自己创建Delphi  使用 Borland BDE数据源Global Handle  lets you pass in a block of tab-delimited data

Layer  创建一个 Dataset,使用MapInfo表字段

Notes View/ Notes Query  专门用于 Lotus Notes

ODBC  可以使用 ODBC从任何 ODBC数据源中获取数据OLE Data  用于 containers,如 PowerBuilder

RDO  MS Remote Data Objects和 RDO结果集对象safeArray COM数据集,与 safearray中的数据进行静态绑定Unbound  兼容其它

Page 12: GIS 软件开发技术

12

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 1. 数据准备-建立 GST 文件 ( 便于图层加载 )

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Page 13: GIS 软件开发技术

13

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 1. 数据准备-建立 DCT 文件 ( 制定搜索位置 )

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

1

23

Page 14: GIS 软件开发技术

14

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 2. 在 VB 中增加 MapX 控件

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Page 15: GIS 软件开发技术

15

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 2. 在 VB 中设置 MapX 控件初始化值

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Page 16: GIS 软件开发技术

16

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 2. 在 VB 中 Form_Load() 中初始化 MapX

创建工具条: Map1.CreateCustomTool MyAddLineTool, miToolTypeLine, miCrossCursor 设置标题: Map1.TitleText = “PipeLine“ ……

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Page 17: GIS 软件开发技术

17

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 3. 在 VB 中 Map1 的消息

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Page 18: GIS 软件开发技术

18

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 4. VB 中 Form 的 Size 消息

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Page 19: GIS 软件开发技术

19

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 5. VB 中 Form 相应 MapX 菜单等消息

ZoomIn 、 ZoomOut 等

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Page 20: GIS 软件开发技术

20

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 6. VB 中 MapX 对象的使用

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

MapXLayers

Layer

Features

Feature

Map1.Layers.Item(i).AllFeatures.Item(j)

Points Point

Page 21: GIS 软件开发技术

21

2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 7. VB 中 MapX 的坐标转换

第二章 第二章 VisualBasic VisualBasic + + MapX MapX

Map1.ConvertCoord ScrX, ScrY, MapX, MapY, miScreenToMap

8. VB 中创建 MapX 要素 Set ftrRectangle = Map1.FeatureFactory.CreateLine(pntsBorder) Set ftrRectangle = Map1.Layers.InsertionLayer.AddFeature(ftrRectangle)

9. VB 中查找 MapX 要素Set ftrs = lyr.SearchWithinDistance(Point, 1, miUnitMeter, miSearchTypePartiallyWithin)