arcgisserver学习文档.docx

上传人:b****2 文档编号:2454992 上传时间:2022-10-29 格式:DOCX 页数:78 大小:1.67MB
下载 相关 举报
arcgisserver学习文档.docx_第1页
第1页 / 共78页
arcgisserver学习文档.docx_第2页
第2页 / 共78页
arcgisserver学习文档.docx_第3页
第3页 / 共78页
arcgisserver学习文档.docx_第4页
第4页 / 共78页
arcgisserver学习文档.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

arcgisserver学习文档.docx

《arcgisserver学习文档.docx》由会员分享,可在线阅读,更多相关《arcgisserver学习文档.docx(78页珍藏版)》请在冰豆网上搜索。

arcgisserver学习文档.docx

arcgisserver学习文档

概念学习部分

OverviewoftheWebADFArchitecture

当你做第一个例子之前,对webadf架构有个高层次概观.在webadf架构中有三层.第一层是view或者说客户层,是由webcontrols组成;最底层的是GIS业务对象层或者说modeltier2;在这两个之间的是modeltier1objects,它调解viewtier和GIS业务对象(figure1)

Figure1webadf的高层次的对象概观.请注意图形中的"Model"符合MVC模式.(...)代表其他类似的对象.

Controls是第一层,它们在MVC架构中包含view/controller部分.Controls同时存在于view和controller层,因为他们不仅和客户端交互并且输出给客户端,并且在request生命周期影响应用流程.Controls的JavaDoc可以在包ponent.找到.

Controls底下的层是MVC架构的第一层model层;是一些和Webcontrols直接工作的数据对象.这些对象通常和业务对象在其他层相连接但也不是必须的.这层的控制对象WebContext,它不仅控制对数据资源的连接并且协调这个层其他对象之间的状态.因为这个原因,所有其他的对象都在context里注册为属性.作为context的属性并且执行一个我们后面将要说的接口,它们将被通知应用状态的改变和webadf提供的request生命周期.

这层的其他对象,例如webmap和webgeocode,包含他们所代表的control的信息。

例如如果你察看webmap的javadoc,有属性关于输出图形的像素,高度和宽度,还有图形显示得很多的属性。

也有很多图形操作的方法,例如,centerAt和getCurrentExtent。

你可以通过这些方法得到functionality,并且不用直接调用服务器对象。

相似的属性和方法,在这个层的其他对象也具有。

这些对象的javadoc可以查看包com.esri.adf.web.data。

在这个包里也有modeltier2的借口和基类。

这些对象,诸如GISResourceMapFunctionality,和表现层没有任何关系;而是他们和GIS数据和分析相联系。

在这层有两个对于webadf至关重要的两个父对象,GISResource和GISFunctionality。

GISResource是webadf将要用来显示和分析的数据来源,GISFunctionality是对于特定的GISResource用来exposeGIS/mappingfunctionality。

例如,webadf有AGSMapResource,他是GISResource的一个具体实现用来和ArcGISServerMapServer数据资源协同工作。

这个资源将连接服务器,并且被functionalities所用,例如AGSMapFunctionality,调用服务器。

在应用中,对于每一种不同的数据资源一定有GISResource的子类与之对应。

Webadf有以下资源:

1、ArcGISServerusingtheServerAPI

2、ArcGISServerusingWebservices

3、ArcIMSServerusingtheJavaConnector

4、ArcWebServicesusingWebservices

5、WMSServers

6、ArcGISServerEJBs

对于和webadf框架资源,他必须和context相关联。

因为context是其他数据对象的控制对象,他协调从适当的资源中获得信息并且更新controls。

GISFunctionality接口可以被任何为特定的GISResources提供functionalities的类实现。

它有一些子类,象GeocodeFunctionality为geocoders,或者TocFunctionality,为创建一个图形列表的内容表。

为一种数据资源exposeafunctionality,必须有一个具体的类。

特定的数据资源不支持特定的functionalities。

比如,没有为WMSserver的geocodefunctionality。

下面是文章的关键几点:

1、webadf中有三层:

a.Theview/controllertierwiththeWebcontrols

b.第一次层提供一些业务逻辑并且扮演web层次和纯业务逻辑层的媒介物。

c.第二层提供访问gis数据源并且为这些数据源提供功能。

2、在modeltier1中,控制对象是context,其余的对象controls要成为context的属性才能正确的工作。

3、在modeltier2中,对于每种数据资源,都要有GISResource的具体实现类。

4、对于和每种资源协同工作的controls都必须在context中注册。

5、在modeltier2中,对于每种数据资源的每种functionality,都要有GISFunctionality的具体实现类。

6、对于每个提供功能的modeltiers,你可以使用别切不用和服务器直接交流。

WiththisunderstandingofJSFandtheArcGISWebADF,youcanmoveontobuildingyourfirstJSFapplicationusingeithertheArcGISServerWebADFJavaPlatformconnectingtoArcGISServerortheArcIMSWebADFJavaPlatform.

通过对jsf和arcgiswebadf的了解,你可以继续你的第一个jsf的应用ArcGISServerWebADFJavaPlatform或者ArcIMSWebADF

JavaPlatform。

SimpleArcGISServerWebADFJavaPlatformApplication

现在你能够更加理解JSF框架了,你将要建立一个可以让用户放大缩小和全图的一个web应用。

这个例子中覆盖了ESRIWebADF的基础。

这篇文章假设你对JSF框架和javaweb

应用很熟悉。

这个例子应用标题为“ags_simple”,它包括ArcGISServerfortheJavaPlatform.。

这篇文章假设有一个services对象叫"usa"运行在server对象上,这个文件可以在/samples/data/mxdsdirectory中找到。

实际的例子可以使用不同的server对象,这将有不同的username,password,domain,和host.运行之后效果如图。

在这个例子中只需要检查2个文件,faces-config.xml,可以在WEB-INF文件夹找到;map.jsp可以在webapplication的根目录下找到。

faces-config.xml用来连接业务对象(businessobjects:

webADFframework一部分),将这些对象展现给view/web层,给应用选择最适合的GISservers,并在适当的地方提供授权信息。

Map.jsp包含JSP标签用来地图应用的表现,比如一张地图,一个内容表(TOC),和地图协同工作的工具集。

用来显示的数据在faces-config.xml中配置。

Faces-config.xml文件

Contextcontrol

当你打开faces-config.xml文件,第一个看见的managedBean是WebContext(context),context是一个modeltier1组件,context也扮演modeltier1组件们的管理者。

它连接datasources和controls,并且当一个action需要一个refresh时候,协调control。

如果想使这次协调起作用,所有的modeltier1组件们必须在context中注册成为被管理属性。

这些属性(象WebQuery)都存储在属性的HashMap中.这个属性的HashMap也可以加一些你自己的类,如果你想context管理,象用户名,其生命周期就和context一致了。

在这个XML文件中每一个modeltier1都用JSFexpressionlanguage(EL)语言取了一个名字,用来关联一个在文件后面出现的managedBean。

例如,这个片段

attributes

map

#{map}

存储遵照key,map,一个叫map的managedbean.因为controls使用modeltier1对象来访问

和管理数据,所以每一个JSP页面上的control一定要有一个合适的modeltier1对象注册在

context中。

这些tier1对象在第一次使用应用的时候被加载进内存。

因此,如果你让一个在属性列表(attributeslist)中的tier1对象,不让其标签添加到页面上,它将永远不会实例化。

例如,如果你写了一个单纯的地图应用,但是没有一个geocodetier1对象的入口,geocode对象将永远不会被实例化。

Contextcontrol中唯一另外的信息是应用的一列资源(resources)。

这将是应用中所要使用的数据的每一个数据源的入口。

另外,每一个资源在语法上使用JSF-EL来关联一个包含合适连接信息的managedbean。

这个片段显示出一个managedbean,ags;在这种情况下,是一个ArcGIServer连接:

resources

#{ags1}

声明resources和functionalities

每一种和context相关联的resource都需要一个managedbean来处理和特定datasource的交互。

在这个例子中:

你将只有一个resource,而这个resource使用ArcGISServer.下面是一个ArcGISServer的例子:

ags1

com.esri.adf.web.ags.data.AGSMapResource

none

user

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1