在IDE的菜单中,你会看到有个很长的【ArcGIS Web Services Project】,别高兴,这不是给你自定义Web Service的,运行完向导你会发现生成的是一个Java桌面程序——有着一如既往丑陋的界面和很不友好的GIS功能。原来我一直当它是废物,不过前段时间它还真的帮了我大忙。我们有个测试需要测ArcGIS Server对Web Service的支持,要求必须抓取到浏览器与服务器交互的可读的SOAP消息;但是你要知道,考虑到效率ArcGIS Server内部都是用二进制的SOAP进行交互;要抓到可读的SOAP消息,ArcGIS的Web Service包必须被部署到浏览器端——最后,就是靠这个丑陋的“ArcGIS Web Services Project”,做了很多修改封装成了Applet才达到了这个要求。
扯远了,说了这么多其实只为了说明这样一点:“ArcGIS Web Services Project”是一个使用ArcGIS的Web Service类库实现一些GIS功能的Java桌面程序,演示意义大于应用意义。下面我们首先来讨论一下如何使用SOAP SDK来访问ArcGIS Server原生的Web Service;然后再谈谈怎么自定义Web Service,以便其它业务系统调用或出于其它目的的SOAP访问。
这里我们通过一个简单的功能来演示如何使用SOAP SDK来访问ArcGIS Server,调用一个Map Service的功能。不管你是在Java桌面、Applet、ADF还是自定义的servlet中,如果你需要直接使用SOAP和ArcGIS交互,那么下面的这段内容对你可能会有帮助。
这个简单的功能是“计算当前范围内的要素个数“,这个功能是如此的简单以至于我觉得看一下代码就可以明白了:
MapServerBindingStub mapserver = new MapServerBindingStub(url);
SpatialFilter filter = new
SpatialFilter();
filter.setFilterGeometry(mapDescription.getMapArea().getExtent());
filter.setSpatialRel(EsriSpatialRelEnum.esriSpatialRelIntersects
);
filter.setGeometryFieldName("SHAPE");
filter.setSubFields("*");
filter.setSearchOrder(EsriSearchOrder.esriSearchOrderSpatial
);
filter.setWhereClause("");
filter.setSpatialReferenceFieldName("");
filter.setSpatialRelDescription("");
int
count = mapserver.queryFeatureCount(“Layers”, 0, (QueryFilter) filter);
JOptionPane.showMessageDialog
(this
, "Feature count = " + count);
上面涉及到的各个ArcGIS的功能类都在com.esri.arcgisws包下,从命名上就可以看出这是专门为Web Service准备的。代码里用到的url是地图服务的地址,比如“http://host:8399/arcgis/services/name/MapServer“。在整个环节中你可能会对MapServerBindingStub的queryFeatureCount方法有一点兴趣,其实你打开ArcGIS帮助里的SOAP SDK,找到Map Services下面的QueryFeatureCount方法就可以看到,QueryFeatureCount需要3个参数,分别对应DataFrame名称、图层序号和QueryFilter,正与上面的代码相符。换句话说,com.esri.arcgisws包里的功能类就是SOAP SDK的Java实现。
可是,不管是ADF还是REST SDK都提供了比SOAP SDK好用多的调用ArcGIS Server功能的方法,所以想来你会和我一样,对上面的这些内容兴趣寥寥——我觉得ESRI对SOAP SDK也是兴趣寥寥,以至于在SOAP SDK的文档里几乎都没有Java的示例代码。
好了,让我们抛开ArcGIS提供的Web Service,来看看怎么自定义Web Service吧。我个人觉得自定义的Web Service是更加有用的,而且,功能也可以做得更强大。
分享到:
相关推荐
《ArcGIS Server Java ADF案例教程》是一本深入探讨地理信息系统(GIS)技术的专业书籍,主要聚焦于Esri公司的ArcGIS Server平台与Java Application Development Framework(ADF)的结合应用。ArcGIS Server是Esri的...
【ArcGIS Server Java ADF案例教程】是一份深入讲解如何使用ArcGIS Server与Java Application Development Framework(ADF)进行地理信息系统开发的教程。本教程旨在帮助IT专业人士,特别是那些在地理信息科学领域...
### ArcGIS Server Java ADF案例教程:深入解析与实践指南 #### 1. 引言:探索ArcGIS Server Java ADF的世界 ArcGIS Server Java ADF(Application Development Framework)为地理信息系统(GIS)开发者提供了一个...
### ArcGIS Server Java ADF 相关知识点 #### 一、概述 在2004年的第六届ArcGIS暨ERDAS中国用户大会上,林青(Cherry Lin)介绍了如何通过Java ADF(Application Development Framework)来开发和部署ArcGIS ...
### ArcGIS Server Java ADF 案例教程 #### 前言与背景介绍 《ArcGIS Server Java ADF 案例教程》是一本针对地理信息系统(GIS)开发人员的专业指南,旨在帮助读者深入了解如何使用Java应用程序开发框架(ADF)...
ArcGIS Server Java ADF案例教程提供了一个非常有价值的资源,对于那些希望深入学习和使用ArcGIS Server进行WebGIS开发的Java开发者来说,了解ADF选择JSF框架的原因以及JSF框架的特性是非常重要的。虽然参考资料有限...
接下来,《ArcGIS_Server_Java_ADF_案例教程》聚焦于使用Java Application Development Framework (ADF)开发GIS应用。ADF是Esri提供的一个基于Java的开发工具包,用于构建桌面和Web GIS应用。此教程可能包括: 1. ...
在Java环境下使用ArcGIS Server,我们可以利用ArcGIS Server for Java ADF(ArcObjects for Java Application Development Framework)进行开发,这是一种专门为构建GIS应用程序而设计的Java库。ADF提供了丰富的API...
《ArcGIS_Server_Java_ADF_案例教程》是针对地理信息系统开发的专业教程,主要关注如何使用ArcGIS Server的Java API(ADF,ArcGIS Data Framework)进行应用开发。ArcGIS Server是一款强大的地理信息处理平台,它...
ArcGIS Server 9.2相关的Web ADF Java Platform应用程序都是基于JavaServer Faces (JSF)框架构建的,用于创建互动式、地图驱动的Web应用程序。JSF是一个标准的Java EE组件模型,它允许开发者构建用户界面并与后端...
【ArcGIS Server Java 讲座】是一系列关于使用Java技术进行ArcGIS Server开发的文档,主要针对的是ArcGIS Server 9.2版本。这个讲座涵盖了多个主题,旨在帮助开发者理解和应用Java Server Faces (JSF) 技术以及...
这个“ArcGIS Server Java ADF 开发培训”教程将引导你逐步深入GISServer ADF Java的世界,通过理论学习和实践操作,提升你的GIS开发技能,使你能更好地利用Esri的平台构建高效、稳定的GIS应用程序。在学习过程中,...
ADF全称是Arcgis java Web Application Developer FrameWork,是为了开发web应用而生的一套开发框架,开发人员可以在ADF的基础上相对容易的开发出WEBGIS应用。
### ArcGIS Server 10 for Java 创建 Web ADF 实例详解 #### 一、概述 在当前电力行业的配网自动化项目中,为了更好地展现电网结构、进行停电模拟以及实时显示电网设备状态等功能,通常需要集成地理信息系统(GIS)...
在本文中,我们将探讨如何在MyEclipse中使用ArcGIS Server 10 for Java创建一个Web ADF实例。ArcGIS Server是一种强大的地理信息系统(GIS)平台,它允许开发者构建地图服务和应用程序,以便在Web环境下提供地理信息...
标题与描述均提到了“定制Java Arcgis server 9.2 Web Tasks WebADF”,这表明内容将围绕在ArcGIS Server 9.2环境下,利用Java技术进行WebADF(Web Application Development Framework)的自定义Web任务开发展开。...
### 构建基于ArcGIS Server Web ADF与Ajax的Java应用程序 #### 一、课程概述与目标 在本次由ESRI Developer Summit 2008提供的培训课程中,主题为“构建基于ArcGIS Server Web ADF与Ajax的Java应用程序”,旨在...
《ArcGis_Server10_for_java创建Web_Adf实例.doc》可能是关于如何使用ArcGIS Server 10与Java Web ADF创建实例的详细教程。这份文档可能涵盖了如下内容: 1. **环境配置**: 如Java SDK、ArcGIS Server SDK for Java...
本篇文章将基于提供的文件信息,深入解析如何使用Java进行ArcGIS Server 9.2 Web应用开发的关键知识点,包括工作坊资料获取、演示文稿大纲、Web ADF任务框架及其配置,以及定制任务的实现。 ### 获取工作坊资料 ...