第1章 ArcGIS Server JavaScript API介绍 1
1.1 ArcGIS JavaScript API版的“Hello World” 1
1.2 ArcGIS Server JavaScript API是什么 5
1.2.1 ArcGIS Server JavaScript API的构成 5
1.2.2 ArcGIS Server JavaScript API与REST 6
1.2.3 ArcGIS Server JavaScript API与Dojo 11
1.3 为什么需要ArcGIS Server JavaScript API 14
1.4 开发与调试工具 15
1.4.1 集成开发环境 16
1.4.2 调试工具 18
1.4.3 Firebug 20
1.4.4 其他工具软件 32
1.5 Dojo基础知识 38
1.5.1 JavaScript对象 38
1.5.2 函数也是对象 38
1.5.3 模拟类与继承 40
1.5.4 使用模块与包管理源代码 48
第2章 页面布局设计 53
2.1 使用布局小部件设计页面框架 53
2.1.1 小部件与布局小部件简介 53
2.1.2 使用面板组织页面元素 54
2.1.3 使用容器小部件设计页面布局 62
2.2 可移动的小部件微架构 66
2.2.1 自定义小部件的基础知识 67
2.2.2 内容小部件基类的实现 76
2.2.3 可移动的框架小部件 86
2.2.4 测试 95
2.3 集中控制的小部件微架构 97
2.3.1 可集中控制的框架小部件 97
2.3.2 小部件容器 99
2.3.3 测试 105
2.3.4 Dojo的订阅/发布模式的事件处理机制 107
2.4 使用菜单组织功能 108
2.4.1 菜单容器小部件 108
2.4.2 菜单项小部件 110
2.4.3 菜单小部件 112
2.4.4 测试 116
第3章 地图与图层 119
3.1 图层操作 119
3.1.1 图层类及其之间的继承关系 119
3.1.2 实现图层控制器功能 121
3.2 地图操作 130
3.2.1 地图窗口操作 131
3.2.2 地图属性获取 135
3.2.3 事件处理 143
3.3 地图参数基本配置 145
3.3.1 漫游与缩放动画参数配置 145
3.3.2 比例滚动条参数配置 146
3.4 获取地图图例 147
3.4.1 图例小部件 147
3.4.2 测试 150
3.5 自定义图层 153
3.5.1 WMS图层 154
3.5.2 自定义缓存图层 155
3.6 地图打印输出 160
3.6.1 用于地图输出的自定义图层 160
3.6.2 融合图像的自定义HTTP处理程序 162
3.6.3 地图输出布局页面 164
3.6.4 初始页面 166
第4章 空间参考系统与几何对象 170
4.1 空间参考系统 170
4.1.1 空间参考系统类 170
4.1.2 投影转换 175
4.2 几何对象 177
4.2.1 几何对象类及其之间的继承关系 177
4.2.2 几何对象的绘制 178
第5章 符号与图形 189
5.1 符号 189
5.1.1 标记符号 190
5.1.2 线符号 190
5.1.3 填充符号 191
5.1.4 文本符号 192
5.2 图形 197
5.2.1 图形对象的构成 198
5.2.2 InfoTemplate与InfoWindow 198
第6章 空间分析功能 209
6.1 图形查询属性 209
6.1.1 利用IdentifyTask实现空间查询 209
6.1.2 利用QueryTask类实现空间查询 215
6.1.3 表格形式显示查询结果 219
6.1.4 图形化表达查询结果 225
6.2 属性查询图形 235
6.3 几何服务 240
6.3.1 缓冲区分析 241
6.3.2 确定空间关系 244
6.4 地理处理服务 247
6.5 地理编码 250
6.5.1 地址匹配 251
6.5.2 反地理编码 254
6.6 最优路径分析 257
6.7 数字高程模型分析 261
6.7.1 视域分析 261
6.7.2 剖面线绘制 264
第7章 Google地图JavaScript扩展 269
7.1 Google地图API简介 269
7.1.1 Google地图API使用基本框架 269
7.1.2 其他常用的类与函数 272
7.2 使用ArcGIS Server服务 276
7.2.1 在Google地图中增加ArcGIS Server地图 276
7.2.2 空间分析 279
7.3 与Dojo联合使用的模板 282
7.3.1 界面设计 282
7.3.2 界面初始化 286
7.3.3 功能实现 289
第8章 微软Bing地图JavaScript扩展 293
8.1 微软Bing Maps地图控件简介 293
8.1.1 显示地图 293
8.1.2 控制地图 296
8.1.3 在地图中添加标注 302
8.2 使用Bing地图JavaScript扩展 307
8.2.1 在Bing地图中加入ArcGIS Server服务 307
8.2.2 使用ArcGIS Server空间分析服务 308
第9章 与其他Ajax框架融合 324
9.1 几个主流Ajax框架 324
9.1.1 jQuery 325
9.1.2 Mootools 325
9.1.3 Ext JS 326
9.2 jQuery融合 326
9.2.1 在Visual Studio 2008中设置jQuery智能提示 326
9.2.2 jQuery使用基础 327
9.2.3 使用jQuery的滑块替代Dojo的比例尺滑块 332
9.3 与Ext JS融合 336
9.3.1 Ext JS使用基础 336
9.3.2 与Google地图API融合实例 341
第10章 其他类似的地图JavaScript API 353
10.1 Geocortex Essentials JavaScript API 353
10.1.1 Geocortex Essentials的架构 353
10.1.2 Geocortex Essentials JavaScript API的功能 355
10.1.3 基于站点的应用开发模式 355
10.1.4 Geocortex Essentials JavaScript API的基本使用 357
10.1.5 报表功能 358
10.2 OpenLayer 365
10.2.1 OpenLayer的使用基础 366
10.2.2 对各种来源的地图的支持 366
10.2.3 访问GeoJSON数据 369
10.3 其他一些地图API 374
10.3.1 Mapstraction 374
10.3.2 Web Maps Lite API 375
10.3.3 Yahoo!Maps AJAX API 377
第11章 融入式地图应用实例 380
11.1 根据IP地址在地图上显示用户位置 380
11.2 融入维基百科 382
11.2.1 GeoNames 382
11.2.2 实例 383
11.3 融入Flickr的相册服务 392
11.3.1 Flickr的相册服务 392
11.3.2 实例 393
第12章 单元测试 399
12.1 JavaScript单元测试工具与框架 399
12.1.1 YUI Test 399
12.1.2 QUnit 403
12.1.3 FireUnit 406
12.2 JsUnit测试框架的使用 409
12.2.1 TestRunner 409
12.2.2 编写测试 410
12.2.3 在TestRunner中使用查询串 415
12.3 DOH测试框架的使用 416
12.3.1 使用Firebug显示测试结果 417
12.3.2 使用Runner运行单元测试 419
12.3.3 小部件与异步测试 423
第13章 性能测试与调优 430
13.1 性能测试工具及其使用 430
13.1.1 利用性能测试工具 430
13.1.2 利用计时器手工计时 434
13.1.3 利用Visual Studio Trace 437
13.2 影响性能的几个方面与改进 438
13.2.1 服务器的响应 438
13.2.2 网络传输时间 441
13.2.3 客户端的处理 445
13.3 解决Dojo性能的技巧 448
13.3.1 配置Dojo系统参数 449
13.3.2 延迟加载和缓存Dojo内容 449
13.3.3 减少小部件使用 451