ESRI在JAVA ADF中做了很多的工作,其中很重要的一个部分是WebQuery。WebQuery用来对ArcGISServer和ArcIMS进行查询,然后在ADF这一端对地图进行渲染。比如说高亮显示,用图片进行渲染等等。
geom是一个WebGeometry类的实例,它可以从客户端触发的MapEvent类中得到。 |
大家打开faces-config.xml,mapContext里面由没有query,如果有,用上面的代码就可以得到WebQuery。得到了WebQuery,就可以大干一场了,可以用下面的办法进行空间查询:
ic就是IdentifyCriteria,lyrList是一个查询目标层的列表,目标层可以是一个,也可以是多个,比如可以用下面的方法得到所有可以查到的图层:
当然,如果你不想查所有的图层,也可以让用户进行选择,选择哪个需要查询的图层。 现在来说说查询返回的结果,我们可以看到结果是一个List,List里面是什么?List里面的对象是QueryResult.。你可以循环得到里面的每一个QueryResult,并把它们高亮显示:
Highlight采用什么颜色,什么标志进行高亮显示,也是我们可以自己控制的,我个人的喜好是用红色,跟张艺谋一个水准,我们可以把显示符合加到query里面:
同样,你可以设置线的颜色和多边形的颜色。这样就可以按照你需要的颜色进行高亮显示了。
当然QueryResult的功能不止能高亮显示,你还可以得到查询结果集的每一个字段的值,用result.getDetails()方法即可得到一个Map,里面有所有结果的字段名和字段值。
最后有说明的是,以上所有的代码对于ArcGIS Server和ArcIMS都同样适用,Enjoy。
来源:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=5218&extra=&page=1