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

ArcGIS Server Java ADF 案例教程 20

2013年09月26日 ⁄ 综合 ⁄ 共 1120字 ⁄ 字号 评论关闭

七 自定义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();

}


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


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

抱歉!评论已关闭.