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

ArcGIS Server Java ADF 案例教程 18

五 自定义Tool实现点击地图居中【案例】

在这一小节中,我们通过自定义一个Tool来激活这样的地图功能:每次点击地图,都以这个点击点为中心使地图居中。

如下,我们新建了这样一个类CenterAtToolAction:

import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.faces.event.MapEvent;
import com.esri.adf.web.faces.event.MapToolAction;

public class CenterAtToolAction implements MapToolAction
{
public void execute(MapEvent event) throws Exception
{
WebContext webContext = event.getWebContext();
WebPoint webPoint = (WebPoint)event.getWebGeometry().toMapGeometry(webContext.getWebMap());
webContext.getWebMap().centerAt(webPoint, 0.5);
webContext.refresh();
}
}


这个类的关键是实现了MapToolAction的execute方法,当一个Tool被激活,并在地图上进行了操作以后,一个请求就会被发送到服务器,对应的MapToolAction的execute方法就会被执行。

这里,我们通过MapEvent的获得WebContext和WebGeometry 对象。比如我们在浏览器中点击了一下,那么WebGeometry就是一个点对象,当然,这个点坐标是基于屏幕坐标的,我们需要调用它的toMapGeometry方法转化成地理坐标。

当这些准备工作完成以后,我们就可以使用WebMap的centerAt方法使地图居中,随后刷新WebContext输出响应到浏览器。

如图 11是点击居中前后的地图。

相关文章:

  • 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
  • [Windows编程] Windows 7 对多核的支持
  • LeetCode -- Palindrome Linked List
  • android图片蒙层
  • Angular 响应式表单 基础例子
  • Docker容器管理
  • JavaScript设计模式之工厂模式
  • java概述
  • Js基础知识(四) - js运行原理与机制
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Less 日常用法
  • Linux中的硬链接与软链接
  • Python中eval与exec的使用及区别
  • SegmentFault 2015 Top Rank
  • ubuntu 下nginx安装 并支持https协议
  • webpack+react项目初体验——记录我的webpack环境配置
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 电商搜索引擎的架构设计和性能优化
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 算法-图和图算法
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 终端用户监控:真实用户监控还是模拟监控?
  • 最近的计划
  • C# - 为值类型重定义相等性
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​linux启动进程的方式
  • ​如何在iOS手机上查看应用日志
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Linux(权限管理)
  • $forceUpdate()函数
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (6)STL算法之转换
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (分布式缓存)Redis哨兵
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (十) 初识 Docker file
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)Windows2003安全设置/维护
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (转载)从 Java 代码到 Java 堆
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈