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

ArcGIS Server Java ADF 案例教程 25

2013年11月30日 ⁄ 综合 ⁄ 共 928字 ⁄ 字号 评论关闭

二 几何对象查询

在上一章的QueryTask中也有对几何对象的查询,你可以回忆一下那个Task面板中“选择”那个Tool。这个Tool会在Map中绘制一个多边形,然后ADF根据这个多边形查询位于多边形内的所有要素。

几何对象的查询主要使用IdentifyCriteria对象,下面的代码实现了这样一个根据多边形查询要素的功能:
WebContext webContext = event.getWebContext();

WebGeometry webGeometry = (WebPolygon) event.getWebGeometry().toMapGeometry(webContext.getWebMap());

WebQuery webQuery = (WebQuery) webContext.getAttribute("query");

List

layers = webQuery.getQueryLayers();

List

queryLayers = new ArrayList

();

for (WebLayerInfo layer : layers)

{

if (layer.getName().equals("World Cities"))

{

queryLayers.add(layer);

break;

}

}

IdentifyCriteria identifyCriteria = new IdentifyCriteria();

identifyCriteria.setWebGeometry(webGeometry);

List

listQueryResult = webQuery.query(identifyCriteria, queryLayers);

在这个查询过程中,首先从MapEvent事件中获得从客户端传来的WebGeometry对象(这里是用户在客户端的Map中画的多边形),这个对象是基于客户端坐标的,因此需要转化成地图坐标。由于我们只想查“World Cities”这个图层上的要素,因此下面又构造了一个queryLayers,将我们想要查询的图层挑选了出来。在此之后,我们就可以使用IdentifyCriteria对象,将ADF转化成地图坐标的WebGeometry对象作为它的参数,进行查询得到结果。

【上篇】
【下篇】

抱歉!评论已关闭.