文档库 最新最全的文档下载
当前位置:文档库 › 基于java的arcgis server开发

基于java的arcgis server开发

基于java的arcgis server开发1

1、前言------为什么我们选择JSF,而不是其它framework 1

2、ArcGIS Server Java开发JSF基础2

3、ArcGIS Server Java ADF开发的JSF知识介绍5

4、ArcGIS Server 开发初步-- 自定义工具7

5、使用图片和TrueType字体进行标注9

6、Server Java讲座-----扩展Tasks框架13

7、Server Java 开发实战---自定义command 19

8、ArcGIS Server Java 讲座--ADF 体系结构第一部分21

9、ArcGIS Server JA V A讲座--实现后台JSF Bean和前台Javascript的联动24

10、ArcGIS Server JA V A讲座--AJAX基础25

11、ArcGIS Server JA V A开发讲座--- ADF中的Ajax函数27

12、ArcGIS Server Java讲座--如何在用JSF在服务器端处理Ajax请求29

13、ArcGIS Server Java讲座----利用Ajax得到当前地图的比例尺(服务器端)32

14、ArcGIS Server Java讲座--用Ajax得到地图比例尺(客户端代码) 33

15、ArcGIS Server JA V A 讲座自定义Functionality 35

16、ArcGIS Server Java讲座---用自定义functionality实现用户权限控制37

17、Server Java讲座-----扩展Tasks框架42

18、ArcGIS Server Java讲座--自定义Tools开发48

19、ArcGIS Server Java讲座-空间查询和高亮显示的实现52

20、Server Java 自定义开发-Network Analysis 54

21、ArcGIS Server开发——控制图层是否可见59

22、航线查询问题-Server Java的实现方法59

23、ArcGis 航线查询完全例子64

24、ArcGis Server 中如何在Task中实现下拉列表和checkbox 和radiobutton.(完整例子)73

25、ArcGIS Server开发——标注74

26、ArcGIS Server Java开发--Born for SOA系列前言75

27、ArcGIS Server Java开发--Born for SOA系列Web Service基础75

28、ArcGIS Server Java讲座:Born For SOA--Server对于SOAP的支持81

29、Server Java开发--Born for SOA系列通过代理类访问ArcGIS Server Web Service 84

1

1、前言------为什么我们选择JSF,而不是其它framework

在正式开讲之前,我们来探讨一下为什么要使用JSF来实现SERVER ADF,这也是很多开发商跟我讨论时经常会问到的问题。

世界上有300种Java的framework,这个数字是我几个月前听到的,现在可能已经不止这个数了。我曾经用过的framework包括Structs,Hibernate,Spring。这些framework不但能加速开发,而且会带来全新的程序设计理念。我当时的感觉是:原来程序还可以这样写!当然,这些framework 都是开源免费,你不用担心自己的良心受到谴责,也不用担心比尔盖茨半夜敲门收钱。

在这300多种framework中,ESRI为什么选择了JSF?各个framework有各个framework的好处。JSF最大的优点就是:像Swing 和AWT 一样,JSF 是一个可以提供一组标准的、可重用的GUI 组件的开发框架。

原因之一:行为与表示的完全分离。

行为和表现不分离的一个典型例子是普通的JSP 技术,这一技术很好,因为很容易在HTML(和类HTML)页面中混合Java 代码。这样我们就可以使用强大的Java API的功能。当然,很明显的坏处是行为表现黏合在一起。而且代码不容易重用。这让我想起刚使用JSP技术时,在文本编辑器下写JSP页面,读写数据库,并且在同一个页面上显示出来的痛苦回忆。

Model1架构的出现使开发人员可以用javabean的方式进行开发,舒服多了。当然,还有更好的。

这就不得不提到著名的MVC结构,(MVC) model-view-controller架构提供了一系列的设计模式,这些模式让你可以轻松地应用于程序地开发,特别是有界面程序的开发。现在又有多少的程序是没有界面的呢?

Model包装了商业逻辑,也包含了数据持久的代码,包括存取数据库或者存取文件。Model最好不要跟View有任何关系,它最好不要知道谁将显示结果,是一个Swing界面,还是JSF界面,还是普通的JSP界面。为了做到这一点,事先的规划要花一些时间,但是相信我,这些花的时间带来的价值将超过你的想象。如果设计得当,许多用ArcGIS Engine开发的代码可以轻松在Server中使用,不需要修改任何代码。.net也是一样。

View只用来显示显示逻辑,不能有任何商务逻辑。controller是view和model的桥梁,它和model 进行交互,并且把结果显示在Model中。显示页面的选择也由controller进行选择。我会在后面的讲座中详细解释JSF中的Controller的实现。

Structs,Spring都实现了MVC的架构。但是它们都没有像JSF这样,提供一个事件驱动的组件对象模型。大家可以想一想,一个平常在HTML中使用的标签, ,在JSF框架中变成了一个组件,这个组件还可以有事件,而且可以对这个事件可以进行编程。这是多么得激动人心啊!GIS程序需要和用户进行良好地交互,选择一个事件驱动的framework,可以更加容易编程和实现。

1

原因之二: 事件容易捆绑到服务器端代码。

JSF提供了多个事件驱动的GUI控件, 比如最最常见的command button。这些command button会产生事件,我们有机会对事件进行编程;我在以前的讲座中曾经讲过,ArcGIS Server的MapControl

和command button是兄弟,他们都继承自https://www.wendangku.net/doc/7c6568982.html,ponent.UICommand;是不是感觉很奇妙啊?继承自UICommand的原因是要利用UICommand的很多事件,对鼠标在Map Control上的动作,比如放大,缩小,需要产生事件,这些事件提交到相应的监听器,监听器会对事件进行处理。有关于MapControl的问题先提这些,在后面的讲座中我会详细解释。

举一个简单的例子吧,一个最简单不过的fullextent工具,如果我自己来写,可以写成这样:

actionListener="#{getMapBean.getFullMap}" />

这个按钮,用来缩放到全图,它的监听器是绑定到getMapBean的getFullMap方法,在该方法里面,我会将地图的大小缩放到全图范围。代码我会稍后贴上来。这就是JSF的事件捆绑到服务器代码的功能。普通的一个button,点击事件可以映射到后台Bean的某一个方法,在后台方法里面执行商业逻辑,进行数据存取。这个概念跟普通的Swing程序的事件和监听器机制十分类似,Java程序员们看了肯定倍感亲切。注意,刚才这个button没有利用任何ADF的类,在我们的ADF中,所有要建大厦的材料都已经给您准备好,fullExtent功能只需要三行代码即可实现。

事件容易捆绑到服务器端代码,这是ESRI选择JSF作为我们ADF底层的另外一个重要的原因。

2、ArcGIS Server Java开发JSF基础

有很多开发人员问我,如果我已经有了一个JSP的Application,为了使用JSF,为了使用我们新版的ArcGIS Server的Java ADF,我需要重新修改写我的程序以让它们适应整个JSF框架么?这是一个很有意思的问题,我可以想象出大家头皮发麻,左右为难的感觉,这也引出了今天的话题,Servlet容器是如何对JSF的程序进行处理的呢?

随便找一个JSF的Application,可以是我们的ArcGIS Server的Sample,也可以是任何您从网上下载的JSF例子,打开web.xml文件,你就可以看到该文件里面有如下的servlet映射:

Faces Servlet

javax.faces.webapp.FacesServlet

1

Faces Servlet

*.jsf

2

这是Java程序员最熟悉不过的Servlet配置了,该Servlet映射是什么意思呢?将所有对后缀名为jsf的请求,都交由javax.faces.webapp.FacesServlet来处理。哦,另外插一句,JSF的标准是公开的,如果你觉得这个FacesServlet不好,你大可以自己写一个JSF处理Servlet。将所有对jsf的请求自己来处理。事实上,已经有人这么做了,这就是Myfaces,可以参考Apache的网站。

言归正转,如何将JSF的应用集成到已经有的应用程序中呢,您一定已经想到了。事实上事情很简单,在访问某个JSF页面的时候,映射到某个目录即可。这个目录在web.xml进行了设置,比如下面的配置就可以把所有的对faces的请求,让Face Servlet来处理:

Faces Servlet

/faces/*

所以,如果你在根目录了放了一个hello.jsp页面,这个jsp页面使用了JSF框架,那么你在访问这个jsp页面时用http://servername/faces/hello.jsp就可以了,你的容器会把这样的请求提交Face Servlet来处理,这个时候,就轮到Face Servlet来大显身手了,它会忠实地执行你的请求。

JSF的Managed Bean是保存在session中的,所以你在JSF页面和普通JSP之间切换页面的时候,不会丢失信息,反过来也一样。JSF自己有自己的Page Navigation系统,但是它仍然可以跟普通的JSP页面互相切换,我们在后面的讲座中会讲到。

所以如果你已经存在的一个项目,想上我们的ArcGIS Server,利用其基于JSF的ADF进行开发,也是完全可以的。当然,新的应用最好用JSF框架开发,开始时可能需要一点时间去学习,对于你后面会用到的强大的JSF的功能,这些投资是完全值得的。

欢迎大家进入美妙的JSF的世界。

了解了Servlet是如何处理你的JSF请求的,那么接下去我们来看看,让JSF程序跑起来需要什么必要条件,一个Servlet容器是必需的,这个一般取决于公司给我们配什么,或者客户要求什么。一般免费的好选择是Tomcat,价格便宜量又足,我们大家都用它。当然如果项目大,经费充足,IBM的J2EE容器Websphere和Bea公司的Weblogic也是一个好选择。选用大公司J2EE容器有一个好处,即使三更或者五更出了问题,你照样可以拍着桌子让他们的工程师过来帮你解决问题,如果你用我们ESRI的软件,你也可以这样;而用免费的软件三更出了问题只有我们自己出马了,当然,google和百度在这个时候看在点击率的份上,还是可以拉我们一把的。除了一个好的容器,还需要一个JSF的实现,用SUN的Reference Implementation总是不会错的,人家是标准的制定者嘛,名字也起做“参考实现”,写来让你参考的。也可以选择功能更加强大的Myfaces。ESRI的ArcGIS Server ADF遵循标准的JSF,所以ADF可以跑在Sun 的JSF实现,或者Myfaces上。我们这次所有的教程都是基于sun的标准的JSF实现。还有其它的JSF实现,大家可以根据自己的爱好,择优选择之。如果你觉得都不好用,大可以参考标准自己写一个实现,除了你的老板(要投入更多的开发经费)和你的team (要干更多的活) ,是没有人有意见的。

如果您像我一样选择了SUN的参考实现,那么去SUN的网站上去下载一个JSF的开发包吧,如果不想下载,随便找一个Server Java ADF的例子,在WEB-INF/lib目录里面有JSF的包,名为

3

jsf-api.jar和jsf-impl.jar的两个包就是;注意那个JSP的标准标签库jstl.jar,把它跟jsf的包放在一起,你不一定用标准标签库,但是JSF用到了它。

我把JSF的doc放在这里给大家下载,因为这个东西实在不好找,有人知道好的下载URL,可以在这里贴一个。

把这些包放在一个web application的lib目录里面有,你的程序你可以使用JSF的强大功能了。让我也来俗气一下,写一个简单的hello world作为今天的结束吧。注意在你的web application里面的web.xml配置文件添加了Face Servlet的声明和URI映射。

<%@ page c%>

<%@ taglib uri="https://www.wendangku.net/doc/7c6568982.html,/jsf/core" prefix="f" %>

<%@ taglib uri="https://www.wendangku.net/doc/7c6568982.html,/jsf/html" prefix="h" %>

</p><p>欢迎来到ArcGIS Server ADF 世界</p><p>

value="123"/>

4

保存后访问Http://servername:port/faces/hello.jsp即可,如果页面能够出来,那么恭喜您,您已经迈入了JSF wonderland的大门。

3、ArcGIS Server Java ADF开发的JSF知识介绍

ArcGIS Server 的Java ADF 开发使用到了JSF的知识,下面结合ArcGIS Server的开发,介绍一下JSF的知识

Struts和JSF/Tapestry都属于表现层框架,这两种分属不同性质的框架,后者是一种事件驱动型的组件模型,而Struts只是单纯的MVC模式框架。

首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法execute。

在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts 中实际是一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。

struts重要的表单对象ActionForm是一种对象,它代表了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字段,因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用Struts 就不太可能,当然通过结合JavaScript也是可以转弯实现的。

而这种情况使用JSF就可以方便实现,

#{https://www.wendangku.net/doc/7c6568982.html,erId}表示从名为login的JavaBean的getUserId获得的结果,这个功能使用struts也可以实现,name="login" property="userId"

关键是第二行,这里表示如果userId的值改变并且确定提交后,将触发调用类UserLoginChanged 的processValueChanged(...)方法。

JSF可以为组件提供两种事件:Value Changed和Action.相当于struts中表单提交Action机制,它的JSF写法如下:

从代码可以看出,这两种事件是通过Listerner这样观察者模式贴在具体组件字段上的,而Struts 此类事件是原始的一种表单提交Submit触发机制。如果说前者比较语言化(编程语言习惯做法类似Swing编程);后者是属于WEB化,因为它是来自Html表单。

基本配置

5

Struts和JSF都是一种框架,JSF必须需要两种包JSF核心包、JSTL包(标签库),此外,JSF 还将使用到Apache项目的一些commons包,这些Apache包只要部署在你的服务器中既可。JSF包下载地址:https://www.wendangku.net/doc/7c6568982.html,/j2ee/javaserverfaces/download.html选择其中Reference Implementation。

JSTL包下载在https://www.wendangku.net/doc/7c6568982.html,/site/downloads/downloads_taglibs-standard.cgi

所以,从JSF的驱动包组成看,其开源基因也占据很大的比重,JSF是一个SUN伙伴们工业标准和开源之间的一个混血儿。

上述两个地址下载的jar合并在一起就是JSF所需要的全部驱动包了。在ArcGIS Server的项目下的lib目录下有相关的库文件如下:commons-beanutils.jar commons-collections.jar commons-digester.jar commons-lang-2.0.jar commons-logging.jar jsf-api.jar jsf-impl.jar jstl.jar standard.jar

与Struts的驱动包一样,这些驱动包必须位于Web项目的WEB-INF/lib,和Struts一样的是也必须在web.xml中有如下配置:

Faces Servlet

javax.faces.webapp.FacesServlet

1

Faces Servlet

*.faces

这里和Struts的web.xml配置相似,简直一模一样。

正如Struts的struts-config.xml一样,JSF也有类似的faces-config.xml配置文件:

/index.jsp

login

/welcome.jsp

user

https://www.wendangku.net/doc/7c6568982.html,erBean

session

在Struts-config.xml中有ActionForm Action以及Jsp之间的流程关系,在faces-config.xml中,6

也有这样的流程,我们具体解释一下Navigation:

举例:如果在mapviewer.jsp中有一个事件:

action的值必须匹配form-outcome值,上述Navigation配置表示:如果在index.jsp中有一个login 事件,那么事件触发后下一个页面将是welcome.jsp

JSF有一个独立的事件发生和页面导航的流程安排,这个思路比struts要非常清晰。

UI界面

JSF和Struts一样,除了JavaBeans类之外,还有页面表现元素,都是是使用标签完成的,Struts 也提供了struts-faces.tld标签库向JSF过渡。

使用Struts标签库编程复杂页面时,一个最大问题是会大量使用logic标签,这个logic如同if 语句,一旦写起来,搞的JSP页面象俄罗斯方块一样,但是使用JSF标签就简洁优美:

icon="/images/inbox.gif"

action="inbox"

disabled="#{!authenticationBean.inboxAuthorized}"/>

如果authenticationBean中inboxAuthorized返回是假,那么这一行标签就不用显示,多干净利索!

缺点:

JSF这类框架面临的最大问题,它大量的使用了标签库,目前流行的网页制作工具(如

deamweaver)又没有提供足够的支持,所以只能依靠挖掘dataTable标签的各个属性,并且大量依赖css才能实现页面的美化。如果java世界能有一个强大的JSF IDE,能够提供https://www.wendangku.net/doc/7c6568982.html,一样的能力,那么JSF也许会更容易流行。

4、ArcGIS Server 开发初步-- 自定义工具

在Server生成的Web App中,页面的工具按钮可以分为两类:

l命令(Command):A command is an element on a JSP page that triggers a server side action without any further interaction on the client. An example of a command in the sample application is the "zoom to full extent" button. Once the user clicks the button, a method is called on the server。不与用户通过界面交互。

l工具(Tool):A tool has further client side interaction before calling a method on the server. An example of a tool in this application is "zoom to rectangle". Once the user clicks the button, drags a rectangle over the map indicating the area they want to zoom to, and then a method is called on the server。与用户通过界面交互。

一、继承接口

public Interface com.esri.adf.web.faces.event.MapToolAction{

void execute(MapEvent event);

}

lMapToolAction 接口代表由MapControl控件事件所激活的服务器端工具,系统已预设继承此接口的类:

7

PanToolAction(平移),

ZoomInToolAction(放大),

ZoomOutToolAction(缩小)

lMapControl 创建MapEvent 事件并将其传给继承接口的工具类的execute(MapEvent) 函数,The business logic for the tool should be implemented in this method according to the event。

二、工具在JSP页面上的tag表达如下:

serverAction="com.esri.adf.web.faces.event.ZoomInToolAction"

clientAction="EsriMapRectangle"

clientPostBack="true"

/>

三、注册managed-bean将所写的类作为一个managed-bean注册到faces-config.xml,并用WebContext实例作为其初始化参数:

ToolClass

com.brsc.MyToolClass

request

webContext

#{mapContext}

四、注释:

1.JSP的Tag中serverAction写入继承MapToolAction接口的类(全称),代表对于此工具服务器端要进行的操作[ execute(MapEvent event)]

用户也可以使用任何Managed Bean的函数作为工具对应的方法,只要这个函数使用如下声明:

public void anyMethodName(MapEvent event)

JSP标签使用serverMethod ,如下:

这样,MapControl也会将适当的MapEvent 事件传入此函数。

8

2.JSP的Tag中clientAction写入客户端鼠标选择的方式:

EsriMapPoint 点选

EsriMapLine 线

EsriMapRectangle 四边形

EsriMapCircle 圆

EsriMapOval 椭圆

EsriMapPolyline 多线

EsriMapPolygon 多边形

EsriMapPan 移动

对应Server端的几何形状(附图)

3.MapEvent代表客户端进行操作产生的事件,一般会用到MapEvent的

public WebGeometry getWebGeometry()函数来得到客户端输入的几何形状

//Returns the WebGeometry in screen coordinates corresponding to

//the client action performed by the user.

来获得客户端产生的形状,这些Geomentry一般都是screen坐标,需要用

toMapGeometry(WebMap)转换为地图坐标。

一般操作如下:

public void myToolMethod(MapEvent event) {

WebContext ctx = event.getWebContext();

WebGeometry screenGeom = event.getWebGeometry();

WebGeometry mapGeom = screen.toMapGeometry(ctx.getWebMap());

...

}

4.JSP的Tag中clientPostBack

l 设置为false,刷新地图,并且刷新页面;

l 设置为true,只刷新地图,不刷新页面;

5、使用图片和TrueType字体进行标注

直奔主题吧,接上个主题的讲座的内容,讲讲如何用图片进行标注。在前面一个讲座我们已经9

说明,如何对选中的物体进行高亮显示。而且这一部分工作是在ADF这一端完成的。那么有的时候,我们进行高亮显示的时候,不仅仅希望只是设置颜色,我们希望能够用图片或者truetype字体进行标注。比如在犯罪地点放一个坏人之类的功能。

我们来看看实现原理,关键是两个类,WebTrueTypeMarkerSymbol和WebPictureMarkerSymbol,没啥好说的,直接用代码来说明吧:

先来看看普通的点标注:

WebPointpt=(WebPoint)arg0.getWebGeometry().toMapGeometry(arg0.getWebContext().getWebMap( ));

WebSimpleMarkerSymbol markers =null;

markers = new WebSimpleMarkerSymbol();

markers.setAntialiasing(true);

markers.setColor("255,0,0");

markers.setWidth(8);

markers.setOutlineColor("255,0,0");

markers.setMarkerType(WebSimpleMarkerSymbol.CIRCLE);

markers.setPicture(bytInput);

GraphicElement ge=new GraphicElement();

ge.setGeometry(pt);

ge.setSymbol(markers);

WebGraphicsgraphics=arg0.getWebContext().getWebGraphics();

graphics.addGraphics(ge);

arg0.getWebContext().refresh();

注意webgraphicsymbol的setPicture方法的参数不是图片目录,而是图片的二进制数组,所以需要用文件IO把图片读取进来。当然,如果用户访问量很大,线程就不安全了,大家可以在application 启动时进行读取,放在context的某个attribute里面。我原来认为是通过设置路径方式实现,这样

10

又可能可以搞定gif图形的闪烁,但是现在实验结果是不行。设置图片标注的代码如下:

WebPointpt=(WebPoint)arg0.getWebGeometry().toMapGeometry(arg0.getWebContext().getWebMap( ));

//图片在servelet容器里面目录

String

picPath=FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath()+"\\images\\angl e.gif";

File myFile = new File(picPath);

FileInputStream myStream= newFileInputStream(myFile);

BufferedInputStream buf = newBufferedInputStream(myStream);

byte[] bytInput = newbyte[(int)myFile.length()];

buf.read(bytInput, 0, (int) myFile.length());

buf.close();

myStream.close();

WebPictureMarkerSymbol markers=newWebPictureMarkerSymbol();

markers.setPicture(bytInput);

GraphicElement ge=new GraphicElement();

ge.setGeometry(pt);

ge.setSymbol(markers);

WebGraphics graphics=arg0.getWebContext().getWebGraphics();

graphics.addGraphics(ge);

arg0.getWebContext().refresh();

在jsf文件里面添加如下代码,调用图片标注工具,进行测试:

11

selectedImage="images/pointD.gif"clientAction="EsriMapPoint"

serverAction="com.cj.ucdemo.GifTestTool"clientPostBack="true"/>

图片标注的结果如下:

用图片做markSymbol

我们也可以使用TrueType字体里面的矢量字体对图形进行符号化显示,这也是我们经常使用的方法,具体代码如下:

webMap=arg0.getWebContext().getWebMap();

WebPointpt=(WebPoint)arg0.getWebGeometry().toMapGeometry(webMap); WebTrueTypeMarkerSymbol trueMarkerSymbol=new WebTrueTypeMarkerSymbol(); //注意使用系统里面已经安装的字体trueMarkerSymbol.setFontName("ESRITransportation & Civic");//设置索引

trueMarkerSymbol.setCharacterIndex(8); trueMarkerSymbol.setFontColor("255,0,0"); trueMarkerSymbol.setFontSize(20);

trueMarkerSymbol.setFontStyle(WebTrueTypeMarkerSymbol.BOLD);GraphicElement ge=new GraphicElement(); ge.setGeometry(pt);

ge.setSymbol(trueMarkerSymbol);WebGraphicsgraphics=arg0.getWebContext().getWebGraphics(); graphics.addGraphics(ge);arg0.getWebContext().refresh();

把上面的代码放在一个点击工具里面,在jsf文件中用如下代码进行调试:

12

defaultImage="images/point.gif"hoverImage="images/pointU.gif" selectedImage ="images/pointD.gif"clientAction="EsriMapPoint" serverAction="com.cj.ucdem o.TrueTypeMarkerTest"clientPostBack="true"/>

TrueType字体标注的结果如下图所示:

6、Server Java讲座-----扩展Tasks框架

Tasks框架是一个很有意思的东西。如果你对Tasks框架还没有概念,你可以参考一下web map application那个Sample,左边浮动的放大工具,查询工具都是用Tasks 框架构成。有人会问,既然已经有了command和tools,为什么还需要tasks呢?事实上tasks的目的是不同的;我们可以看一下web map application,可以看到,相同类型的button和toos组合在一起,组成一个逻辑单元,这就是tasks的选择条件。

我们来看看如何编写Tasks,编写Tasks是非常有意思的事情。Tasks跟tools一样,也是一个普通的Java类即可,这个Java类可以从Object直接继承。请看下面的Task 的例子:

1public class JSTasks {

2public void doSomething(){

13

3System.out.println("Task button clicked.");

4

5}

6}

这个tasks实在是简单吧,看看怎么部署上去,我们在xml文件中做如下定义:

1

2 jsTask

3 com.cj.ucdemo.JSTasks

4 session

5

这个配置文件也非常简单,那么看来所有的诀窍在与如何在JSP页面里面使用它。我们来看看:

1

添加一个task标签,把这个标签的mapId值指向地图控件”Map0”,讲它的值指向我们刚才定义的Managed Bean。访问一下,大家看看下面的浮动窗口结果:

是不是很令人惊奇啊?事实上我们这个Bean中只有一个方法,但是Tasks框架聪明地把这个方法名给提取出来,作为button的名字。你点击一下这个按钮,在后台就可以看到执行了这个方法,打印出了一条信息。简单的说:方法就是按钮!!

有了上个Task的基础, 我们来看其它的Task就驾轻就熟了。事实上,整个Task 就是一个类,Task的Caption就是这个类的类名。里面的每一个Public方法都是Task 浮动条上的一个按钮。那么参数怎么办呢?我们来加一个参数,并且加上一个它的get 方法和set方法:

1String parameter;

2public String getParameter() {

3return parameter;

4}

5public void setParameter(String parameter) {

6this.parameter = parameter;

7}

14

看看我们的task工具条发生了什么变化,Task工具条如下图所示:

可以看到,多了一个Parameter的输入框,前面还有一个Label,很有意思吧。那个DoAnything是我加的另外一个方法。Task框架的扩展已经很明显了吧:把相同的功能集合在一个类里面,这个类可以接受参数。例如我们可以利用这个task进行buffer操作,这个输入框就可以用来输入buffer的距离。

看到这里,大家肯定想到了另外的几个问题,比如:怎么把这些参数,按钮的名字修改成中文,上次给人培训,有人说:用中文的变量名?也是一个办法,但是考虑的JDK对中文变量的处理,似乎有问题。还有其它的问题包括怎么跟地图进行交互?怎么样设置客户端的动作(画多边形还是画Polyline)。我们当然有另外的方法。

使用Taksinfo建立对Task的描述,所有的Taskinfo都需要继承自SimpleTaskInfo类。大家可以打开doc看看SimpleTaskInfo的子类有那些。事实上,那些子类都是已经存在的task的taskinfo,如果你需要做汉化,继承这些类并且改写其中的几个方法即可。

我们来看看我们自己的类需要改写SimpleTaskInfo的哪几个方法:TaskActionDescriptorModel[]getActionDescriptors();

此方法用来修改command按钮的描述;command的意思是不需要和地图进行交互而是直接在服务器端执行一个命令。

TaskParamDescriptorModel[]getParamDescriptors()

此方法修改参数的描述;

TaskToolDescriptorModel[]getToolDescriptors();

此方法修改工具的描述,工具的意思是需要和地图进行交互;

那么我们来写一个类,直接说明如何使用这几个方法,修改task的表现:

public TaskDescriptor getTaskDescriptor() {

TaskDescriptor td=new TaskDescriptor(JSTasks.class);

15

td.setDisplayName("我的任务");

return td;

}

此方法修改了task的标题,将此类作为一个Managed-bean添加到faces-config.xml 文件中,并且在.jsp页面中修改task的使用如下:

修改后的Task如下所示:

可以看到task的标题已经改变。下面我们来看修改Action的标题,代码如下:

public TaskActionDescriptorModel[]

getActionDescriptors() {

TaskActionDescriptorModel[] td=new TaskActionDescriptorModel[1];

TaskActionDescriptorModel actionDesc=new TaskActionDescriptor(JSTasks.class,"doSomething","查询"); td[0]=actionDesc;

return td;

}

需要说明的是TaskActionDescriptor(JSTasks.class,"doSomething","查询")构造函数的三个参数,第一个是task类,第二个是方法名,第三个是修改后的方法名;构造后放到数组中返回即可,如果有多个方法,可以如法炮制,都放到数组中。修改后的task

16

有如下表现:

你会发现另外一个action没有了,别着急,因为我们还没有把它放到数组中,而原来默认的显示方式已经被我们修改了。

我们来修改doAnything工具,doAnything工具需要和地图交互,注意它的参数是MapEvent而不是TaskEvent,它完整的代码如下所示:

public void doAnything(MapEvent te){

//通过和地图交互进行放大

WebContext ctx=te.getWebContext();

WebGeometry geom=te.getWebGeometry().toMapGeometry(ctx.getWebMap());

WebExtent ext = (WebExtent)geom;

ctx.getWebMap().setCurrentExtent(ext);

ctx.refresh();

}

如果跟地图交互,就要涉及到客户端执行的操作,我们这里没有任何地方指定客户端的操作,这是在taskinfo里面指定的,我们来看下面的代码:

public TaskToolDescriptorModel[]

getToolDescriptors() {

TaskToolDescriptor [] toolDesAry=new

TaskToolDescriptor[1];

17

TaskToolDescriptor toolDesc=new

TaskToolDescriptor(JSTasks.class, "doAnything", "交互放大",ClientActions.MAP_RECTANGLE); toolDesAry[0]=toolDesc;

return toolDesAry;

}

注意TaskToolDescriptor构造函数的4个参数,第一个是task类,第二个是原方法名,第三个是替换后的方法名,第四个是客户端的动作。构造完成后放到数组中,如果有多个tools,如法炮制即可。修改后的task如下所示:

有了上面的解释,我们来看参数的taskinfo代码,就非常容易了:

public TaskParamDescriptorModel[] getParamDescriptors() {

// TODO Auto-generated method stub

TaskParamDescriptorModel[] td=new TaskParamDescriptorModel[1];

TaskParamDescriptorModel paraDesc=new TaskParamDescriptor(SearchTask.class,"searchText","查询文本");

td[0]=paraDesc;

return td;

}

修改后的task如下所示:

18

ArcGIS Server地图发布详解

ArcGIS Server地图发布详解 1地图服务发布 ArcGIS Server可以支持多种服务类型,用户通过ArcGIS Server发布的这些服务可以享用GIS功能。ArcGIS Server10.0支持的多种服务类型如下: Map Service 是使用最多的一种ArcGIS Server服务。该服务可以支持发布二维地图,支持建模,支持OGC WMS和KML,支持在线编辑空间数据等。本章主要介绍Map Service。 Geocode Service指的是地址编码服务,该服务可以把一个文本描述的地址转化为一个地理坐标。 Geoprocessing服务是一个基于Web的地理处理工具,客户端提交处理请求,服务器执行空间分析和建模,然后把执行结果展现在客户端。 Geodata Service提供了访问Geodatabase数据库内容的功能,支持在线的数据查询,数据提取,数据更新等。该服务在管理分布式的Geodatabase时非常方便。 Globe Service是ArcGIS Server提供的3D服务。首先在ArcGlobe中创建3dd文档,然后通过ArcGIS Server发布即可。用户可以使用免费的ArcGIS Explorer来访问ArcGIS Server发布的3D服务。 ArcGIS Explorer的下载网址: https://www.wendangku.net/doc/7c6568982.html,/ArcGISExplorer/Build450/ArcGISExplorerDownload.exe 下面几个小节内容主要介绍如何发布一个Map Service。 1.1 制作地图文档 1.从开始菜单启动ArcMap,新建一个空文档。 2.点击Add Data按钮,定位到数据位置,选中.shp文件,点击Add按钮。这样就把shp数据加载到ArcMap中。 3.右键点击图层,选中Properties菜单。 4.编辑渲染方式。点击Add All Values按钮,点击确定按钮。 5.设置符号化方式后,地图信息更丰富。 6.从File菜单中选择保存菜单。定位到某文件夹,在文件名输入框中输入:*.mxd,点击保存按钮。此文档将作为ArcGIS Server地图服务发布的文档。 7. 关闭ArcMap。 1.2 用户权限设置

ArcGIS Server常见问题及解决方案

1.是否可以在同一台计算机上安装ArcGIS Server for the Microsoft .NET Framework 和ArcGIS Server for the Java platform? ArcGIS Server 的.NET 和Java 版本可以共存于同一台计算机上。若要将两者一起安装,则需要遵循以下步骤,以确保服务器目录能够正确地映射到IIS 或Apache Web 服务器的虚拟目录: 1.安装.NET 版本或Java 版本的ArcGIS Server。 2.使用管理器或ArcCatalog 删除默认的服务器目录(arcgiscache、arcgisjobs、 arcgisindex、arcgisinput、arcgisoutput)及其相关联的虚拟目录。 3.安装其他版本的ArcGIS Server。您可以保留此版本的默认服务器目录和虚拟目录。 4.使用文件系统工具为步骤1 中安装的ArcGIS Server 版本创建其他服务器目录。 5.使用ArcCatalog 或管理器,为在步骤1 中安装的ArcGIS Server 注册新服务器目 录及其相关的虚拟目录。 2.应当对SOM 和SOC 帐户使用何种帐户? 服务器对象管理器(SOM) 和服务器对象容器(SOC) 帐户供GIS 服务器进行内部使用,仅需要对计算机拥有有限的权限。仅当您在其他计算机上安装ArcGIS Server 时,或者仅当您授予GIS 服务器访问您的数据的权限时,您才会用到这些帐户。大多数情况下,使用安装后配置(ArcGISSOM 和ArcGISSOC)所建议的默认帐户名称并让向导为您创建帐户即可。出于安全原因,安装后配置将创建较之域帐户更加推荐的本地帐户。 3.计算机名称在安装后配置过程中被截断。 ArcGIS Server 名称不能超过15 个字符;如果超出该长度,则会在安装后配置期间及尝试连接到服务器时遇到错误。这是与活动目录名称的Microsoft 规范相关的已知限制。 4.是否对安装日志或摘要进行存储以供今后查看? 即使从命令行运行安装程序,也不会自动记录安装过程,但是您可以添加用于创建日志文件的参数。要了解有关从命令行进行安装的详细信息,请参阅ArcGIS Server 安装指南。

ArcGISServer安装与破解图文教程

A r c G I S S e r v e r安装与破 解图文教程 The latest revision on November 22, 2020

A r c G I S S e r v e r10.2安装与破解图文教程 ArcGISServer是ESRI公司的ArcGIS系列产品家族中的服务端产品,基于ArcGISServer可以构建Web地图服务,开发WebGIS系统。 通过万能地图下载器下载的ArcGISServer瓦片服务,可以用ArcGISServer进行发布。 你可以通过以下地址下载安装包: 下载解压之后,用虚拟光盘打开ISO文件(Win10系统直接双击打开),然后双击ESRI.exe 开始安装。 进入安装界面后,点击“Setup”安装ArcGISforServer开始安装。 点击“Next”按钮,进入下一步安装界面。 选择同接受许可协议后,点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 设置一个能记住的帐户和密码,点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 点击“Install”按钮,开始安装软件。 正在安装软件,速度根据电脑运行效率不同而不现,一般大概需要几分钟左右。 点击“Finish”按钮,完成安装。 选择立即用许可文件认片,然后点击“Browse...”按钮。 选择压缩包中的许可文件并点击“打开”按钮。 点击“下一步”按钮开始授权。 授权成功之后,点击“完成”按钮。 安装完成后会自动打开一个Web页面,在该页面中可以创建一个站点,设置一个能记住的管理员帐户。 点击“下一步”按钮进行站点配置。 点击“完成”按钮,进行站点配置。 正在进行站点创建。 创建完成后,用设置的帐号登录。 站点创建完成。

ArcgisServer发布服务时错误

ARCGIS Server 发布服务时出现的问题解决 前言:这类问题解决第一步,看出现问题时提示的错误提示,若没有错误提示,去server 的log中找到产生问题时的日志,看里面这类问题产生的原因。 一、Access to output directory is denied(原创) 一、问题 Access to output directory is denied 二、问题描述 无法启动服务,Access to output directory is denied 三、问题原因 当前用户、SOM、SOC用户没有写权限 四、解决方法 赋予对这些用户对临时文件的写权限 二、Probable cause: The network path is inaccessible to ArcGIS Server Object Container account. 问题描述 arcgisserver发布服务时无法启动服务,没有任何外在的错误提示 问题原因 某些指定路径不存在 解决方法 找到arcgisserver发布服务需要对应的文件夹,若没有,则按照指定路径创建,详情可参考第三条。 三、ArcGIS常见问题解决之Server Object instance creation failed on machine xxx 1.1 问题症状 在客户现场进行开发测试的时候发现,无法在ArcGIS Server上发布新的地图服务,但是可以发布影像服务、GP服务,已经发布的地图服务都可以运行。发布服务时具体的错误信息是:Server Object instance creation failed on machine xxx。 1.2 日志信息 查看日志信息,记录如下: Attempt to start configuration nmdis/topic_binhaishidi of type MapServer. Container 5296 is successfully created on machine IBM3850X5. Thread 18088 is successfully created on container 5296 of machine IBM3850X5.

ArcGIS Server 10安装及破解(亲测通过)

Win7 下ArcGIS Server 10.0的安装 1、插入安装盘,运行,如下图: 与ArcGIS Desktop 10.0的安装一样,如果安装过旧的版本,要首先冲突检测,卸载历史版本,否则会导致安装失败。 2、点击ArcGIS Server for the Java Platform Setup安装,如下图:

按照提示一路下一步,开始进行安装。 4、安装完成,如下图: 5、接下来进入配置阶段,弹出GIS Server Post Install,如下图:

6、下一步,进入SOC和SOM账户的配置,如下图: 7,输入密码后下一步,进入GIS Server Manager Account配置界面,如下图:

8、接下来一路下一步,确认安装,如下图: 9,这里会弹出授权界面,在这里进行破解,如下图:

10、选择第三项,将下面的内容复制到新建文本文档,然后改文本文档的后缀名为ecp,浏览此ecp文件完成授权 3dengine,100,ecp.arcgis.server,none,KGE784S1MGRMMBKYZ161 3dserver,100,ecp.arcgis.server,none,VPH4ENBJ3Y831R1DF089 arcgisserver,100,ecp.arcgis.server,none,D7MFFAZ8THZTPJR67072 bingmapseng,100,ecp.arcgis.server,none,QH1N8J6BZM7PGTJ89232 bingmapssvr,100,ecp.arcgis.server,none,OLPF80PYJCNJJ7GPE158 businessvr,100,ecp.arcgis.server,none,UTE4AE2CXR2XYNEBB205 defenseintleng,100,ecp.arcgis.server,none,TRCZY4S1MGRMMBKYZ067 defenseintlsvr,100,ecp.arcgis.server,none,LHH9HK9J5ZA46EDPN164 defenseuseng,100,ecp.arcgis.server,none,UTF457E50KE00FH23148 defenseussvr,100,ecp.arcgis.server,none,LHH30H4CE00LTJT46024 designer,100,ecp.arcgis.server,none,TRBZMD18RMLSPF002054 gdbedit,100,ecp.arcgis.server,none,WEJFRRF0C6JCE3MXE079 geostatserver,100,ecp.arcgis.server,none,UTF654S1MGRMMBKYZ201 imageextserver,100,ecp.arcgis.server,none,HC4RTXLPE9JEE3CPR167 interopengine,100,ecp.arcgis.server,none,MJJAFH5G1E612RZFF118 interopserver,100,ecp.arcgis.server,none,VPF0TRFN61B75E5HJ074 jtxserver,100,ecp.arcgis.server,none,JFB157E50KE00FH23053 maplexengine,100,ecp.arcgis.server,none,LHH40XLPE9JEE3CPR159 networkengine,100,ecp.arcgis.server,none,YYPMSNCN82E8AZJTR206 networkserver,100,ecp.arcgis.server,none,PMYHHAY5RHHMF5KHT131 schematicengine,100,ecp.arcgis.server,none,YYPDCAZ8THZTPJR67200 schematicsvr,100,ecp.arcgis.server,none,PM0L8NAF20BTKXNCD158 spatialengine,100,ecp.arcgis.server,none,B5JA84S1MGRMMBKYZ159 spatialserver,100,ecp.arcgis.server,none,JFBXLD18RMLSPF002237 standardengine,100,ecp.arcgis.server,none,UTF750PYJCNJJ7GPE061 svradvanced,100,ecp.arcgis.server,none,UTE0RNBJ3Y831R1DF145 svrenterprise,100,ecp.arcgis.server,none,TRB6A7E50KE00FH23206 svrstandard,100,ecp.arcgis.server,none,A3C0LPJ0A5FBAZ8LN139 trackingengine,100,ecp.arcgis.server,none,VPF1RK8GZP4ZXNX8A052 virtualearthsvr,100,ecp.arcgis.server,none,FA0N5C04SE0H9KB10133

基于ArcGIS+Server的WebGIS开发

基于ArcGISserver的webGIS开发 摘要:胁GISsemr是一个用来构建企业级webGIs的平台.首重研究了A稍IsServer的基本知识和系统架构后,并在.Net平台下结合实际进行了开发应用,同时指出了在开发中的若干注意事项。 关键词:ArcGlsSew%WebGIs;开发 l概述 we嘲s作为GIs新的发展方向,近几年来取得了巨大的发展,但无论是初期采用CGI技术、Plug-III技术,以及之后的采用JavaAp_pleI、Activex作为解决方案,在数据请求方面其始终遵循的是一种请求,响应模式【l】,用户体验差,严重阻碍了WebGIS的进一步发展。典型的解决方案是EsIu提供的AIcGISServ口。妣GIsserver支持GML3.0相关规范以及 OGC的wMS和wFs接口,通过其webAp-pHcati佣和webServiee构架,在8,s模式下,可在普通IE浏览器环境中获得类似ArcInfo的专业空间数据管理和GIs分析功能,使GIs应用系统在分布式环境下的数据共享和互操作 成为可能,还提供后台服务功能扩展机制。着重研究ArcGIsServer中的体系结构及在.№t平台下基于ArcGIsSer"r9.2的应用开发。 2ArcGIsSe竹er体系研究 2.1系统简介 AJeGIsserv日是一个发布企业级Gls应用程序的综合平台,提供了创建和配置GIS应用程序和服务的框架,并实现空问数据管理,空间可视化,空间分析的功能隅。 2.2关键概念 2.2.1服务器对象管理器CsoM)soM是运行在GISServer上的window“Ulli)【服务,管理分布于一个或多个容器服务器中的服务器对象或服务器对象组。当web应用通过LAN或wAN直接连接到GIsserver时,实际是建立—个与soM的连接,连接参数是运行SoM的服务器名称或Ⅲ地址。 2.2.2服务器对象容教Salc)SOC是一个运行一个或多个服务器对象的进程。SOC进程由s0M启动和终止。SOC进程运行于GISServef的容器服务器之上,每一个容器服务器可以宿主多个soc进程。 2.2.3服务器上下文 一个服务器上下文是运行一组服务器对象的服务器上的保留空间。可以将服务器上下文想象成一个进程,由运行服务器对象的服务器管理。服务器上下文提供了一种在相同空间和“进程”中创建对象的方法。并作为一个运行的服

ArcGISServer10.1和10.2安装和服务发布说明

文档编号: ArcGISServer 10.1/10.2 安装和服务发布说明 广州奥格智能科技有限公司 二〇一三年十二月十二六日

文档修订记录 *变化状态:C――创建,A——增加,M——修改,D——删除

目录 第1章数据库安装与配置............................................................................................. - 1 -1.1数据库安装 .. (2) 1.2创建表空间 (15) 1.2.1表空间创建过程 ............................................................................................................ - 15 -1.3创建用户 . (18) 1.3.1用户创建过程 ................................................................................................................ - 18 -第2章ARCGIS DESKTOP10安装 .................................................................................. - 21 -2.1安装准备 . (21) 2.1.1系统要求 ........................................................................................................................ - 21 -2.1.2其它 ................................................................................................................................ - 21 -2.2A RC GIS D ESKTOP10安装. (22) 2.2.1安装ArcGIS License Manager 10 .................................................................................... - 22 -2.2.2安装ArcGIS Desktop 10 .................................................................................................. - 24 -2.2.3破解 ................................................................................................................................ - 28 -2.3附录:SERVICE.TXT内容 ........................................................................ 错误!未定义书签。第3章ARCSDE 安装与配置.............................................................. 错误!未定义书签。 3.1.1ArcSDE安装过程................................................................................ 错误!未定义书签。第4章ARCGISSERVER10安装 ........................................................... 错误!未定义书签。 4.1安装A RC GISS ERVER 10 .......................................................................... 错误!未定义书签。 4.2配置GIS S ERVER P OST............................................................................ 错误!未定义书签。 4.3配置有户权限 ..................................................................................... 错误!未定义书签。 4.4登录测试 ............................................................................................. 错误!未定义书签。第5章ARCGISSERVER10服务发布.................................................... 错误!未定义书签。 5.1制作地图文档(MXD文件) .............................................................. 错误!未定义书签。

ARCGIS SERVER环境配置--安装记录

ARCGIS SERVER 环境配置步骤记录: 第一步:安装.net 3.5 sp1 和 IIS 打开服务器管理器, 在左侧导航栏选择 “功能” 条目。 然后点右侧的 “添加功能” , 选中 “.NET Framework 3.5.1 功能”,然后点“下一步”,
接着会有提示,要求同时安装服务器角色中的“WEB 服务器 IIS”, 下一步,然后按下图所示 进行勾选。
然后再下一步,直到出现:

第二步:安装 VS2012 默认安装, (全选) 。在网上找个激活码就可以了。 第三步:安装 ArcGIS Desktop 10.2 注意: (先把破解文件中“替换 License10.2 ”中的 service 中的 SERVER localhost ANY 27000”localhost”改为电脑名。当然,也可以不改。 )然后按照下面操作。
ArcGIS Desktop 10.2 完全破解安装教程(含 win7 32/64 位+下载地址+亲测可用)
时间: 2014 年 08 月 20 日 阅读: 155,308 分类: GIS 探秘 标签: ArcGIS, ArcGIS 安装破解
在之前的 ArcGIS 10.1 的破解安装教程中,得到了很多人的认可,也帮助了一些 人成功的安装上了 ArcGIS 的软件。这次换了台电脑需要重装 ArcGIS,这次我 选择的是 ArcGIS10.2,并且成功破解安装,过程与 10.1 的破解类似,这里做一 个总结,也希望能帮助到需要的人。 系统环境
win7 32/64 位操作系统
需要文件
(一)ArcGIS Desktop 10.2 原版安装光盘。 下载链接: https://www.wendangku.net/doc/7c6568982.html,/s/1gd04hMj

arcgisserver的四种开发方式

竟然好几个月没来更新博客了,真为自己羞愧,当然公司禁止了上网也是一大因素吧。希望自己在今后的工作中解决问题后,多记录下,或许回过头来,对自己是 一种帮助,对别人或许也有帮助。 在上一个项目中,经常要对SDE图层进行查询,修改,导入新要素等操作。由于时间紧迫,我全在后台用AE接口来完成, 项目中前台展示用的是ags for flex,目前9.3的版本没有提供编辑功能的相关接口,当然,总不能等到10.0新版本出来后才做吧。 查阅了无数资料,请教了同行们不少朋友,在https://www.wendangku.net/doc/7c6568982.html,后台用AE的还真没碰到,有朋友提及到用AE是可行的。当然不是最好的。 我就新建了一个有关GIS操作的类项目,完成了项目的要求,其中编辑的问题,版本的问题,出现无数故障。。。。。 这个项目不是太急,考虑到服务器端不一定安装Arcengine Runtime .决定采取arcgis server提供的相关接口来进行编辑,然后发布webservice,可实现跨平台调用, 就算在客户端FLEX里也能完成导入要素的功能。 实现的过程中出现一个错误,花费了不少时间才能完成。。

在给要素赋值时pFeature.shape=pGeo;总是提示不支持此类型("No support for this geometry type.") ?pGeo.GeometryType esriGeometryPolygon ?cFeatureClass.GeometryType esriGeometryPolygon 要素类的类型是esriGeometryPolygon,几何体的类型也是esriGeometryPolygon,分明属于同一类型,怎么就不能赋值咧, 给pGeo添加下监视,里面该有的都有,范围,面积,长度都有值,实在是伤心。。。。 给它赋属性数据时也能成功。 此时想到,是不是图形存在拓朴错误,比如点坐标不能闭合,有别的自相交等错误咧?写出如下代码后,发现还是无法赋值。 if (!pNewPolygon.IsClosed) pNewPolygon.Close(); ITopologicalOperator2 pTop = pNewPolygon as ITopologicalOperator2; pTop.Simplify();

ArcGIS Server集群部署-基于windows

ArcGIS Server 集群部署 1 几个重要的概念 1.1 服务、池化、实例 使用ArcGIS Server 发布一个地图服务,发布服务的同时会要求定义池化的类型、最小最大实例数。用户请求一个service 时,是和该service 的一个instance 打交道。service 有pooled (池化)和nonpooled (非池化)两种。 Nonpooled 创建最小个数实例,一个实例启动一个ArcSOC.exe 。 Pooled :low isolation 是指一个ArcSOC.exe 进程可以保有多个实例(也就是多线程);high isolation 一个实例占用一个进程。lowisolation 的好处是可以启动相对少的ArcSOC.exe 来维持同样数量的instance ,节约服务器的内存资源;但如果一个ArcSOC.exe 崩溃,那么里面的所有instance 都会被销毁。 1.2 SOM 、SOC ArcGISServer 是由一个SOM (Server Object Manager )和若干个SOC (Server ObjectContainer )机器组成。 SOM 会在机器里以ArcGISSOM 账户启动一个ArcSOM.exe 的进程,这个进程负责管理(启动和停止)其他SOC 进程(ArcSOC.exe ),SOC 进程虽然是由SOM 启动,但是以ArcGISSOC 账户运行的。ArcSOM.exe 启动时,会自动启动两个ArcSOC.exe ,一个用于记录AGS 的日志,一个用于清空特定的工作目录。这两个ArcSOC.exe 在任务管理器中可以根据所占用的内存数与其他ArcSOC.exe 区分开来,占用内存较少的两个ArcSOC.exe 便是由SOM 进程自动启动的,而其他的ArcSOC.exe 则是由具体service 启动的。 service pooled low isolation high isolation nonpooled

ArcGISServer配置方案

配置方案 中国(北京)有限公司

通信行业事业部 2011年1月 版权声明 本文档由中国(北京)有限通信技术支持部撰写,由中国(北京)有限公司对相关技术内容负责。未经本公司书面许可,任何单位和个人不得以任何形式摘抄、复制本文档的部分或全部,并以任何形式传播。 版本修订记录

目录 1部署方式错误!未指定书签。 1.1单机部署错误!未指定书签。 1.2单多集群部署错误!未指定书签。 1.3多多集群部署错误!未指定书签。 1.4应用案例错误!未指定书签。 2配置建议错误!未指定书签。 2.1建议架构错误!未指定书签。 2.2服务器配置错误!未指定书签。 2.3硬件配置错误!未指定书签。 3性能评估错误!未指定书签。 3.1数据库服务器性能评估错误!未指定书签。 3.2地图服务器()的性能评估错误!未指定书签。 1部署方式 具有可扩展的架构部署,有多种部署选择。大型项目部署需要多个服务器、服务对象管理器()和服务对象容器(),而小型

项目则可能需要将这些资源合并到一个或者两个计算机上。 的部署方式取决于用户项目需求,如果产品用于开发或测试目的或者用户并发数相对较少,则不需要进行大规模部署;如果将服务发布的海量用户社区,则需要考虑一些策略,如处理负载、单一故障点和安全性。 以下针对多机部署进行说明。 1.1单机部署 如果基于开发的系统,用于开发、测试或小用户量的应用,服务器不需要接受大量服务请求,可以把的和安装在同一台服务器中,通过简单的配置即可满足应用需求。 1.2单多集群部署 当用户请求服务并发量比较大时,需要多台服务器做集群部署以满足系统大量用户并发需求。在此部署应用中,由于服务对象管理器占用内存相对比较少,所以它可以和服务器共存在一台计算器上。如下图所示: 单多部署方案主要是将多个计算机集群用于执行用于的任务请求,并可以根据系统需要处理的用户并发数量(于用户的数量以及请求操作的频繁度相关)进行伸缩性扩展。

ArcGIS_Server简介

ArcGIS Server简介 ArcGIS Server 是功能强大的基于服务器的GIS 产品,用于构建集中管理的、支持多用户的、具备高级GIS功能的企业级GIS应用与服务,如:空间数据管理、二维三维地图可视化、数据编辑、空间分析等即拿即用的应用和类型丰富的服务。ArcGIS Server 是用户创建工作组、部门和企业级GIS 应用的平台,通过ArcGIS Server创建集中管理的、支持多用户的、提供丰富的GIS功能、并且满足工业标准的GIS应用。ArcGIS Server 提供广泛的基于Web 的GIS 服务,以支持在分布式环境下实现地理数据管理、制图、地理处理、空间分析、编辑和其它的GIS功能。 1.ArcGIS Server 的主要功能 2.ArcGIS Server 主要功能包括: 3.提供通用的框架在企业内部建立和分发GIS应用; 4.提供操作简单、易于配置的Web应用; 5.提供广泛的基于Web的空间数据获取功能; 6.提供通用的GIS数据管理框架; 7.支持在线的空间数据编辑和专业分析; 8.支持二维三维地图可视化; 9.除标准浏览器外,还支持ArcGISDesktop和ArcGISExplorer等桌面客户端; 10.可以集成多种GIS服务; 11.支持标准的WMS、WFS; 12.提供配置、发布和优化GIS服务器的管理工具; 13.提供.NET和Java软件开发工具包; 14.为移动客户提供应用开发框架; 1)ArcGIS Server 的主要功能描述: 空间数据管理——ArcGISServer具有两种同样是基于ArcGISgeodatabase模型的数空间数据管理级别。借助空间数据服务(Geodataservices),管理员可以为发布的地理数据实现抽取,检入/检出(checkout/check-in)以及复制等功能。ArcGISServer 的三个版本,基础版,标准版和高级版都具有空间数据管理的能力。 空间可视化(制图)——ArcGISServer提供了Web制图服务以支持二维和三维的动态形式或者静态缓存形式的地图发布。GIS的分析人员仅仅点几下鼠标就可以配置一个基于Web 制图服务的浏览器应用。另外,ArcGIS 的桌面和ArcGIS Explorer 可以作为ArcGISServer 的客户端来浏览二维地图或三维球体。ArcGIS Server 的标准版和高级版具有地图可。

ArcGIS_Server负载均衡-分布式部署

如何配置分布式部署 ESRI中国(北京)有限公司 2010年5月

目录 1.1 简介 (4) 1.2 选择一个配置 (6) 1.3 每台机器上安装相应的功能 (8) 1.4 运行POSTINSTALL向导 (10) 1.5 将帐户添加到AGSADMIN组和AGSUSERS组 (13) 1.6 注销或重新启动每一台机器 (13) 1.7 准备服务器使用的所有服务器目录 (13) 1.8 授予服务器目录共享权限 (15) 1.9 授权服务器目录文件(NTFS)许可 (15) 1.10 数据目录的授权许可 (16) 1.11 为您的服务器目录关联虚拟目录 (17) 1.12 配置日志目录 (19) 1.13 连接到GIS SERVER (19) 1.14 指定的日志目录位置 (20) 1.15 添加服务器目录 (20) 1.16 添加SOC机器 (21) 1.17 添加服务 (21) 1.18 疑难解答 (22) 1.19 摘要 (22) 1.20 附录A:帐户和权限图 (24)

1.21 附录B:目录图 (25) 1.22 附录C:常见的问题和错误信息 (26) 1.23 分布式部署实例 (32) 1.23.1先决条件 (32) 1.23.2安装环境配置 (32) 1.23.3安装步骤 (33)

本文档介绍当ArcGIS Server组件被安装到多台计算机上时,如何进行ArcGIS Server配置。这种情况有时被称作分布式安装。 注:ArcGIS Server的分布式安装只能应用于企业级GIS。工作组级别的ArcGIS Server只能部署到一台机器上。 1简介 ArcGIS Server有一个可伸缩的架构,允许部署到一个或者多个机器上。当您第一次安装ArcGISServer时,您可能会选择将所有组件安装在一台机器上以便于开发和测试。一旦您已经准备好部署ArcGIS Server应用,您需要考虑ArcGIS Server的分布式安装,以便用户访问的数量维持在一个系统可以接受的水平。 ArcGIS Server的分布式的安装就是在同一个局域网的多个机器上部署ArcGIS Server System的多个组件。例如,下面的图形描述了一个分布式安装,该服务器对象管理器(SOM),服务器对象容器(SOCs)和Web服务器分布在不同的机器。

ArcGISServer安装与破解图文教程

A r c G I S S e r v e r10.2安装与破解图文教程 ArcGISServer是ESRI公司的ArcGIS系列产品家族中的服务端产品,基于ArcGISServer可以构建Web地图服务,开发WebGIS系统。 通过万能地图下载器下载的ArcGISServer瓦片服务,可以用ArcGISServer进行发布。 你可以通过以下地址下载安装包: 下载解压之后,用虚拟光盘打开ISO文件(Win10系统直接双击打开),然后双击ESRI.exe 开始安装。 进入安装界面后,点击“Setup”安装ArcGISforServer开始安装。 点击“Next”按钮,进入下一步安装界面。 选择同接受许可协议后,点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 设置一个能记住的帐户和密码,点击“Next”按钮,进入下一步安装界面。 点击“Next”按钮,进入下一步安装界面。 点击“Install”按钮,开始安装软件。 正在安装软件,速度根据电脑运行效率不同而不现,一般大概需要几分钟左右。 点击“Finish”按钮,完成安装。 选择立即用许可文件认片,然后点击“Browse...”按钮。 选择压缩包中的许可文件并点击“打开”按钮。 点击“下一步”按钮开始授权。 授权成功之后,点击“完成”按钮。 安装完成后会自动打开一个Web页面,在该页面中可以创建一个站点,设置一个能记住的管理员帐户。

点击“下一步”按钮进行站点配置。点击“完成”按钮,进行站点配置。正在进行站点创建。 创建完成后,用设置的帐号登录。站点创建完成。

arcgisserver安装完成后的详细配置信息

详细配置:1. 用户权限配置;2. ArcCatalog连接GIS Server;3. 修改ArcGIS 地图服务的端口; 4.arcgis_js_api的存放目录……:\Program Files\ArcGIS\Server10.0\java\manager\web_output 5.关闭防火墙(1)用户权限设置。 ArcGIS Server 安装完成后,创建两个组agsadmin 和agsusers,管理和使用GIS Server 都需要使用这两个组的权限才能进行。 (1)打开控制面板,管理工具,打开计算机管理,展开本地用户和组,双击agsadmin组。 (2)在组属性对话框中,点击“添加”按钮。

在文本框中输入用户名,点击“检查名称”,确认无误后点击“确定”。 到此就把Administrator这个操作系统账户加入到agsadmin 组中,Administrator 账户具有管理ArcGIS Server 的权限 依照此方法更改其他组和用户属性: Administrators组,其成员为:Administrator、ArcGISSOM、

arcgismanager。 agsadmin组,其成员为:Administrator、ArcGISSOM、arcgismanager。agsusers组,其成员为:Administrator、ArcGISSOM和ArcGISSOC。Users组,其成员为:ArcGISSOM、ArcGISSOC、arcgismanager。 修改过用户权限后,需要注销或重启电脑,使用户设置生效。 (2)通过ArcGIS Catalog链接ArcGIS SERVER来发布地图服务。启动arccatalog,在GIS server中展开,点击Add GIS server后,选中manage GIS Services。

ArcGIS Server 10.2.2 for Linux 安装配置(CentOS)---戴国威

ArcGIS Server 10.2.2 for Linux 安装配置 易智瑞(中国)信息技术有限公司 2014年12 月

版权声明 本文档版权为ESRI中国(北京)有限公司所有。未经本公司书面许可,任何单位和个人不得以任何形式摘抄、复制本文档的部分或 全部,并以任何形式传播。

制定及修订记录

目录 ArcGIS Server 10.2.2 for Linux 安装配置........................................................................................... 修改IP地址 (1) 添加ArcGIS Server用户和修改最大并发量 (2) 安装ArcGIS Server (3) 复制ArcGIS Server 安装文件 (3) 修改安装文件的读写权限 (4) 安装ArcGISServer (5) 建立站点 (7) 建立集群................................................................................................. 错误!未定义书签。

修改IP地址 使用root进入linux操作系统,然后修改IP地址:在终端输入: vi /etc/sysconfig/network-scripts/ 效果: 一进来是这样的: 需要添加数据: 添加IP地址 保存之后,重启网络服务:

service network restart 然后查看ip设置,输入: ifconfig 说明修改成功。 添加ArcGIS Server用户和修改最大并发量 添加ArcGIS用户:arcgis (也可自定义,这里默认用arcgis)用root用户登录终端: useradd arcgis passwd arcgis 输入密码:esri@123

arcgisserver安装与部署

一、ArcGIS Server安装概述 ArcGIS Server安装过程包括两个部分:安装(installation)和安装后(post installation)设置。为了完成ArcGIS Server的安装,需要使用Windows操作系统工具手动设置一些步骤: ² setup过程需要你决定安装哪些功能部件?setup程序将安装这些部件需要的文件。 ² 后安装是用来完成ArcGIS Server安装过程的。在后安装过程中,将依赖于你选择安装的部件,你将能够配置ArcGIS Server和授权ArcGIS Server。配置ArcGIS Server选项将设置需要的ArcGIS Server帐号。授权ArcGIS Server选项将授权ArcGIS Server的使用。 注:安装ArcGIS Server之前必须卸载版本是9.0之前的以下产品:ArcGIS Desktop、ArcInfo Workstation、ArcReader standalone、ArcIMS,否则将出现冲突,不能安装。如果是9.0版本,则不需要卸载。 二、典型安装 在这个安装方案中,服务器对象管理器(SOM)和服务器对象容器(SOC)被安装在一个机器上。这些安装部件是被预先选择在安装程序中。 安装ArcGIS Server之前,必须准备: 1、获取ArcGIS Server的授权文件; 2、确认机器(和操作系统等)满足软件安装要求; 3、以具有管理员权限的帐号登陆操作系统; 4、确保TEMP变量被设置为一个有效的目录,并具有写的权限和可用空间; 5、关闭所有的应用程序。 6、插入安装CD,点击setup.exe,安装程序将自动开始安装。 注:1、使用.NET开发,必须先安装Visual Studio 2005(将升级IE为6.0); 2、安装ArcGIS 服务器对象容器(SOC)必须要有授权文件,因此,在每个机器安装SOC时都会要求授权文件。 在安装过程中,安装进程将允许你选择你所需要安装的部件(见图1-1)。在服务器对象容器(SOC)中,你可以选择只安装.NET支持或Java支持或都安装。在软件开发包(SDK)中,可以选择COM或.NET或Java,也可以选择安装ArcGIS 开发者示例(ArcGIS Developer Samples)。

相关文档
相关文档 最新文档