当前位置: 首页 > news >正文

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类。

相关文章:

  • LeetCode -- Maximal Square
  • ArcGIS Server Java ADF 案例教程 18
  • LeetCode -- Summary Ranges
  • ArcGIS Server Java ADF 案例教程 19
  • ArcGIS Server Java ADF 案例教程 20
  • LeetCode -- Unique Paths
  • 警惕手机流氓软件的流行
  • LeetCode -- Combination Sum II
  • 学习百度、腾讯如何把产品做到极致(转载)
  • LeetCode -- Edit Distance
  • Leetcode -- Find Minimum in Rotated Sorted Array
  • SQL2005CLR函数扩展-树的结构
  • LeetCode -- Longest Consecutive Sequence
  • Flex与.NET互操作(八):使用FluorineFx网关实现远程访问
  • LeetCode -- Missing Number
  • python3.6+scrapy+mysql 爬虫实战
  • 2017-09-12 前端日报
  • Android交互
  • Bootstrap JS插件Alert源码分析
  • CSS 提示工具(Tooltip)
  • JS基础之数据类型、对象、原型、原型链、继承
  • leetcode386. Lexicographical Numbers
  • maven工程打包jar以及java jar命令的classpath使用
  • MySQL数据库运维之数据恢复
  • SSH 免密登录
  • Unix命令
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 服务器之间,相同帐号,实现免密钥登录
  • - 概述 - 《设计模式(极简c++版)》
  • ------- 计算机网络基础
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • gunicorn工作原理
  • # 计算机视觉入门
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • $NOIp2018$劝退记
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (30)数组元素和与数字和的绝对差
  • (Java)【深基9.例1】选举学生会
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET中winform传递参数至Url并获得返回值或文件
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [Android学习笔记]ScrollView的使用
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [BZOJ1053][HAOI2007]反素数ant
  • [C]整形提升(转载)
  • [C++]——带你学习类和对象
  • [Firefly-Linux] RK3568修改控制台DEBUG为普通串口UART
  • [Godot] 3D拾取
  • [GXYCTF2019]BabySQli1