如何进行ArcIMS的二次开发

转载 2006年05月23日 08:28:00

如何进行ArcIMS的二次开发

                                                                               ---------转载:http://www.hmgis.cn/ 浩淼的天空

    很多人都询问过我怎么做基于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是最简单的,也是最麻烦的。

相关文章推荐

利用C#进行AutoCAD的二次开发

  • 2014年06月22日 13:56
  • 63KB
  • 下载

基于产品进行二次开发.pdf

  • 2016年11月01日 15:01
  • 10.14MB
  • 下载

C#进行AutoCAD二次开发实例之倒角功能实现原理介绍

内容提要:         今天又是周五,到了双休的日子,比较兴奋,看了一晚上的《最强大脑》,顿时赶脚智商成了硬伤。。。刚才躺下打算睡觉,觉得还是应该写写CAD二次开发的相关一些内容,原因是最近搜网上...

四、Sketchup用ruby进行二次开发--Edge Arrays: Curves, Circles, Arcs和 Polygons

我们可以在Sketchup中用

Building Coder(Revit 二次开发) - 针对视图和阶段进行过滤

Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/09/filter-for-view-and-phase.html R...

delphi在autocad进行二次开发第III部

  • 2004年05月28日 00:00
  • 764KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何进行ArcIMS的二次开发
举报原因:
原因补充:

(最多只允许输入30个字)