数据准备 ??Geodata Access ??Allows an end user to perform replication?and data extraction in??AcrMap ??Map document with a layer from a geodatabase 具体操作可以参考下面的步骤: 第二步是选择在客户端可以执行的操作种类以及与操作相关的一些选项,都是一些顾名思义的东西,不多说了。? 最后一步是设置冲突处理原则,这里就按照默认设置“Parent Win”和“Row Level”。 A、浏览器中编辑
B、ArcMap查看编辑结果 ??
Server 9.2开始支持基于web浏览器的数据在线编辑,要实现这样的功能,对数据有特殊的要求,先来看一下文档是怎么描述的:
??
??
??
1、将需要在线编辑的数据通过SDE导入到数据库;
2、将该数据注册为版本(Register As Versioned…);
3、在ArcMap中加载这个数据(Layer from a geodatabase);
4、如果有其他的数据也添加到ArcMap中,保存成一个mxd文档;
数据准备就完成了!
发布服务
在Manager->Services中选择“Publish GIS Resource”,选择发布刚才保存mxd文档。可以看到,在Capabilities中“GeoData Access”被自动勾选了。
发布完成以后,Manager会自动创建两个同名的服务:一个是Map Service,另一个是Geodata Service。
注意,这里需要检查一下这两个服务的Pooled参数,一般默认发布服务的时候都选Pooled,因为这样有利于提高访问效率(就像JDBC的数据库连接池)。但是基于web的在线编辑不能用pooled。因为pooled的原理就是在服务器程序启动的时候先创建好n个完全相同的实例,客户端访问的时候直接从池中获取实例,用完以后再释放到池中以供其他用户使用。所以池化的实例只适用于进行只读的操作,或者对实例进行一些属性进行临时的修改,释放的时候调用reset方法。但是在线编辑修改的是SDE中的底层数据,这样的话就不能确保第一次创建的pooled实例(SOC中的map service实例)跟第二次创建的pooled实例是完全相同的。
第一次发布的时候没有修改pooled参数,导致在Web应用中点击“Editingtask”没有任何反应,也不报错误。后来把程序导入到Eclipse中编译运行在Console中看到如下的错误信息才想起上面的道理:
????严重: At least one AGSLocalMapResource with NotPooled Service is required to display Editing task.
????????2006-12-2714:45:59 com.esri.adf.web.ags.tasks.EditingTask a
????严重: Error while attempting to start editing?com.esri.adf.web.ADFException: No layer available.
创建Web应用
在Manager中创建web应用有向导可以使用,步骤基本模板化。需要注意的有以下几个地方:
1、在layers对话框中,选择添加刚才我们发布的Map service。
2、在tasks的“Select Tasks”标前页中,添加Editing任务,至于其他的任务视需要自行添加。
3、在tasks的“Supporting Resources”标前页中,选择同名的那个service。可以留意一下,这个界面的service比步骤1中的service少,而且有好些是同名的。why?就是因为有些mxd文档中带有一些特殊图层,比如geoprocess、network,还有这个例子中的geodata access,这样的地图发布以后就会创建若干个同名的服务来支持map中的特殊图层。只是这里的图标很有迷惑性,大部分是map service的图标。
4、接下来就是关键的一步,配置Editing task了:
首先是选择要编辑的数据,这里我只发布了一个sde图层,所以没得选(下拉框只有一个内容);我们可以选的是编辑的数据版本,当时为了测试创建了5个版本,这里就选择成序列的version1~3。?
需要注意的就是以上几点,其他的步骤跟发布普通map应用都差不多。
实例的使用
创建完成以后,把这个应用部署到服务器上,就可以开始测试了。
点击任务中的“Editing”,弹出对话框,从中我们可以选择要编辑的数据的版本,刚才选中的Version 1~3系列就出来了,选中一个版本(比如version 1)以后,点击“Start Editing”提交。
提交以后,地图刷新,将version 1的地图从SDE中读取出来,Editing对话框也相应地改变。刚才的图中左上角可是没有五角星的哦:)另外还可以看一下Editing对话框下面的提示“Started Editing”,说明编辑已经成功地启动了。
接下来我们来创建一个新的要素吧,选择“Create Streets layer from sde”下的工具,在五角星的旁边画一个三角形,画完以后“Editing”工具条又发生变化了,其他的大家可以自己去试,工具条的最下面是属性表,我们可以给这个新画的三角形设置它的属性,随便输几个吧,记住“FULL_NAME=我创建的三角形”,这个就是它的标签啦。
创建完成以后点“Save Edit(s)”工具,将编辑结果提交给SDE。接下来我们打开ArcMap看看吧,从ArcCatalog里把数据拖到ArcMap里,版本切换到Version 1:
呵呵,看到了刚才创建的三角形,上面还打着我的戳呢:)
概括
基于Web浏览器的编辑是Server Advanced版本才有的功能,由于编辑的时候需要选择版本,而版本支持是SDE才有的功能,我还测试过filegeodatabase,结果可以参考前面的批注。不过,用户既然买了server,当然也就有了sde啦。
上面的例子自己不用添加任何代码,只要在几个关键的地方不出差错,程序就能出来了,如果觉得不过瘾,咱们可以把它导入到Eclipse下面进行再加工……
详细解决方案
ArcGIS Server 9.2兑现基于web浏览器的在线编辑
热度:342 发布时间:2012-07-04 19:33:54.0
相关解决方案
- myeclipse联接sql server 2008看不到用户表
- Server Tomcat v7.0 Server不能起步
- 在哪找的SQL Server 2005数据库驱动文件?为什么sql server2005安装盘上面没有找到
- The server encountered an internal error () that prevented it from fulfilling th解决方案
- JSP运行异常 STRUTS + SQL SERVER 2005
- jsp连接sql server 2005时出现的异常
- jsp连接sql server 2005数据库是异常!
- 大家帮帮忙呀The server encountered an internal error () that prevented it解决方法
- ASP上Set GetSession("conn")=server.CreateObject("adodb.connection")
- Server Apache Tomcat v6.0.35 at localhost failed to start
- JDBC 连接sql server 2005老是失败怎么处理?恳请高手帮忙。
- SOS-(奇怪现象)服务器暂不可用500 internal server error,该怎么解决
- tomcat没法运行Could not publish to the server. Error while expanding
- sql server 设置非空默认值之后,hibernate添加出现异常
- WEBstruts The server encountered an internal error () that prevented it fr解决思路
- jsp连接sql server 2005错误
- 可以安装在win7系统的sql server
- 出现异常:cvs [server aborted]:"passwd" requires write access to the repository
- exchange server 2000提供全部用户邮件到达的java api吗
- jdbc 直连sql server 2000 连不下
- Error 500-Internal Server Error 如何解决
- JAVA连接SQL SERVER 2000数据库,该如何解决
- Server returned HTTP response code: 403 for URL如何解决
- IM聊天系统的有关问题,用Tigase Server 如何实现挤线功能
- com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。该用户与可托 SQL Server
- Error 500--Internal Server Error
- Error 500-Internal Server Error
- jbuilder2006 连接 sql server 2000新有关问题
- java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]l??????? hstmt
- eclipse中不能筑tomcat server