MapObjects:地理信息系统程序设计[按需印刷]
内容简介
书籍 计算机书籍
MapObjects是目前国际上最通用的地理信息系统(GIS)开发工具。本书根据作者近3年在M0上作的十几个实际的开发程序的经验,对MO中各种基本功能的使用做了极其详尽的介绍,并对MO用于大型管理程序、网上发布等功能做了扩展,使之更加实用。
本书从程序设计的实践出发,由浅入深,循序渐进。既可以作为了解地理信息系统软件的入门教材和高等院校地理信息系统程序设计的教材,也可以作为从事地理信息系统开发的专业人员的参考书。
目录
第1章 MO概述
1.1 MO简介
1.1.1 MO介绍
1.1.2 MO的主要功能
1.1.3 MO的主要版本
1.2 MO的安装和环境
1.2.1 运行环境和开发语言
1.2.2 安装步骤
1.3 使用帮助
第2章 MO程序设计人门
2.1 图层加载
2.1.1 Shapefile文件和图层的基本概念
2.1.2 添加Map控件
2.1.3 手工加载图层
2.2 地图操作的基本功能
2.2.1 地图放大
2.2.2 地图移动
2.2.3 地图缩小
2.2.4 恢复原始大小
2.3 功能合成
2.3.1 简单合成
2.3.2 使用TooBar合成
第3章 图层的基本功能开发
3.1 用程序加载图层文件
3.1.1 在同一文件夹下加载
3.1.2 在不同文件夹中加载
3.1.3 图层的卸载和移动
3.1.4 图层的选择和隐藏
3.2 图层基本属性设置
3.2.1 设置图层颜色
3.2.2 设置区域界线
3.2.3 设置线属性
3.2.4 设置点属性
3.2.5 属性设置的综合示例
3.3 图层标注
3.3.1 属性标注
3.3.2 设置图上字体
3.4 图层控制
3.4.1 使用Check控件控制图层的显示
3.4.2 使用Check控件控制图层的文字标注
3.4.3 使用Legend控件
3.4.4 在Legend上显示中文图层名
3.4.5 在Legend上控制图层的标注
3.4.6 MO图层基本功能开发的综合示例
第4章 GIS常用工具开发
4.1 使用指示图
4.1.1 添加指示窗口
4.1.2 在指示窗口中改变主窗口大小
4.1.3 在指示窗口中拖动方框
4.2 属性显示
4.2.1 显示一个区域的属性
4.2.2 显示所有对象的属性
4.2.3 属性窗口的隐藏和位置改变
4.3 其它GIS常用工具
4.3.1 地图比例尺工具ScaleBar
4.3.2 状态栏StatusBar
4.3.3 鼠标提示TipText
4.3.4 地图打印
第5章 图形的绘制
5.1 DrawShape方法
5.1.1 DrawSLape定义
5.1.1 画点
5.1.3 画线
5.1.4 画多边形
5.1.5 画矩形和椭圆
5.1.6 用Track画图
5.2 写文字
5.2.1 DrawText方法
5.2.2 在指定点写文字
5.2.3 在线段上添加文字
5.3 Syrnbol
5.3.1 Symbol概述
5.3.2 使用预定义符号
5.3.3 显示所有预定义符号
5.4 AddEvent方法
5.4.1 AddEvent定义
5.4.2 用AddEvent方法画点
5.4.3 画其它图形
第6章 图形对象的操作
6.1 Intersect(交)
6.1.1 Intersect方法介绍
6.1.2 Intersect的基本示例
6.1.3 求矩形和一个地区相交
6.1.4 求矩形和多个地区相交
6.2 Union(并)
6.2.1 Union方法介绍
6.2.2 Union的基本示例
6.3 Difference(差)
6.3.1 Difference方法介绍
6.3.2 Difference的基本示例
6.4 Xor(异或)
6.4.1 Xor方法介绍
6.4.2 Xor的基本示例
6.5 其它图形对象操作方法
6.5. 1 Buffer方法
6.5.2 Offset方法
6.5.3 Inset方法
6.6 求图形对象的长度和面积
6.6.1 求线段的长度
6.6.2 求地区的面积
6.6.3 计算2个对象之间的距离
6.6.4 计算点到线段之间的距离
6.6.5 判断点是否在对象的内部
第7章 MO的图层渲染
7.1 标注渲染(Labemenderer)
7.1.1 LabelRenderer定义
7.1.2 标注偏移
7.1.3 使用SymbolField进行多样化渲染
7.1.4 分级标注
7.2 按值渲染(ValueMapRenderer)
7.2.1 ValueMapRenderer定义
7.2.2 基本示例
7.2.3 固定渲染的颜色
7.2. 4 固定数值的对应颜色
7.3 点密度渲染(DotDensityRenderer)
7.3.1 DotDensityRenderer定义
7.3.2 DotDensityRenderer基本示例
7.4 分类渲染(ClassBreakRenderer)
7.4.1 ClassBreakRenderer定义
7.4.2 统计对象(Statistics)
7.4.3 根据面积的统计值分区显示
7.4.4 使用SizeSymbols渐进显示点特征
7.5 图表渲染(ChartRenderer)
7.5.1 ChartRenderer定义
7.5.2 ChartRenderer对象的基本示例
7.5.3 选择字段进行图表渲染
7.6 Z值渲染(Zrenderer)
7.6.1 MO的Z值示例
7.6.2 Zrenderer定义
7.6.3 Zrenderer的基本示例
7.7 组渲染(GroupRenderer)
7.7.1 GroupRenderer定义
7.7.2 GroupRenderer示例
第8章特征查找
8.1 SearchExpression(表达式查找)
8.1.1 SearchExpression定义
8.1.2 使用SearchExpression进行简单查找
8.1. 3 查找结果闪烁显示
8.1.4 使用SearchExpression进行综合查找
8.2 SearchByDistance(距离查找)
8.2.1 SeaxchByDistance定义
8.2.2 查找对象周围的特征
8.2.3 查找指定范围的特征
8.3 SearchShape(图形查找)
8.3.1 SearchShape定义
8.3.2 通过选择图形对象查找相邻图形对象
8.3.3 SearchByDistance和SearchShape联合查询
第9章 地图和图层
9.1 Map(地图)
9.1.1 Map概述
9.1.2 设置Map控件的大小
9.1.3 设置Map初始显示位置
9.2 MapLayer(矢量图层)
9.2.1 MapLayer介绍
9.2.2 GeoDataset
9.2.3 放大到4倍后显示新图层
9.3 TrackingLayer(动态图层)
9.3.1 GeoEvent(地理事件)对象
9.3.2 TrackingLayer介绍
9.3.3 用Move方法画动态GeoEvent
9.4 ImageLayer(图像图层)
9.4.1 ImageLayer的基本设置
9.4.2 自定义转换文件
9,4.3 调整转换系数的程序
9.4.4 设置透明图层
第10章 坐标和坐标系
10.1 坐标系对象
10.1.1 坐标系对象概述
10.1.2 地理坐标系和投影坐标系
10.1.3 坐标系的读取和设置
10.1.4 坐标系的改变
10.1.5 设置自定义坐标系
10.2 MO的单位
10.2.1 Unit(单位)对象
10.2.2 容器单位
10.2.3 MO坐标转换方法介绍
10.2.4 Factor属性
10.2.5 Transform方法
10.2.6 Measure属性
10.3 坐标转换示例
10.3.1 在地图上显示经纬度
10.3.2 在地图上显示公里
10.3.3 正确显示特征的长度和面积
10.3.4 程序设定距离的转换
第11章 MO的数据操作
11.1 MO常用的数据操作
11.1.1 使用GeoDataset和DataConnection连接地理数据
11.1.2 MO的Recordset(记录集)对象
11.1.3 属性数据库的修改
11.1.4 从Access向属性数据库中写数据
11.1.5 从SQLSERVER向属性数据库中写数据
11.2 图层的修改和新建
11.2.1 特征删除
11.2.2 用TableDesc对象描述表结构
11.2.3 用AddGeoDataset方法建立新图层
11.2.4特征添加
11.2.5 Shapefile文件生成
11.2.6 用Export方法产生坐标系文件
11.2.7 用Export方法产生shape和坐标系文件
11.3 通过Table连接其它数据库
11.3.1 连接其它数据库概述
11.3.2 Table对象
11.3.3 AddRelate和RemoveRelates方法
11.3.4 用DAO建立和DBF数据库的关联
11.4 使用其它地理数据格式
11.4.1 Coverage
11.4.2 SDE
11.4.3 VPF
11.4.4 StreetMap
11.4.5 CAD文件
第12章 在MO上的开发示例
12.1 等值线和等值面
12.1.1 等值线
12.1.2 等值面
12.2 在特征上移动
12.2.1 沿线状特征移动
12.2.2 沿线状特征推进
12.2.3 沿面状特征推进
12.3 其它应用
12.3.1 用MO开发综合性的应用程序
12.3.2 进行网上发布
附录A M02.1和2.2的新增功能
附录B MO对象一览表
附录C MO的颜色设置
附录D MO常数一览
附录E 相关的VB开发方法介绍
附录F 可以提供的程序光盘
前言
地理信息系统(Geographic lnformation System,简称GIS)目前在计算机软件开发上的应用越来越广泛,除了传统的地理、地质、交通、测绘等专业软件必须应用GIS以外,在气象、环境、水利、电力、建筑、军事等方面也得到很多应用。甚至连以往和地理毫无关系的政务管理系统也开始用上了GIS!可以毫不夸张地说,不懂GIS编程的常识,就不是一个合格的计算机应用软件开发人员。
虽然地理信息系统的优点很多,但是高成本和专用的开发语言成为其学习和推广的一大障碍。
作者在试用多个GIS平台软件和开发工具后,感觉ESRI公司的MapObjects(简称MO)具有低成本(人民币3万多元)、易开发(使用VB、VC、VS.NET等通用语言)、不需要其它GIS平台、使用环境广、通用性好、易于推广等优点。但是同时该软件也具有功能较弱、不便于网上发布等缺点。
本书根据作者近3年在MO上作的十几个实际的开发程序的经验,对MO中,各种基本功能的使用做了及其详尽的介绍,并对MO的许多功能,如绘制等值线和等值面、和MIS系统的结合、网上发布等功能做了扩展,使之更加实用。
学习一个软件的最简捷的办法是通过学习它的帮助来学习。MO有一个很好的帮助文件和一些很好的范例,读者当然可以通过学习它们来熟悉MO。作者在3年前也是只花了1周时间就通过帮助完成了MO的入门,但是要继续了解GIS编程,就不是那么轻而易举了。
和普通的软件教科书不同,在本书的一百多个示例中,没有一个是从MO的帮助上拷贝过来的。作者尽量做到每个示例解决一个实际问题,每个示例都可以很方便地独立运行。一些看起来短小的例子耗费了作者几天甚至数周的时间。希望本书能给学习GIS系统入门的计算机软件人员和想利用MO进行GIS软件开发的专业人员带来较大的帮助。
参加本书编写工作和示例程序编制的还有刘乾、翟彩霞、侯素娟、高嵩、谢玉清、王英等。另外,本书的编写还得到北京市水电中心和ESRI软件的中国总代理富融科技有限公司的大力支持,在此一并表示感谢。
如果有问题和批评建议,请随时和作者联系,MAIL地址为:xw011@yeah.net。