GIS 软件开发技术
description
Transcript of GIS 软件开发技术
GISGIS 软件开发技术软件开发技术主讲:蔡忠亮
武汉大学资源与环境科学学院武汉大学资源与环境科学学院
2
课程主要内容课程主要内容第一部分 GIS 软件开发技术基础第二部分 MapInfo 环境下的 GIS 开发技术第三部分 Arc/Info 环境下的 GIS 开发技术第四部分 GIS 底层开发技术
3
第二部分 第二部分 MapInfoMapInfo 环境下环境下 GISGIS 开发技术开发技术 第一章 MapBasic + MapInfo 第二章 VB + MapX 第三章 VC + MapX
4
MapInfo 的数据组织 双元模型 层次结构
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
2.1 MapX2.1 MapX 编程基础编程基础
图形数据文件库 属性数据库OID
5
MapInfo 的数据组织
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
2.1 MapX2.1 MapX 编程基础编程基础
表结构表结构 (( 文本文文本文件件 )) 属性数据属性数据 属性数据对属性数据对应空间数据应空间数据的指针位置的指针位置空间数据空间数据
6
MapX 空间数据结构 MapX 是 MapInfo 公司向用户提供的具有强大地图分析功能的 ActiveX 控件产品。能支持绝大多数标准的可视化开发环境如 Visual C++ 、Visual Basic 、 Delphi 、 PowerBuilder 等
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
2.1 MapX2.1 MapX 编程基础编程基础
7
MapX 空间数据结构
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
2.1 MapX2.1 MapX 编程基础编程基础
8
MapX 空间数据结构
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
2.1 MapX2.1 MapX 编程基础编程基础
9
MapX 空间数据结构 位于顶层的是 Map 对象本身,其它均由Map 对象继承。 Layers 、 DataSets 、Annotations 是 Map 对象下面的三个重要的分支。其中 Layer 主要用于操作地图的图层, DataSet 用于访问空间数据表,Annotation 用于在地图上增加文本或者符号。
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
2.1 MapX2.1 MapX 编程基础编程基础
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 编程基础编程基础
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 兼容其它
12
2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 1. 数据准备-建立 GST 文件 ( 便于图层加载 )
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
13
2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 1. 数据准备-建立 DCT 文件 ( 制定搜索位置 )
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
1
23
14
2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 2. 在 VB 中增加 MapX 控件
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
15
2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 2. 在 VB 中设置 MapX 控件初始化值
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
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
17
2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 3. 在 VB 中 Map1 的消息
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
18
2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 4. VB 中 Form 的 Size 消息
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
19
2.2 VB+MapX2.2 VB+MapX 开发技术开发技术 5. VB 中 Form 相应 MapX 菜单等消息
ZoomIn 、 ZoomOut 等
第二章 第二章 VisualBasic VisualBasic + + MapX MapX
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
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)