现在的位置: 首页 > 综合 > 正文

ArcGIS Server Java ADF 案例教程 18

2013年08月05日 ⁄ 综合 ⁄ 共 896字 ⁄ 字号 评论关闭

五 自定义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是点击居中前后的地图。

抱歉!评论已关闭.