如何进行ArcIMS的二次开发

很多人都询问过我怎么做基于ArcIMS的二次开发,因为他们在安装了ArcIMS后就已经束手无策了。这个情况我也曾经碰到过,在好不容易安装了ArcIMS后,我完全不知道下一步该干些什么,如何进行二次开发。当然,这个阶段已经过去了...

要进行基于IMS的二次开发,首先必须理解IMS的原理。ArcIMS是一个基于B/S结构的服务,它与我们常常谈论的ArcMap等程序完全不同。在安装完IMS后,我们必须先使用Author设计一个要发布的地图,在这个工具里面可以引入数据,进行着色,标注,显示提示文本等信息,它建构的地图将会在将来的地图发布中出现。当我们完成一幅地图的设计后,将把它保存为一个AXL文件,这是一个ArcXML文件,它里面保存在许多地图的原始信息,比如数据的来源,范围,如何着色等等。

生成了AXL文件以后,我们就需要建立数据服务,即想办法让这个数据可以在网络上发布。建立服务的工作是在管理器中完成的,服务有多种形式,如矢量、栅格和ArcMap服务等。服务是运行在内存中的一段进程,我们可以将它理解为一个运行在后台而没有界面管理的程序——这种程序很多,MYSQL、ORACLE都是服务,我们不打开他们的管理界面程序照样可以使用这些服务。对这些服务,我们需要做的是监听它们的默认端口,看看它接收和返回什么信息。

ArcMap服务是一个使用MXD文件的地图服务,这是因为Author的设计能力有限,如果需要进行复杂的着色,可以使用ArcMap来设计,然后我们直接使用MXD文件来完成这项工作。这个服务不是默认安装的。

建立了一个数据服务后,在服务器上要干的事情都完成了一大半。接下来的工作就是产生一个WEB站点,用于监听端口以实现电子地图的效果。这个工作我们即可以自己从头编写代码(这就是二次开发),也可以使用IMS自己带的设计器来设计一个站点。设计器可以使用HTML/JAVASCRIPT和JAVA两种方法来建构一个站点,但无论如何,这个站点都是用于监听相应的服务的。

以HTML/JAVASCRIPT站点为例,它是如何工作的呢。我们知道,HTML中无论如何也出现不了什么“动态”的效果,只有使用JAVASCRIPT配合,才能有点DHTML的效果出现,勉强出现一点“动”。当我们在一个WEB站点上看地图的时候,比如放大地图,绝对不是说有一个特殊的控件使得地图在缩放,而是前后出现了两张不同的图片,由于间隔时间短,使得我们有了这个“动态”的感觉。

当我们使用放大工具在图片上拖曳的时候,页面会调用一个JAVASCRIPT函数,产生一个ArcXML请求,这个请求包含了相关的信息,如希望出现的新图片的范围,数据等等。这个请求被一个表单发送到相应的服务,服务接收到请求后,会进行处理,它除了产生一张图片,还会沿反向路径传递出ArcXML响应,而我们的页面程序,在接收到响应后,需要对这个响应进行解析,如果是查看地图,就是解析出新图片的地址,然后将它传给一个图片对象,这样,图片就改变了,我们看起来地图就被放大了。

上面简要介绍的这些,就是XML的基本原理。实际上,XML的请求有多种,而解析方法也有很多形式,特别是所谓的“连接器”也有不同的类型,使得进行二次开发拥有多种方式,但总体而言,使用HTML/JAVASCRIPT是最简单的,也是最麻烦的。

 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值