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

ArcGIS Server Java ADF 案例教程 20

七 自定义Button实现前面的Command和Tool【案例】

在这一章前面的小节中,我们实现了两个案例分别演示Command和Tool的功能;在这个案例里,让我们用Button来完成相同的工作。
首先,我们需要在一个我们自己定义的ManagedBean 来实现这些功能。注意,在这个ManagedBean中我们会使用WebContext对象(否则怎么调用地图功能),因此,我们这个类定义需要实现WebContextInitialize接口。当然,在IDE中有更简单的方法,比如在Eclipse中选择菜单【New】-【Context Attribute】就可以新建一个ManagedBean并添加到WebContext对象的attributes中去。
好了,现在我们已经有了自己的ManagedBean类“MapEditor”;接下来我们先实现地图等比放大的功能。在这个类中,我们添加一个不带任何参数的方法zoomIn,在zoomIn实现地图放大一倍的功能。源代码如下:
package wuyf;

import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.WebContextInitialize;

public class MapEditor implements WebContextInitialize
{
private WebContext webContext;

public void destroy() {}

public void init(WebContext context)
{
this.webContext = context;
}

public void zoomIn()
{
webContext.getWebMap().getCurrentExtent().expand(0.5);
webContext.refresh();
}
}

在页面中用如下的标签进行定义:

这个时候,你在页面上点击这个Button的时候,地图也会放大一倍了。
下面我们接着去实现点击地图居中,和上面类似,只不过实现这个功能的方法需要带一个MapEvent参数:
public void centerAt(MapEvent event)
{
WebPoint webPoint = (WebPoint)event.getWebGeometry().toMapGeometry(webContext.getWebMap());
webContext.getWebMap().centerAt(webPoint, 1.0);
webContext.refresh();
}

在页面中定义的标签则如下:

好了,试着点击这个按钮,再在地图上点击,是不是地图以点击处居中了?

相关文章:

  • 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
  • [Windows编程] Windows 7 对多核的支持
  • LeetCode -- Palindrome Linked List
  • SSH客户端设置环境变量
  • LeetCode -- Search for a Range
  • 老子生平
  • 〔开发系列〕一次关于小程序开发的深度总结
  • ES6简单总结(搭配简单的讲解和小案例)
  • MySQL几个简单SQL的优化
  • PHP 7 修改了什么呢 -- 2
  • Puppeteer:浏览器控制器
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 记录:CentOS7.2配置LNMP环境记录
  • 聊聊directory traversal attack
  • 浏览器缓存机制分析
  • 前端js -- this指向总结。
  • 前端路由实现-history
  • 区块链共识机制优缺点对比都是什么
  • 首页查询功能的一次实现过程
  • 在Mac OS X上安装 Ruby运行环境
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (已解决)什么是vue导航守卫
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net core控制台应用程序初识
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net 发送邮件
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .Net 知识杂记
  • @requestBody写与不写的情况
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [1204 寻找子串位置] 解题报告