编程 & 生活

开心工作,快乐生活 (原创文章,转载请注明出处)

统计

常用链接

留言簿(14)

积分与排名

阅读排行榜

评论排行榜

ArcGis Server开发Web GIS新手体验(一)

(以下针对于windows操作系统.net开发环境)

        ArcGIS Server是ESRI公司最新推出的服务器端品,主要可以实现两大功能:
        1、强大的Web GIS系统的开发;
     2、分布式GIS系统的开发;
  ArcGIS Server其内核与ArcGIS Desktop和ArcGIS Engine一样,都是ArcObjects库。其所谓的Web GIS,其实无非就是用Web技术来封装ArcObjects而已;而分布式的开发则是通过DCOM来实现的。

  小弟前几个月搞了一下ArcIMS,发觉开发起来确实痛苦啊,整天就是折腾javascript+arcxml,郁闷死了,听闻有ArcGIS Server这种好东西,稍稍了解一下,便向老板建议转向ArcGIS Server,老板居然同意了。于是便开发学习了。网上四下里找了一下,发现可用的资源非常少,只好自己琢磨。从零开始真不容易啊,这不,刚上手就碰到了两个问题,好在都已经解决,现在写下来,希望对和我一样的新手有所帮助。

  ArcGIS Server的安装非常简单,先安装ArcGIS Server,然后安装DotNet ADF,最后用ArcCatelog添加一个Server,然后再添加一个ServerObject,这样就可以进行开发了。这里的ServerObject与ArcIMS中的Service很像,其实应该是一个概念上的东西吧。添加一个ServerObject需要一个mxd或pmf文件,用来保存和管理需要发布的数据。

  好了,现在可以开始开发了。
  打开Visual Studio 2003,打开新建项目对话框,发现ESRI公司已经为我们准备好了一些ArcGIS Server Projects的模板,包括Map Viewer Web Application,Page Layout Web Applicaiton等等,我们就建一个Map Viewer Web Application吧,选中它,输入项目名称,然后点击“确定”按钮,我们发现一个已经包含了基本数据浏览和查询功能的Web GIS程序已经建好了。
  好,打开Default.aspx文件,发现网页包含一个Map组件,一个Toolbar组件,一个TOC组件,一个OverviewMap组件等等。看来与C/S开发模式下很像嘛,爽啊。其中Map组件和OverviewMap组件有两个必填属性:Host和ServerObject,就分别对应着我们在ArcCatelog中添加的的Server和ServerObject,输入它。然后设置TOC组件和Toolbar组件的Buddy属性,OK,大功告成!

  运行!咦,发生错误,定睛一看,原来是访问拒绝,这是怎么回事呢?记得以前看到一篇文章,说在Asp.net中使用COM组件,经常由于权限原因,产生访问拒绝,而ArcGIS Server本身就是对ArcObjects这些COM组件的再封装,看来就是这么回事了。找出这篇文章来,原来要在Web.config中加入一行就可以了:
        <identity impersonate="true" userName="Administrator" password="123456"/>
  再运行,哇塞,酷毙了,一个漂亮的WebGIS展现在眼前。可以浏览,查询,图层管理,鹰眼导航,还有指北针...
   (后来发现页面上还一个组件叫impersonation没用上,看了一下它的属性,只有一个identity,点击它,你会发现...呵呵,原来这个组件就是用来干这个事的,晕,又浪费了我两个小时的宝贵时间...)

  一行代码都不用写,爽。可是又很失落,心里没有底,这个Web GIS究竟是怎样实现的呢?

  待续

posted on 2005-12-23 14:34 watson 阅读(4094) 评论(22)  编辑 收藏 所属分类: GIS开发

评论

#1楼  2005-12-23 19:22 geo [未注册用户]

我在ArcCatlog中(预览)新建的一幅地图(ServerObject) 时停止响应(已经成功启动但图显示不出来)。
在ArcCatlog(基于Windows 2003)中配置输出路径时,出现意外。不知道是哪里出了问题。   回复  引用    

#2楼  2006-02-28 14:09 dll [未注册用户]

arcgis server安装之前是不是必须要先安装arcgis9啊??   回复  引用    

#3楼 [楼主] 2006-02-28 15:12 watson      

@dll
应该是不需要的。   回复  引用  查看    

#4楼  2006-02-28 15:13 Echo [未注册用户]

没有此规定,但是得先安装License管理器   回复  引用    

#5楼  2006-03-09 16:17 secondflying [未注册用户]

我的问题是这样的,我装的ArcGIS Server9.0没有问题,可是我在ArcCatalog中添加Server Object时出现问题Server Context creation failed on machine xxx. Access to output directory is denied。我在ESRI支持中心看到这是由于输出目录没有设置好,说是要为ArcGIS Server Object Container Account 设置写的权限,请问怎么设置啊?!   回复  引用    

#6楼  2006-03-18 21:28 lad [未注册用户]

请问,ArcCatalog中添加Server Object 这个步骤是在那里操作?   回复  引用    

#7楼  2006-03-19 23:16 Watsonyin [未注册用户]

@secondflying

将操作系统的ArcGIS Server用户和ArcGIS Container用户都加入到Administrator用户组中试试   回复  引用    

#8楼  2006-03-19 23:18 Watsonyin [未注册用户]

@lad

在左边树形目录的GIS Server那一项下,先添加一台Server,然后在该Server下创建Server Object
  回复  引用    

#9楼  2006-03-28 16:32 Grid GIS [未注册用户]

我在ArcCatalog连接一个Server时,出现“尚未实现”的Error,是什么原因啊??   回复  引用    

#10楼  2006-04-04 17:34 leox [未注册用户]

我安装完ArcGIS Server,但是没有安装DotNet ADF,在ArcCatalog中加一个GIS Server时说不能连接,
我已经将ArcGIS Server用户和ArcGIS Container用户都加入到Administrator用户组中都没有用
查看到log时说Server.cfg is not found.和Server failed to find place for a new instance. Machine list is empty.
我发现我的ArcGIS\cfg的目录是空的。我估计问题就是在这里。请问你的ArcGIS\cfg下有Server.cfg 么?可以贴出来参考一下么?

P.S真的很羡慕你有个好老板啊!
  回复  引用    

#11楼 [楼主] 2006-04-05 08:35 watson      

Server.cfg 文件的内容是这样的
<Server>
<ServerMachines>
<Machine>
<Name>watson</Name>
<Description></Description>
</Machine>
</ServerMachines>
<ServerDirectories>
</ServerDirectories>
<Properties>
<LogPath>E:\SysProgs2\ArcGis\log</LogPath>
<LogSize>10</LogSize>
<LogLevel>3</LogLevel>
<ConfigurationStartTimeout>300</ConfigurationStartTimeout>
<EngineContextTimeout>600</EngineContextTimeout>
</Properties>
</Server>   回复  引用  查看    

#12楼  2006-04-16 10:31 kourbeck [未注册用户]

@Watsonyin
ArcCatalog中添加Server Object的问题:您说的左边树形目录的GIS Server,您指的是start菜单下的吗?但是我这的GIS Server下只有GIS Server post installtion,之前ArcGIS[1].Server9.ecp我已经添加过了。   回复  引用    

#13楼  2006-04-16 20:16 kourbeck [未注册用户]

@kourbeck
不好意思,刚发现自己问的问题好白痴啊!见笑了!唉!!!
  回复  引用    

#14楼  2006-05-08 21:44 kourbeck [未注册用户]

我是新手,请问“用ArcCatelog添加一个Server”这一步的时候,“server: ”后面的空格该怎么填啊?是名本机还是什么?我试了很多编,总是提示“cannot connect to machine ***”。在之前已经用lincense manager配置过了,server也已经启动。谢谢了!!!   回复  引用    

#15楼  2006-05-31 10:37 sunny55 [未注册用户]

@kourbeck
你试试在你的机器上的网络属性里添加一个IPX协议试试   回复  引用    

#16楼  2006-06-11 16:47 huangss [未注册用户]

我也是新手,我出现的问题跟kourbeck 的一样,总连不上。是不是我连接的sde服务器上也一定要安装arcgis server啊?
  回复  引用    

#17楼  2006-06-20 17:07 fu [未注册用户]

你好
我是华中科技大学的硕士生
也要用ArcGIS Server开发一个WEBGIS系统
你写的东西不错
请问怎么联系你
我的qq是:14992236   回复  引用    

#18楼  2006-07-28 14:59 zhaozhao [未注册用户]

目前我单位的ArcGis Server使用善处于摸索阶段,所以只找了一部测试机,是将SOM、SOC全部装在一个机上,是否这台机一定要安装地图的配置软件和ArcCatelog?   回复  引用    

#19楼  2007-04-09 17:02 GIS新手上路 [未注册用户]

问个问题:你在上面说到,添加一个ServerObject需要一个mxd或pmf文件,用来保存和管理需要发布的数据。就是说我需要在arcMap里把数据库中的数据先生成一份mxd文件,才能够发布Service?能不能不需要该mxd,直接发布成
Geodata Service使用?   回复  引用    

#20楼  2007-06-05 11:46 francesses [未注册用户]

急!!!!author 与arcsde连不上,但catalog可以连上arcsde.
name,port , user,database ,password 都不错,但是testConnection 时候就failed.
曾经对sde post Installation 过几次,再重连author 和sde,成功过一次.
之后又不行.
有办法吗?折磨死了~~~~已经~~~   回复  引用    

#21楼  2007-11-14 20:20 jll [未注册用户]

你好,我想问问各位朋友,就是我以前用ARCGISSERVER做的网站,后来机械重作了,我又重新安装了ARCGISSERVER,那我以前的那个网站怎么才能看啊,还是不能用了?请各位朋友赐教
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-12-25 10:43 编辑过


相关链接: