您的位置:首页 > 编程语言 > Java开发

ArcGIS Server Java ADF 案例教程 20

2009-04-28 13:47 344 查看
七 自定义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();

}

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



好了,试着点击这个按钮,再在地图上点击,是不是地图以点击处居中了?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: