2009年4月28日星期二

ArcGIS Server Java ADF 案例教程 17

四 Tool

Tool是另外一种按钮,虽然它在外观上和Command可能没什么区别,但是当Tool被点击以后,地图状态就进行了改变。比如我当前默认对地图的操作是漫游,通过点击一个Tool,接下来在地图上的点击可能就变成了放大操作——与地图交互,这就是Tool的作用。

以下代码定义了一个“使地图处于漫游状态”的Tool:

Tool定义时两个最重要的属性就是clientAction和serverAction。clientAction定义的是在浏览器端执行的操作,比如这里的“EsriMapContinuousPan”代表浏览器端执行的是连续漫游操作——当然,比如你需要在地图里画个多边形之类的操作也可以使用其它的定义,可用的操作大概如表 1所列:
EsriEditingLine 编辑直线 EsriMapLine 画直线
EsriEditingPoint 编辑点 EsriMapMouseWheel 滚轮滚动
EsriEditingPolygon 编辑多边形 EsriMapOval 画椭圆
EsriEditingPolyline 编辑多线 EsriMapPan 漫游
EsriMapCircle 画圆 EsriMapPoint 画点
EsriMapContinuousPan 连续漫游 EsriMapPolygon 画多边形
EsriMapImage 添加图片 EsriMapPolyline 画多线
EsriMapKeyNavigation 键盘导航 EsriMapRectangle 画矩形
表 1 浏览器端支持的操作列表

当用户在浏览器执行了操作以后,ADF会把这个操作相关的信息发送到服务器,然后Tool的serverAction属性中定义的这个类就起作用了。比如上面的这个Tool,服务器接到请求以后会通过PanToolAction的定义对请求过来的参数进行处理(比如向右漫游100个像素),经过一系列计算以后它更新服务器端的WebMap等对象的状态,所有工作完成以后再调用WebContext的refresh方法进行刷新,随后输出响应到浏览器。

serverAction指向的类主要需要实现MapToolAction 接口,在下面的案例中,我们会实现一个自己的ToolAction类。

没有评论: