第1 章 Autodesk产 品 简 介 地理信息系统 1
1.1基本概念 1
1.1.1 GIS数据类型 1
1.1.2 GIS数据源 4
1.2 Autodesk地理信息系统产品简介 5
1.2.1 AutoCAD Map 3D 6
1.2.2 Autodesk MapGuide 7
1.2.3 Autodesk Topobase 7
1.2.4 Autodesk LandXplorer 8
1.2.5 AutoCAD Raster Design 8
第 2章 F DO 10
2.1 FDO概述 10
2.1.1 FDO的历史 11
2.1.2 FDO的基本概念 12
2.1.3 FDO功能包 16
2.1.4 FDO Provider 16
2.2 FDO的内存管理机制 17
2.2.1内存管理相关的宏 18
2.2.2智能指针FdoPtr 18
2.3 FDO的异常处理机制 19
2.4建立连接 22
2.4.1数据源和Data Store 22
2.4.2注册Provider 22
2.4.3建立连接 23
2.5能力 27
2.5.1连接能力 27
2.5.2模式能力 29
2.5.3命令能力 32
2.5.4表达式能力 34
2.5.5过滤器能力 35
2.5.6几何能力 36
2.5.7栅格能力 36
2.6模式管理 37
2.6.1模式概述 37
2.6.2模式的组成 38
2.6.3模式的使用 38
2.6.4 FDO XML格式 40
2.6.5 GML模式文件的创建 44
2.6.6模式管理示例 50
2.6.7类能力 57
2.7管理空间上下文 57
2.8模式覆盖 59
2.8.1模式覆盖 60
2.8.2 ODBC Provider的模式覆盖 61
2.8.3 Raster Provider的模式履盖 63
2.8.4 WMS Provider的模式覆盖 66
2.9管理Data Store 68
2.9.1创建Data Store 68
2.9.2枚举Data Store 69
2.10数据维护 70
2.10.1属性值 71
2.10.2插入操作 73
2.10.3更新属性值 75
2.10.4删除要素 76
2.10.5管理事务 76
2.11查询操作 77
2.11.1查询概述 77
2.11.2查询示例 79
2.12执行SQL语句 82
2.13长事务处理 83
2.13.1长事务概述 83
2.13.2支持的接口 83
2.14处理栅格图像 85
2.14.1世界文件 85
2.14.2读取栅格数据 86
第3章MapGuide简介 89
3.1 Web GIS 89
3.1.1 Web GIS的特点 89
3.1.2 Web GIS组件 90
3.2 MapGuide功能简介 90
3.3 MapGuide的历史 92
3.4组件视图 93
3.4.1服务器层组件 93
3.4.2 Web层组件 96
3.4.3客户端层组件 97
3.5交互视图 102
3.6部署视图 103
3.6.1企业级环境的部署 103
3.6.2开发环境的部署 104
3.7安装和配置MapGuide 104
3.7.1安装MapGuide服务器 105
3.7.2安装Web扩展 105
3.7.3验证安装 108
3.7.4配置MapGuid 109
第4章 MapGuide快速入 门 111
4.1 MapGuide API 111
4.1.1服务器端API 111
4.1.2客户端API 121
4.2 MapGuide开发流程 121
4.3应用程序示例—你好,MapGuide! 122
4.3.1加载数据 123
4.3.2创建图层 125
4.3.3创建地图 126
4.3.4创建网页布局 126
4.3.5创建MapGuide应用程序 129
4.3.6总结 133
第5章网.页布局 134
5.1网页布局简介 134
5.1.1 MapGuide的两种网页布局 134
5.1.2网页布局的存储 136
5.1.3网页布局和Viewer 137
5.2基本网页布局 138
5.2.1基本网页布局的用户界面组件 138
5.2.2命令 140
5.2.3应用程序示例—为应用程序添加帮助 141
5.2.4框架 143
5.2.5应用程序示例—在网页中嵌入一个基本网页布局 146
5.2.6 Viewer API 147
5.2.7应用程序示例—Hello Viewer 152
5.2.8总结 153
5.3灵活网页布局 153
5.3.1灵活网页布局的用户界面组件 154
5.3.2 Fusion—平台+插件 155
5.3.3操作示例—创建模板 167
5.3.4 Fusion API 171
5.4灵活网页布局应用程序示例 178
5.4.1 Hello World 179
5.4.2创建一个Widget 179
5.4.3选择集 181
5.4.4对话框和事件 182
第6章站点和站点服务 187
6.1配置站点 187
6.2站点服务 189
6.2.1创建到站点服务器的连接 190
6.2.2创建MapGuide提供的服务 190
6.2.3创建MgSite对象实例 191
6.2.4枚举用户、用户组和角色 191
6.2.5管理Session 192
第7章空间参考系统 194
7.1.空间参考系统相关概念 194
7.1.1坐标系的类型 195
7.1.2椭球体和基准面 195
7.1.3投影 196
7.1.4空间参考系统的类型 197
7.1.5高程参考 198
7.2空间参考系统的表示 198
7.2.1EPSG代码 198
7.2.2 WKT 199
7.3 MapGuide空间参考系统API 203
7.3.1CS-MAP和PROJ4 204
7.3.2MapGuide支持的空间参考系统类型 204
7.3.3创建空间参考系统 205
7.3.4空间参考系统表示方式之间的转换 206
7.3.5获取空间参考系的定义信息 206
7.3.6坐标转换 207
7.3.7测量距离 209
7.3.8计算方位角 210
7.3.9定位新坐标 210
7.3.10单位转换 211
第 8章 资源和资源服务 212
8.1资源库 212
8.1.1 Oracle Berkeley DB XML 212
8.1.2资源库的类型 213
8.1.3备份和恢复资源库 214
8.2资源 216
8.2.1资源ID 216
8.2.2资源类型 217
8.2.3加载过程 218
8.2.4引用其他资源 218
8.2.5资源标签 219
8.2.6资源包 220
8.3资源服务 223
8.3.1设置资源服务 223
8.3.2获取资源服务 224
8.3.3头 224
8.3.4管理资源库 225
8.3.5管理资源 226
8.3.6管理资源数据 232
8.3.7管理资源包 235
第9章地图和图层 236
9.1地图 236
9.1.1 比例尺 238
9.1.2绘图顺序 238
9.1.3图层和图层组 239
9.1.4底图和底图图层组 239
9.1.5地图图例 239
9.2图层 240
9.2.1图层样式 240
9.2.2比例尺范围 240
9.2.3图层的可见性 241
9.3图层定义 241
9.3.1向量图层定义 242
9.3.2栅格图层定义 255
9.3.3制图图层定义 261
9.3.4创建图层定义 262
9.3.5扩展图层定义 266
9.4操作地图和图层 266
9.4.1遍历地图中的所有图层 266
9.4.2改变图层的属性 267
9.4.3改变图层的可见性 267
9.4.4给地图添加一个图层 268
9.4.5将图层加入一个图层组 269
9.4.6调整图层的绘图顺序 270
第10章要素和要素服务 271
10.1要素 271
10.1.1 AGF和WKB 271
10.1.2 AGF规范 271
10.1.3 AGF文本 275
10.1.4几何类型 277
10.1.5空间关系 286
10.2要素源 289
10.2.1覆盖坐标系 291
10.2.2要素源扩展 292
10.3要素模式 297
10.4要素服务 298
10.4.1要素服务的关键技术 298
10.4.2设置要素服务 302
10.4.3获取要素服务 302
10.4.4获取要素源的能力 302
10.4.5创建要素源 304
10.4.6描述要素模式 306
10.4.7描述空间上下文 309
10.4.8查询要素 311
10.4.9修改要素 323
10.4.10执行SQL语句 326
10.4.11长事务 327
第 11章块和分块的服务 330
11.1块 330
11.1.1块 330
11.1.2底图、底层和底层组 331
11.1.3底图比例尺 332
11.1.4创建底图 332
11.2块的缓存位置 333
11.2.1文件基路径 333
11.2.2底图比例尺索引 333
11.2.3底层组 334
11.2.4行 334
11.2.5列 335
11.3计算块的坐标 335
11.4分块服务 336
11.4.1设置分块服务 336
11.4.2获取块 337
11.4.3获取块的大小 337
11.4.4清除缓存块 338
第12章 渲染服务和地图服务 339
12.1渲染引擎 339
12.2渲染服务 340
12.2.1获取渲染服务 341
12.2.2渲染地图 341
12.2.3渲染动态图层 343
12.2.4查询要素 345
12.2.5其他功能 346
12.3地图服务 346
12.3.1获取地图服务 347
12.3.2创建EMap格式的DWF文件 347
12.3.3创建EPlot格式的DWF文件 347
12.3.4打印布局 349
第13章 KML 服务 352
13.1 KML 352
13.1.1 KML简介 352
13.1.2地标 353
13.1.3地标中的描述性HTML 354
13.1.4地面叠加层 355
13.1.5路径 356
13.1.6多边形 357
13.1.7几何图形样式 358
13.1.8网络链接 359
13.1.9区域 359
13.2 KML服务 360
13.2.1获取KML服务 360
13.2.2生成地图的KML 360
13.2.3生成图层的KML 362
13.2.4生成要素的KML 364
13.2.5拉伸要素 365
第14章 MapGuide 日志 367
14.1日志 367
14.1.1访问日志 367
14.1.2错误日志 367
14.1.3跟踪日志 368
14.1.4配置日志内容 369
14.2案例分析 370
14.2.1调试要素服务 370
14.2.2调试损坏的图层 372
第15章 MapGuide 和 375
15.1 OpenLayers简介 375
15.1.1修改HTML 375
15.1.2创建地图 376
15.1.3 OpenLayers的语法 377
15.2在MapGuide中集成OpenLayers 378
15.2.1手动地集成商业地图服务 378
15.2.2使用MapGuide Studio集成商业地图服务 382
15.3 Fusion和OpenLayers 383
15.3.1术语不一致引发的问题 383
15.3.2事件机制的异同 385
15.3.3其他改进 387
第16章MapGuide 最佳实践 389
16.1优化配置和部署 389
16.1.1分割MapGuide服务器和MapGuide Web扩展 389
16.1.2创建多个站点 389
16.1.3定期备份资源库 391
16.1.4优化Windows操作系统 391
16.2优化Web应用服务器 391
16.2.1压力测试 391
16.2.2调整FCGI参数 391
16.3优化地图和图层设置 392
16.3.1按照比例尺设置图层的可见性 392
16.3.2使图层初始不可见 392
16.3.3设置图层不可选择 393
16.3.4不要使用PNG图像格式 393
16.3.5使用底层(Base Layer) 395
16.3.6使用单个坐标系 395
16.3.7使用过滤器和显示规则 396
16.4优化MapGuide服务 396
16.4.1增加缓存的大小 396
16.4.2调节数据连接池 396
16.4.3堵塞内存泄露 397
16.4.4优化线程数 398
16.5优化数据源 398
16.5.1使用SDF文件 398
16.5.2采样向量数据 399
16.5.3避免使用连接和视图 399
16.5.4优化数据库服务器 399
16.5.5管理大量原生模式(Native Schema) 400
16.5.6优化栅格数据 400
第 17章 MapGuide 源码分析 401
17.1 MapGuide开源版 401
17.1.1访问MapGuide源代码 401
17.1.2 MapGuide源代码结构 402
17.1.3编译MapGuide 403
17.1.4 MapGuide开源版的管理组织 404
17.1.5 MapGuide开源版的修改流程 404
17.2 MapGuide Web扩展和服务器源码分析 406
17.2.1 MapGuide Web扩展源码分析 406
17.2.2 MapGuide服务器源码分析 412
17.2.3总结 421
17.3 HTTP API 422
17.3.1什么是HTTP API 422
17.3.2 HTTP API和MapGuide Web API的关系 423
17.3.3使用HTTP API 423
17.4 Viwer源码分析 424
17.4.1利用模板实现支持多种语言进行Web编程 425
17.4.2国际化和本地化 428
17.5 MapGuide Web API 429
17.5.1 SWIG简介 429
17.5.2 SWIG在MapGuide中的应用 431
17.5.3扩展MapGuide Web API 437
第18章 AutoCAD Map 3D次 发 指 439
18.1 AutoCAD Map 3D功能简介 439
18.2 AutoCAD Map 3D的架构 443
18.2.1块实体 444
18.2. 2 GWS 445
18.2.3要素源、图层和样式渲染器 446
18.2.4栅格图层 447
18.3 AutoCAD Map 3D API 447
18.3.1 AutoLISPAPI 448
18.3.2 ActiveX API 448
18.3.3 ObjectARX API 448
18.3.4数据连接API 449
18.3.5地理空间平台API 449
18.3.6工作流API 449
18.4地理空间平台API 451
18.5资源和资源服务 453
18.5.1资源 453
18.5.2资源服务 454
18.5.3事件 455
18.5.4创建资源 458
18.5.5 AutoCAD Map 3D和MapGuide的资源服务差异 459
18.5.6代码示例 461
18.6要素服务 462
18.6.1要素服务 462
18.6.2获取FDO连接 462
18.6.3事件 463
18.6.4锁定和解锁要素 464
18.6.5 AutoCAD Map 3D和MapGuide的要素服务差异 465
18.7地图和图层 466
18.7.1地图和地图管理服务 466
18.7.2地图和地图管理服务 467
18.7.3图层和图层组 468
18.7.4编辑图层要素 471
18.7.5查询图层要素 474
18.7.6图层文件 475
18.7.7 AutoCAD Map 3D和MapGuide的地图和图层类差异 476
18.8要素实体服务 476
18.8.1选择集 476
18.8.2要素实体服务 478
18.9应用程序示例 481
18.9.1编译和运行BuildMap应用程序 481
18.9.2创建AutoCAD Map 3D应用程序 482
18.9.3使用工具类 485
18.9.4实现命令 494
索引 497
参考文献 501
声明 502