鉴定说明书认股鉴定表合同书调查报告市场调查自查报告调查表案例

最新文档

欢迎学习ArcIMS初级教程


  文件类型:DOC/Microsoft Word  文件大小:字节

更多搜索:欢迎  学习  ArcIMS  初级  教程  
欢迎学习ArcIMS初级教程
第一章 ArcIMS概述
章节概述
本书将向您介绍一种集创建和维护基于地理信息的Internet网站于一身的的工具——ArcIMS.本课题将通过讲座,老师演示和练习上机等多种形式,使您能够全面迅速地掌握ArcIMS,包括深入了解ArcIMS软件包的组成,设计交互性的制图应用及探讨ArcIMS的软硬件体系结构等.
本课中每一部分的开始都会提出一系列思考问题.提出这些问题的目的是为了吊起您的"胃口",以便让您预先了解一下接下来的课程和练习当中所涉及到的内容.您开始时不必着急回答这些问题,只需要在脑子里有一个印象即可.在学完这章内容并做完练习之后,再思考和回答一下这些问题,并将您的答案和本书附录中的答案对照一下.相信到那时您会更加熟悉本章相关的内容和术语.
本书第一章是ArcIMS概述在这一章中您将学习ArcIMS与ESRI其它Internet解决方案的关系,ArcIMS产品的Internet应用举例和ArcIMS的简单介绍.
GIS与Internet
Internet是自印刷术发明以来最伟大的通信革命.的确,Internet自诞生以来,在短短的十年内已经从一种简单的数字传输数据的方式发展成为一个巨大的产业.如今,Internet联系着全世界千千万万的人,并且已经作为人们日常生活中重要的一部分.
Internet也提供了一个分析和解决地理问题的绝佳论坛.有了Internet,人们就可以在地球的任何角落方便经济快速地获取和传输地理数据.ArcIMS所强调的正是在Internet上发布地理数据.正如用户可以从其它网站上获取数据一样.由于地理数据在Internet上具有很大的自由度和移动性,从而最终能够在许多领域解决许多实际问题,如城市管理,商贸管理,社会和环境规划,工业布局等.
什么是ArcIMS
ArcIMS在一种简单的框架提供了强大的GIS功能.它支持通过要素流的方式传送影像或矢量数据.从而改变了用户在互联网上交互制图及访问地理数据的方式.
ArcIMS包括了如下特征:
简单易用的安装,应用和管理向导和模板;
强大的客户端,支持流方式传输矢量数据;
在Internet桌面浏览器中集成本地数据与网络中的数据;
服务器构架的灵活性;
高质量的地图符号显示.
ArcIMS 3.0版是从ESRI的其它Internet解决方案发展而来的,它吸收了这些产品长处,如ArcView IMS的简单性及其功能的强大性,MapObjests IMS的灵活性和可编程,GIS数据服务器框架的开放性等.关于这些产品将在本章下面的部分详细介绍.
ArcView IMS介绍
ArcView IMS是一种通过服务器在Internet或Intranet上提供地图的扩展模块.通过ArcView IMS,可以脱离框架使用ArcView,在互联网上制图及提供GIS应用.
为了使数据快速地在网上发布,ArcView IMS包含了一个Java Applet安装向导——Mapcafe.通过创建自定义的将Mapcafe驻留的HTML页进行地图定制.Mapcafe通过网络可以向用户提供制图工具,这些工具允许用户进行一些诸如漫游,缩放,识别地图特征属性,定位,建立热区链接等操作.Web浏览器透明地下载网页中的Java Applet,因此用户无须操心,即可使用这些制图工具.
网上创建交互式地图所使用的空间数据有许多类型,包括ArcView GIS的Shapefiles,ArcInfo的coverage,SDE图层,CAD文件如DWG,DXF,DGN等等.其它可以使用的文件包括一些影像数据如TIFF文件,JPEG文件,LAN文件和BIL文件,数据库文件(Access,dBase以及其它与ODBC有关的数据库文件)或图形文件等.
ArcView IMS 允许使用ArcView GIS强大的制图界面来创建地图.在网上提供的地图实际上是在ArcView视图窗口中看到的地图的"虚拟视图".因此,ArcView GIS的大多数功能,如专题符号显示,缓冲区分析和空间分析等在ArcView IMS中都照样适用.
MapObjects IMS简介
MO(MapObjects)IMS是一个组件集,用来管理客户请求,向web服务器制图程序传递请求,并将结果地图与数据通过网络传递给客户端.MO IMS是MapObjects 的Internet解决方案工具箱中的一部分.这个工具箱包括MapObjects IMS,MapObjects和ArcExplorer三个部分.
当然,要充分发挥MapObjects IMS的潜能,必须充分了解MapObjects.MapObjects 是ESRI推出的一个可嵌入的制图与地理信息系统组件集合,它提供了45个可编程的ActiveX自动化对象,可以插入到Visual Basic,Visual C++等支持工业标准的Windows开发环境中调用.
MO验室IMS采用了流行的三层结构体系来运行分布式应用程序.对于客户端浏览器,需要具有访问MO IMS端点的能力(如ArcExplorer, HTML, Java, Actives)微软的IE中已经提供了AcrExplorer for Active X可供使用.
对程序员来说,使用MapObjects IMS的关键是他们的编程能力;对非程序员ArcIMS提供了简单易用的界面,可快速地创建功能强大的网站.
RouteMap IMS
RouteMap IMS是ESRI解决网上制图的软件家族中最年轻的一员,它不仅价格便宜,而且能够独立运行,能够满足某些单位的网站提供制图,销售点分布以及路径搜索等功能的需求.
从上面的网站可以看出,RouteMap IMS提供了专门的功能.这种软件内含了美洲大陆的街道和陆标数据.利用这些数据,程序开发人员可以快速地使网站具有制图功能.RouteMap IMS比较小,所以其定制的弹性不如ESRI其它网上解决方案产品,但是RouteMap IMS相对于其它"胖"IMS产品来说确实给用户提供了更多的选择.
有关RouteMap IMS技术的更详细的信息可以在ESRI的网站上查询.
GIS数据服务器
当网站需要响应大量请求或某些特殊功能的应用时,可能需要有GIS数据服务器的支持.GIS数据服务器是一个非out-of-the-box的方案.
Realtor 与visa.com是两个高容量的网站,需要采取专门的有效解决方案.例如,Realtor.com只需Internet用户输入他想购买的房子的有关数据就可以找到相应标准的房子.又如Visa.com,客户只要填入某个地址,网站就可以找出在给定的距离内最近的所有自动取款机,这些都不是其它IMS解决方案所能解决的复杂问题.这些例子中,GIS数据服务器技术可以用来管理,维护这种高数据通信量的应用.
为什么还要ArcIMS技术
从前面介绍的例子中可以看出,ESRI提供的网上制图解决方案都各有千秋.因此,作为新一代的Internet软件,ArcIMS集这些IMS产品的长处于一身,简单易用而又功能强大.
ArcIMS具备成熟的客户/服务器体系构架,允许对各层进行直接定制.例如,客户端用户通过定制HTML,JavaScript或调用开放的对象模型,可以建立特定的Internet应用程序.而在服务器端,ArcIMS提供了投影和要素专题化等功能.中间件可以使用ASP和ColdFusion技术进行定制,从而扩展自己的网站.
ArcIMS其它的一些重要特征还包括:支持要素数据流方式,支持不同来源的数据整合以及使用一些辅助工具.通过要素数据流方式,ArcIMS不仅能够向客户端传输影像数据,而且还可以传输矢量数据,它还允许进行一些超出制图的功能,如数据的空间叠加,地理分析等.最重要的是,通过要素数据流方式,不仅可以通过网络访问远程数据,而且还可以使用自己本地机上的数据.辅助工具包括客户端的要素编辑工具——EditNotes和共享某些特殊地理信息的工具——MapNotes.
与ESRI其它IMS产品不同的是,ArcIMS作为NT服务运行,这一特征使得许多现有用户可以有效地访问网站.
比喻:ArcIMS的体系结构
ArcIMS包含了许多部分,每个部分在客户/服务器结构中都扮演了重要的角色.简单说来,ArcIMS有三个层.
第一层是广域或局域网内的客户端或用户终端,它是直接或间接与服务器相连的计算机或应用程序,通过HTTP或TCP/IP协议与服务器建立通讯.
第二层称为中间件.可以把中间件比喻成传输客户端和服务器端之间接收,发送请求并作出响应的"经纪人",它管理客户端和服务器端之间的数据,以达到最佳效率与传输速度.
第三层是服务器.其中ArcIMS空间服务器可被看成软件服务器,管理并处理需要在Internet上发布的地理数据.对地理数据的请求被传送到服务器,服务器代理对所需数据执行请求,生成一幅影像或要素地图,进行查询,地理编码或要素提取等等.最后,产生的应答又通过中间件返回到客户端.
创建一个ArcIMS网站
简单地说,创建一个ArcIMS网站需要三个步骤:
明确所需数据的基础上,使用Author生成一幅地图.Author允许同时使用多个地理图层,并选择地图的符号与结构,最终输出结果为.AXL文本文件..
.AXL文件创建好了后,必须在中间件中进行注册,这一过程被称为"启动地图服务". Administrator就是用来让服务器与中间进行通讯的应用程序.
一旦创建了地图服务并用Administrator启动服务后,就可以设计网站进行发布了.整个过程中Designer会通过向导引导你创建HTML页面和相关的支持文件.
ArcIMS组成
如果你进行的是典型安装,运行ArcIMS时就会出现上图中所示的应用程序组.下面四页将会分别说明ArcIMS3.0中这些程序的功能.
Author
ArcIMS网站的建立可以用三个主要程序来实现,其中第一个要用到的程序就是Author.它允许网站开发人员确定使用哪些数据以及如何显示这些数据,Author允许定义在WWW网站上发布地图的内容.
在一个目录窗口中,用户可以找到需要在网上发布的数据图层,这些数据为ArcView 的Shapefiles,影像数据或SDE的Layers(后面的章节中还会详细谈到).一旦数据确定下来了,网站程序员就可以定义图层顺序及其显示方式.例如,你可以改变一个"lake"图层,使它为蓝色多边行填充,深蓝色的外框线,并且带有橘黄色,14点,Arial字体的标注.
使用Author可以根据你的要求任意改变多边形,点,线和文字标签的显示,你也可以设定其显示的比例尺范围,使得某些要素只在一定比例尺范围内才显示.此外,你还可以设定表格数据查询的参数,或地理编码时基于街道地址的精确坐标点.
Administrator
ArcIMS的第二个应用程序为Administrator,它是控制网站如何运行的重要组成部分.Administrator最主要的作用是创建和启动地图服务.地图服务的建立是根据Author生成的AXL文件.地图服务本质上就是你想公布的数据的视图.
Administrator还有其它的一些一般功能.你可以用它来维护你想在Web服务器上发布何种类型的网站,也可以增加或配置ArcIMS空间服务器,有效的平衡请求和应答以提高其效率,查看网站的统计信息等等.
本课后面还会详细介绍Administrator.
Designer
第三个ArcIMS应用程序允许开发人员根据在Administrator中创建的地图服务设计网站.
确定了网站将要使用的地图服务及其专题显示,还必须为其设计网站.你可以利用Designer事先做好的模板来建立网站.HTML浏览器模板允许地图影像在客户和服务器之间传输,而Java浏览器则还可以传输矢量要素,后面还会谈到这两种客户端浏览器.
一旦选定了使用哪种浏览器模板,Designer向导就允许你进一步设计你的网站.例如,你可以通过选择你希望让用户使用的工具来定制客户端工具条,也可以改变比例尺栏,导航窗口,各元素的颜色以及显示范围等.
Manager
ArcIMS的Manager是另一种简便的创建和维护网站的工具.它使用一种基于向导的方法全程引导网站程序员创建网站.实际上,Manager包含了ArcIMS的三个主要组成——Author,Disigner和Administrator.
使用Manager相对于分别用上述三个组件来说有许多好处.首先是在一个程序中完成所有的工作,并有指导与解释特别是对一些新手而言,可以迅速高效地创建网站,其次,Manager 可以通过远程登录来管理,而另三个应用程序则不行.只要网络是相通的,就可以从一台机器登录到另外一台装有ArcIMS Manager 的机器上来创建或修改网页.因此,理论上讲,某网站程序员完全可以从纽约的某台计算机上设计一个网页而存储到洛山矶的某台计算机上.
帮助
ArcIMS的帮助系统是个很重要的资源.它能够快速地引导你找到你想要了解的大量主题或要完成某项特殊任务所需要的步骤.联机帮助在基于网络的Manager窗口中或基于应用的Author,Designer和Administrator中可以使用.
在ArcIMS基于应用程序的帮助系统中,要浏览帮助内容,可以点击Contents标签.里面的内容是以主题的方式组织起来的,双击某个主题可以详细浏览其内容.如果要查询,单击Index标签,输入关键字,系统将显示与之相关的条目.双击你想要查看的条目,可以详细浏览该主题的内容.
有些问题还可以在FAQ里面查找到.在这里,你将发现许多经常被问到的问题及其可能的答案.此外,ArcIMS的帮助系统还包含了一个ArcIMS及GIS词汇表.
Manager中的基于网络的帮助系统中还包含了连接到ESRI主页及ArcIMS主页的超级链接.
练习1:熟悉ArcIMS3.0
第二章 使用Author(第一部分)
章节概述
本章将要讲述如何运用Author来选择待发布数据以及如何显示这些数据.
任何一个GIS网站成功的关键都取决于使用的数据的质量.所以首先要做的就是为你的网站找到合适的数据源.这一章将会讨论ArcIMS使用何种类型数据.有了合适的数据源,接下来便要考虑如何把这些数据合理地安排到你的网站上来,并以所需的方式显示.这些都是在Author中需要完成的工作.工作完成以后,Author将生成一个.AXL文件,您将学习.AXL文件是如何创建的,其内容及其在ArcIMS的作用.
在第三章中将会更进一步学习Author处理的其它内容.
Author
ArcIMS站点的创建可分为三个主要的应用程序,第一个应用程序为Author,允许网站开发人员确定使用哪些数据及以何种方式显示这些数据.通过Author可按你的要求任意改变多边形,点,线和文字标签的显示,也可以设定其显示的比例尺范围,使得要素只在一定比例尺范围内才显示.此外,还可以为查询属性表格数据设定好变量,或者为基于街道的地址编码设定精确坐标点.
在ArcIMS中启动Author可以有两种方式,即直接在程序中打开和通过Manager打开.两种方式基本相似,唯一的一点不同是:Manager中启动的Author可以创建地图服务,而直接在程序中打开的Author却不行.注意,在进入网站的设计阶段之前必须先定义和启动地图服务.
Author中最终输出的是.AXL文件.AXL文件是基于XML的文本文件,它把地图的图层及其符号的选择保存成一种ArcIMS可读文件格式.
ArcIMS比喻:数据
数据是ArcIMS建立网站的基础原料,因此可以说,没有数据就没有ArcIMS.可以把数据比喻成餐馆里的食物和饮料.食物的类型有很多,比如苹果,黄瓜和面包等等,同样的,数据也有很多不同的类型,比如影像数据和Shapefiles数据等.
使用目录添加图层
不管是使用程序中的Author还是Manager中的Author,都需要使用目录向你的网站中添加数据图层.工具条上的Add Layers工具按纽将打开目录窗口.
目录窗口和Windows中的资源管理器很相似.你可以先定位到存放着图层的文件夹,然后用鼠标选中你想要加入到网站中的图层前使之高亮显示.ArcIMS在目录窗口中只显示三中类型的数据:ArcView的Shapefiles,SDE的图层以及影像文件.按下CTRL键可以同时选中多个图层.选好了需要添加的图层后,点击目录窗口中的Add Layers工具就把这些图层添加到Author的TOC中去了.
如果图层数据只存储在少数几个文件夹里,而且你不愿意每次都到目录窗口中去寻找你要的数据,那么你可以把它们添加为"favorites".这跟网页浏览器中的书签很相似.具体的做法是:在目录窗口中右击你想要添加的文件夹,选择Add To Favorites即可.此文件表将会出现在目录树的"favorites"部分中,在目录窗口中点击Organize Favorites,可以整理你的favorite文件夹.这些文件夹保存在另一个.AXL文件(favorites.axl)中,可以保存下来留待以后使用.
Shapefiles
Shapefiles文件格式是ArcView GIS存储地理要素的几何特征与属性信息的一种格式,要素的几何信息是以包含一系列矢量坐标的shape的形式存储的.
ArcView一般至少为每个Shapefile文件创建三个文件.其中.shp文件存储的是要素的几何信息;.dbf文件存储的是要素的属性信息,而.shx文件存储的是要素集合信息的索引信息.有时,可以创建其它索引文件来加速分析和查询的速度.
如果你想了解有关ArcView以及Shapefiles的更多信息,请参考另外两门课程:ArcView初级教程和ArcView高级教程.
ArcSDE(空间数据引擎)
ArcSDE包含于ArcIMS中.ArcSDE本质上是一个客户/服务器软件,用来在主流数据库中,如Oracle,Microsofr SQL Server,IBM获至宝DBI,Sybase,,Informix,存储,管理及快速检索空间数据.ArcSDE具有很强的伸缩性,使得空间数据能够很方便地与非空间数据进行集成.
ArcSDE能够很好地与ESRI公司其它一些客户端应用程序如ArcIMS,ArcInfo和ArcView以及象MicroStation和AutoCAD这样的CAD产品集成,同时还支持第三方开发商的市场解决方案.SDE确保任一机构在任一网络的任一服务器上都能够向任一用户提供空间数据及制图.
通过ArcSDE,能够管理具有数百万空间要素的大型空间数据集.ArcSDE对各级企业均能适用,这归功于其在客户与服务器间协同处理.ArcSDE通过TCP/IP协议,提供网络上的开放数据访问;同时,ArcSDE可运行在不同的操作系统环境中,如UNIX,Microsoft Windows的客户端与服务器端.
影像数据格式
影像数据是一种基于像元的数据格式,每个像元或像素都有一个值.比较常见的影像数据有卫星影像,航空相片和扫描文件.在ArcIMS中,你可以把影像数据作为一个图层加入到ArcIMS中.影像数据经常被作为背景显示.
ArcIMS的服务器端支持多种影像数据.
在客户端的网页浏览器中只能显示三种格式的影像数据——gif,jpg和png文件.这些格式的图像,尤其是.jpg文件,经常被称为有损文件.这里"有损"的意思是图像在压缩过程中虽然大大减小了文件存储空间,但同时也丢失了一些图像信息.因此,这些类型的影像数据能够在网上传输得更快,但是以分辨率的降低为代价的.
GIS中有一种比较特殊的影像格式ArcInfo Grid.Grid使用像元矩阵来表示某种地理或现象.可以把Grid想象成罩在地表的一张网,每个网眼都有一个且只能有一个代表该像元内地表特征的值.该值是唯一的.因此,用该像元内主要的特征的值来代表整个像元的特征.
漫游和缩放
把你想要在网上发布的图层数据添加进去后,Author提供了一些工具,可供更详尽地查看数据,漫游和缩放工具就在其中,它们是:
Zoom to Previous Extent——该工具用来返回到前一缩放或漫游操作后的视图范围;
Zoom to Full Extent——用来使地图视图窗口中所有的图层都完全显示;
Zoom to Active Layer——在TOC中激活某一图层后,点击这一工具可以全图显示活动图层;
应该注意,ArcIMS中许多操作都只对活动图层有效.例如,用Identify工具时只能标识活动图层.图层处于激活状态时,TOC中该层的名字会被一个暗灰色矩形包围.点击TOC中图层名字可以激活该图层.
Zoom In——放大鼠标点击处或在地图显示上定义的方框范围;
Zoon out——缩小鼠标点击处或在地图显示上定义的方框范围.
Pan——可在任何时候使用此工具向任何方向拖拉移动视图,而无须改变地图比例尺.
比例尺
GIS中使用的空间数据既可以以未经投影的地理坐标系统(十进制的经度和纬度)存储,也可以以经过投影的平面坐标系统x,y存储.经过投影的数据是以现实中的长度单位(如米,英尺)存储的数据.在存储数据时,需要告诉ArcIMS数据存储的单位——要么是十进制的经纬度,如是米或英尺.必须告诉ArcIMS数据存储时的单位,这可通过设置地图单位来完成.
比例尺单位是ArcIMS在比例尺中用来反映比例尺大小或度量的单位.你可以选择任何合适的单位(英里,英尺,米,千米等)来为你的地图视图设定比例尺单位.
屏幕单位是一种用尺子在显示屏上来估测真实距离的方法(如显示屏上一英寸代表地面实际50英尺).显示屏的单位可以设为英寸或厘米.
在Author中设定单位后,只有地图单位是最终写到AXL文件中去的单位.其它任何为显示而设置的单位都仅仅用来帮助网站程序员建立一个高质量的网站.
移动图层
当图层列表中已有多个图层时,就可能要对图层的顺序进行调整.ArcIMS显示层时按照从下至上的顺序显示图层列表中的图层.记住这个顺序非常重要,因为有些多边行图层会覆盖点其下的图层.习惯上把点图层和线图层放在图层列表的上面,而把多边行图层和影像图层放在图层列表的下面.要改变图层的绘制顺序,可在图层列表中用鼠标左键按住待移动图层,然后向上或向下拖动到新位置.也可将鼠标移动到待移动图层之上按右键,在弹出的菜单中选择Move layer,通过此方法,可直接将图层向上或向下移动,或移动到列表的顶端或底端.
图层属性
图层最初是以默认的随机颜色显示的,多边行要素一般是实心填充,点标记则用圆形符号来表示.当然,你想以自己想要的方式来显示这些点,多边形要素,这时,你就需要通过修改Layer的属性来改变符号的显示.
显示图层属性的方法有两种:一种是右击需要改变属性的图层,从弹出的环境菜单中选择Layer Properties选项;另一种直接是点击工具栏上的Layer Properties工具.
Layer Properties窗口打开后,里面有三个标签可选.其中Symbols标签可以改变要素的显示方法,风格,颜色和大小.显示要素数据的方法有三种:单一符号法,渐变符号法和独立值.
标签的作用是根据属性字段对要素自动标注,可以对标注字段,标注字体,大小以及效果进行设置.General标签里显示了该图层的基本信息.你可以改变图层在网页的图层列表中显示的名字,还可以设置要素显示的比例尺范围.
单一符号法
在Layer Properties中的使用此法时Symbols标签下,可以在三种绘图方法中选择一种绘制要素,其中第一种就是单一符号法(One Symbol),每个要素都以相同的符号进行显示,而不管其属性值.
对于点要素层来说,允许选择点标记符号的类型(圆,正方形,三角形,十字,星或影像等),大小和颜色.
对于线性要素来说,允许选择线型(实线,破折线,点线,点划线,点点划线以及铁路线),颜色和粗细.
对于多边形要素来说,填充风格有实心,透明,水平线,竖线,斜线和图像.其中图像可以使用.gif文件和.jpg文件来作为多边行图层的"墙纸".
在对颜色进行选择时,可以从14种事先定义好了的颜色中选择,也可以用RGB(红,绿,蓝)或者HSB(色调,饱和度和亮度)方法来自定义颜色,或者直接从样色表里选择也可.
对于符号的大小,可以直接点向上或向下的箭头来改变线的粗细或点的大小.
独立值法
对数据进行分类显示的另外一种方法就是唯一值法.对于指定的字段(数值型或字符串),可用一种单独的符号来表示字段中的唯一值,这种方法很适合于显示诸如国家,州或销售范围等值唯一的数据.
举例来说,假如你已经给1000个地址进行了地理编码,并且为此创建了一个潜在顾客分布的图层,那么毫无疑问,你就可以用顾客的名字来唯一标识这些点.但是,由于每个顾客都有一个唯一的名字,就需要使用1000种符号.但是,可以使用"顾客最喜爱的产品"来分类显示.这样,只需要少量的符号就可以表达更丰富的意义.
ArcIMS可以使用许多独立值分类方法来表现要素,其中Bountiful harvest,Pastels,和Minerals是三种预定义的色彩方案.ArcIMS既可以对每一个值用一种随机颜色显示,也允许人为设置颜色.要改变任何符号的颜色,点击该颜色或Symbols标签下的符号即可.
唯一值法中,对于所有的要素,你都可以改变其样式类型(点的标记,线的类型,多边形的填充模式),对于点和线要素来说还可以改变它们的大小或粗细.
渐变符号法
ArcIMS中制作专题图的另外一种方法就是渐变符号法.这种方法使用一系列渐变色或渐变符号来显示不同的要素类别,适用于显示诸如温度,人口,年销售量等有一定的变化的数值或值范围的数据.
Author中允许对使用渐变符号分类的数值字段进行选择,也允许改变分类数或分类范围,从而使得所有要素都能划分到某一类中去,每一类都以特定的符号显示.
ArcIMS在进行数据分类时使用的是等间隔法,即分类后的子类的范围是相等的.在Author中的值域是不能人为改变的.下面的课程中你将发现,这些值可以在创建的AXL文件中改变.
对于渐变的数据,可以定义起始和终止颜色点或线状符号的大小,例如,你可以制作一幅美国温度分布图,较冷的地方用蓝色表示,较热的地方用红色表示.
默认地,在TOC中显示的标准名与子类值的范围相同,可以人为输入文字改变各个子类的标注.由于Java的限制,必须在输入每个标注后按回车键,以确保标注被正确地修改变.
ArcIMS比喻:AXL文件
AXL文件是Author的最终输出,它描述了所要显示的图层及其显示方式.
可以把Author产生的AXL文件比喻成你所喜欢的某个菜的的食谱.食谱一般包含了一系列调料及详细地描述了这个菜的烹饪的方法.同样的,AXL文件也包含了一系列数据图层,并且准确地描述了这些图层是怎样显示的.但是,AXL文件不会象食谱说明每种调料的用量一样说明数据的数量,因为数据的数量是数据本身的一个属性.
食谱和AXL文件还有其它一些显著特性.例如,餐馆的顾客点菜时会直接点鱼香肉丝而不会点鱼香肉丝的食谱.同样的,ArcIMS的客户要的并不是AXL文件,而是已有的AXL文件的描述(即地图服务).
AXL文件
the Arc extensible markup Language(简称AXL)文件格式定义了数据及HTML页存储时的一种标准,AXL记录格式与XML(Extensible Markup Language,简称XML)相同.
AXL文件是Author的输出文件.Author在写AXL文件时记录了所要发布的是哪些数据,这些数据的存储位置以及这些数据是怎样显示的.AXL文件并不存储真实的数据图层,而只是存储了这些数据的引用信息.
当Author中点击"save"或在Manager中完成了Authoring过程后点击"next step"时,都会生成AXL文件(AXL文件名与初次生成站点时指定的Map File名相同).
AXL文件是文本文件,很像ArcView中的工程文件(.apr文件),可以在写字板中打开.
AXL文件示例
请仔细分析上面这个AXL文件的结构和格式,注意其中的标签是如何指定对数据及属性的引用,这些AXL标签都经过预先定义,实现相应功能.
例如,在上面的AXL文件中,找出标签.这个标签符将确定所使用的数据位置.请注意标签的用法,它们都是以开始而以结束的,许多头标识和尾标识都是成对出现,而有些如SHAPEWORKSPACE标签则只需要一个标签就包含了头标识和尾标识.AXL文件和HTML文件一样,使用了嵌套式标签结构,也就是说,一个标签(如)必须在其上一级标签(如)结束之前结束.为直观起见,一般采用缩进式书写格式来表明嵌套关系.虽然并不要求一定要采用缩进格式书写AXL文件,但缩进式格式有助于提高AXL文件的可读性.
指明了要素数据的准确位置,在上面这个例子中是SanFrancisco文件夹.San Francisco的实际数据并未存储在AXL文件中,这里只存储了它的文件夹的位置.在里还定义了它的一些属性.这些属性对于确定标签所需要的参数是很有必要的.本例中,name属性指明了工作空间的内部名字,directory属性则指明了数据的位置.注意,标签必须用大写,而属性必须用小写,并放在双引号内.
再看一下其它的一些标签.标签指明SanFrancisco文件夹内的pizza图层.标识符定义了pizza点要素的颜色,Pizza图层中点要素的样式类型及大小.
在Manager中创建AXL文件
在Manager中从生成AXL文件阶段转到建立网站阶段的过程与通过Author 生成AXL文件的过程是不同的.实质上,Manager把生成AXL文件划分成三个步骤:
生成一个地图服务——选定;
生成AXL文件——使用Author界面为图层添加和选择显示符号;
创建地图服务——为地图服务选择虚拟服务器并启动地图服务
Manager在开始Authoring后就启动地图服务.要设计和浏览网站,就必须启动一个地图服务.地图服务只是在AXL文件中定义的待发布数据的视图,它本身并不是一个物理文件.因为AXL文件只存储了数据的引用信息以及数据是如何表达的,因此,地图服务依赖于AXL文件.但是,AXL文件并不依赖于地图服务.在创建地图服务时,必须指定一个虚拟服务器.
选择虚拟服务器
传统上,IMS基于以下方式运行:客户端向服务器提交请求如漫游或演放服务器响应请求并返回一新的影像.不过,ArcIMS却能够通过流方式把影像或矢量数据从服务器端传输到客户端,这无疑是有很多优点的.
影像数据流总是前向的,其在本质上还是当客户每进行一次象漫游和缩放这样的操作后服务器都向客户端发送一个新的.gif,.jpg或.png文件.
要素数据流方式是基于网络制图应用的一大进步——它使得前所未有的一些GIS功能在客户端计算机上"司空见惯".
通过要素数据流,客户在执行漫游或缩放操作时只有需要用到新的几何要素信息时才向服务器请求新数据,而当前以及前面已经有的范围内的数据已经成为客户端的要素缓存中的一部分,可以直接对其进行调用而不必向服务器重新请求.由于很多GIS功能都已经嵌入了基于ArcIMS要素数据流的网站当中,所以在运行时向服务器发出的请求大大减少了.
使用要素流技术的ArcIMS站点的性能将会得到提高且功能更强大,如可以进行地图提示与要素编辑.
由于要素数据流技术有其本身的复杂性,所以对客户端也有一些额外的要求——客户端需要能支持或者下载了Java 2.同时,客户端还要求能够支持Java applets并且一般来说,在起始时由于需要需要下载一些关于applets的东西而等待的时间会更长.
练习2 创建WEB站点
第三章 使用Author(第二部分)
章节概述
本章将讲述在创建AXL文件过程中其它的一些选项的用法.这些工具和功能的使用将会增加网站的美观.
在本章中,将会学习如何使用显示比例范围,以解决显示时要素间的冲突及提高网站的处理时间,同时还将学习如何设置地理编码,如何使用复合专题图.在练习时还将创建存储查询,以方便查询特定信息.
General 标签
标签中可以设置活动图层的许多重要参数.
首先,可以在General 标签中改变图层在用户最终能看到的图层列表和图例中的名字.图层名并不影响实际存储的实际数据文件名,它可以使用一些更具描述性的名字以便于用户理解;
其次,还可以设置图层显示的比例尺范围.换句话说,你可以设置一定的比例尺范围,使得图层只在一定比例尺范围内才显示而在此比例尺范围内则不显示;
此外,General 标签中还列出了活动图层的基本信息,如源数据的名称,类型,位置和文件大小等等.
根据比例范围显示数据
通过设置图层显示的比例范围,可以使地图在某个比例尺时具有适当的详尽程度.例如,你可能希望一个非常详细的图层只有放大到一定程度时才出现,或者,你可能希望在缩小地图使之全部显示时不要显示城市街道的图层,这些,都可以通过设置显示比例范围来实现.
要交互式地设置比例尺范围,首先放大你希望开始看到某一更详细的图层的区域,然后右击活动图层,选择Set Maximum Scale Factor.这样,当地图缩小超过了这个比例尺范围时,该要素图层将不显示.同样,使用Set Minimum Scale Factor可以使得图层在放大到一定程度时不再显示.
要改变最小或最大比例尺,可以重复上述操作;或右击活动图层选择Remove scale pactor移去比例范围,也可以直接通过图层属性中的General 标签来设置.这些设置的最终结果都保存在标签的minscale和maxscale两个属性中.
Labels标签
地图中可以加入一些文本信息来描述图层要素,这些文本来自图层属性表中的某个字段.图层属性中的Labels标签就是用来建立这种注记的.
要建立注记,首先必须指定用来标注的字段.比如,对于一个街道图层,你可能希望用街道名来标注.其次,你还可以根据你的要求指定注记的字体(可以是windows提供的任何字体),大小,颜色,粗体,斜体.
ArcIMS提供了许多点要素或线要素的注记方法.例如,对于线要素,可以直接把注记放在线要素上部,下部或线上,而对于点要素,可以对注记进行任意角度的旋转,并且可以选择文本与点要素的相对位置.例如,你可能希望注记放在某个要素的中心,或者以一定的角度放在点的某个特定的方向上.
ArcIMS为最佳地放置每个注记提供了一种特殊的算法.这一算法还可以解决注记冲突问题,使得注记不会出现重叠.应注意,ArcIMS中的注记是不可以缩放的,所以不管地图以多大的比例显示,注记文本都以同样的大小和样式出现.如果你想要注记可以缩放,可以考虑使用ArcSDE中的注记图层.
注记的特殊效果
可以通过设置注记特殊效果来增强地图的美观性.通过点击Labels标签下的Effects按纽,可以为注记增加阴影,发光或者背景等特殊效果.
增加阴影将使文本看起来有一点三维的效果,而发光则使得在字体的周围出现某一背景色.当然,你还可以增加某一背景,也就是使得文本被一个有颜色的矩形所包围.
Allow Duplicate可以为具有相同属性值为某些要素设置多个标注.如果不选这一项,ArcIMS就只显示一个标注,而不管有几个要素具有这一属性值.例如,一条街道有好几个部分,但只用一个标注对其进行注记.
Use highest text quality选项使得该层的所有注记都以最好的效果显示,这可能会减慢大数据量的运行速度,所以如果你想要以更快的速度生成地图的话,最好不要把该项选上.
Layers标签
可以通过向图层添加额外的专题图,创建一些复杂的符号,使地图更富吸引力和可读性.较常见的用法就是将一个道路要素画两次,一次用比较粗的线,另一次用不同颜色的细线,这样组合起来就可以形象地表现高速公路了.
使用Layers标签可以增加一些新的专题图,这里可以增加,删除或修改某个专题图.你可以把某一层所使用的点,线,面的样式应用到其它的图层上.此外,你可能希望把一个粗线专题符号放在细线专题符号的下面,这时你可以通过上下移动专题图层来调整它们的显示顺序.
通过Set Scale Dependant 工具可以设置同一专题图层在不同比例尺下不同的显示.例如,你可能希望州际公路在小比例尺是以单线的形式出现,而在大比例尺时以被分割的粗线的形式出现.使用这一工具时,标识符被写进AXL文件.
地图提示
有时候为了快速地访问某些要素信息,可以用某一字段来设置地图提示.在Author中指定的地图提示并不被写进AXL文件,因此它是为方便建立网站而设定的,客户端用户是看不到这种地图提示的.下一章将会介绍怎样为客户端设置地图提示.
要给地图提示设置参数,点击工具栏上的Map Tips工具.在弹出的对话框中可以设定用来作为地图提示的字段.重复操作可以为每个图层都设置一个地图提示.要删除某些或所有的地图提示设置,可以使用Clear All MapTips Fields或Clear Selected MapTips Fiesd两个按纽.
Identify工具
识别(Identify)工具允许你用鼠标点击图层的要素来查看它(们)的所有属性.选择Identity工具并点取活动图层上的要素,即可查看要素的属性.当鼠标点击某点时,起容差范围内的所有的要素的属性信息都将显示出来,所以如果有许多要素靠得很近时,Identify将要照一定的容差显示点击处附近的所有要素属性.选择了多个要素时,点击左边列表中的要素使其高亮显示,即可获取其属性值.
注意,通过Identify工具打开的属性信息是不可编辑的.
Find工具
使用Find工具可以根据字符串属性快速地查找到某些要素.它是通过查找属性字段的字符串,并可以输入字符串的一部分,Find仍将返回结果,来返回符合条件的记录的.输入字符串不久,用引号括起来,但必须注意大小写.例如,只要输入Afgh就能够找到Afghanistan.
当Find工具返回的符合条件的要素超过100条时,系统将会询问你是否想先查看前100条记录,还是想查看全部记录.
如果查找到的要素超过一条,可以点击某条记录选中要素,然后点击Pan To按纽漫游到被选中的要素而无须改变比例尺,或点击Zoom To工具以被选中要素范围显示该要素.
点击工具栏上的Clear All Selection工具,可以清除对选中的要素的选择.
设置预定义查询(Stored Query)
预定义查询是ArcIMS提供的一种允许客户端用户查询空间数据库的简单而又灵活的方法.它减轻了客户端用户使用SQL语句的压力,允许网站开发者为客户定义一个简明或复杂的单一参数语句,使客户端用户通过名字来调用语句.
ArcIMS预定义查询必须且只能有一个变量且名字唯一才能正确地运行.要建立这种查询,需要先在Author中定义一个逻辑表达式,然后点击Execute按纽.如果执行正常,就用一个具体的值代替这个变量,并且用一个唯一标识的名字保存该查询.这样当网站建立好了以后,客户端用户就可以用他们自己的值代替该变量来调用这个查询.
设置地理编码属性
ArcIMS中的地址的地理编码是一个允许客户端用户根据某个街道图层,通过输入地址来定位其实际位置的过程.ArcIMS使用了和ArcView中相同的地理编码引擎,并且支持许多通用的地址编码标准,如美国街道邮政编码标准.
实际上,Author中并不能进行地址匹配,它在客户端进行了地址匹配.在地理编码属性窗口中,必须选择一种地址格式,并且为每一个必须的参数从属性表中选择好相应的字段.
Author中地理编码的最终输出结果是嵌入在AXL文件的标签中,同时保存在与Shapefile一起存储的新索引文件(.gci文件)中.
练习3:创建AXL文件进阶练习
第四章 网页设计
章节概述
上两章我们学习了如何使用Author来确定发布的数据及其显示方式,本章将要讨论如何创建web站点.
创建ArcIMS网站的步骤
简单地说,创建一个ArcIMS网站需要三个步骤:
将2-3页中的1,2,3步骤拷贝此处
应考虑的因素
在开始设计之前,先构思一下网站的外观,在这一步所需要考虑比在Author中生成AXL文件更多.此外,你需要考虑终端用户能用的功能,以及网站的美观程度.
首先,要搞清网站用户的一般需求,他们仅仅是想要快速地得到一幅地图,还是需要一些更高级的GIS功能 不同的用户在访问网站时所需地图服务的功能是不同的.你可以决定是否允许用户进行查询,编辑,地图提示,数据集成,也可以将其中之一或所有的这些功能加入到视图功能中.
其次,必须考虑客户端用户使用哪些软件.例如,用户如果需要要素数据流服务,他就必须装有Java 2 插件,并且有支持Java applets的浏览器,用户是否具备这些条件呢 或者即使用户具备了这些条件,他们是否有耐心等待下载Java applets的时间呢
最后,你还要考虑到你的地图服务在网站上看起来效果如何 什么样的用户界面更便于用户使用 还需决定是用ArcIMS视图模板,还是扩展自定义视图选项.
ArcIMS比喻:地图服务
在使用Designer创建网站之前,必须已创建并启动地图服务.
所谓地图服务就是你在AXL文件中定义的将要发布的数据的视图.地图服务并非硬盘上的一个物理文件,而是关于数据如何被显示(AXL文件),数据本身以及数据如何被传送到客户端等的一个结合物.
可以把地图服务比喻为餐馆菜单上的条目,顾客是通过这些菜单条目从服务员那里得到自己想要的食物和饮料的.在ArcIMS中也一样——客户是通过地图服务来得到想要的影像和数据的.我们知道,菜单上的菜可以分成不同的类别(食物,饮料,甜点,开胃菜),地图服务也可以分成影像地图服务和要素地图服务.最后,正如菜单上每个菜都是根据一个特定的食谱来做成的一样,地图服务也是根据一个特定的AXL文件来显示地图的.
新建一个地图服务
前面已经讲到了如何创建地图服务.通常使用Author后即可创建地图服务,且地图服务必须在设计网站前创建.如果使用Manager,将自动创建地图服务.
创建一个地图服务都可以把它比喻成在餐馆的菜单中增加一种菜——地图服务一旦创建好了,客户就可以通过它向服务器请求服务.
值得注意的是,地图服务的名字是区别大小写的.对HTML浏览器,所选择的地图服务名将出现在ArcIMSparam.js中,对于Java浏览器,在default.axl中,每个地图服务都指向一个且只有一个AXL文件.对于影像地图服务,还需要四条额外的信息:
HTTP地址(URL)——客户端用来从服务器下载影像所用的路径,区分大小写;
影像类型——尽管ArcIMS可以识别许多图像格式,但所有的地图在下载前都需要转换成.jpg,.gig或.png中的一种才行.注意,.gif文件格式用于商业用途时,需要使用许可;
文件路径——影像数据在服务器上的存储路径;
服务器清空时间——即服务器自动清除某一路径下的影像的时间间隔.系统默认时间间隔为10分钟.在Windows NT服务中的Tasker服务负责影像的删除.
创建网站
Designer中的第一个界面为Create a Web Site面板.Designer向导的界面和Manager中设计网站的界面基本上相同.
要设计一个新网站,首先输入新网站的名字和标题.网站的名字创建的也是客户端中用来浏览你的网站的URL地址中的最后一部分,它不一定要和AXL文件或地图服务的名字相同.
在设计网站的过程中,你都可以点击设计面板中的Back按纽返回到前面的步骤修改设置.但是要注意,如果在Manager中运行Designer,其运行时与网页浏览器相似,如果你在设计完成之前退出就会丢失前面的一切信息,所以一定要完成全部的过程再退出.
此外,设计一个网站时可能不会看到所有的面板.这是因为ArcIMS Designer引导你设计网站的过程依赖于你前面在Author中的的设定.例如,如果前面没有创建预定义查询,在Designer中就不会看到Stored Query面板.
MapService面板
MapService窗口是Designer中的第二个面板.这个面板是用来选择你想要在网站上显示的地图服务.
地图服务可以驻留在网络上的任何地方,甚至可以放在一台远程机上.MapService面板上默认显示的是本地机上的 地图服务.如果要连接远程机上的地图服务,输入网络上该机器的名字,然后点击Connect.要记住的一点是,网站的地图服务必须在Designer处理之前启动.如果你的地图服务并没有被列出来,可以运行一下Administrator检查其状态.
要选择一个或多个地图服务,先点击选中它,然后点击Add按纽将其加入到右边列表框.利用相反的方法可以删除该地图服务.
一个网站上可以发布多个影像和要素地图服务的组合,这视应用的需要而定.
Web Site Template面板
接下来将让你选择使用哪种网站模板.无论你选择的地图服务是什么,Web Site Template面板都将出现.这一面板可以决定网页元素在网页上出现的位置及你的网站的布局.这里,视不同的地图服务而定,有三种ArcIMS浏览器模板可供选择.
Java Custum模板允许用HTML和JavaScript进行定制,可以使用影象地图服务和要素地图服务.视图模板支持影象数据流和要素数据流,要求客户端有Java 2 插件,所以要求客户端机器上装有Java Runtime Environment(JRE)并且其浏览器要能够支持Java.
Java Standard模板与Java Custum模板不太一样,它没有自定义功能.但是,它和Java Custum一样也能够同时支持影像和要素地图服务.在客户端也要求有Java 2插件.选择了这一面板后,Designer将立即进入最后一个面板.
HTML面板是一个不支持Java applets的模板.HTML模板只支持一个影像地图服务.因此,只有影象数据才能够传送到HTML浏览器.程序员可以通过HTML和JavaScript 编程进行完全定制.
Page Elements面板
接下来就要决定显示哪些页面元素了.系统默认显示全部页面元素.其中,地图元素总是被包含的,你可以改变地图的背景色,但却不能删除它.工具栏元素也是如此.
图例,比例尺和概略图元素是可选的.其中图例和比例尺的前景色能够影响文本的颜色.要不显示它们中的任何一个,只许取消对其前面的复选框的选择即可.如果没有把图例元素选中,就会出现其它一些面板来为活动图层选择某些工具.
要改变任何一种背景色,前景色或轮廓色,只需点击相应的颜色框就可以打开颜色选择对话框,点击预设的颜色,RGB值或HSB值即可进行设置.
Map Extent面板
Map Extent面板是用来定义用户进入网站后看到的地图的初始范围和最大范围.
首先,为你的地图选择一个初始范围,这将是客户第一次打开该地图时看到的范围.系统默认的初始范围是所有地图服务的全部范围.Extent of selected MapService选项用来限制用户所见地图范围为所选择的地图服务范围,超出此范围的任何信息将不下载到客户端.
接下来,可以设置一个显示范围限制,使得超出此范围的数据对用户都不可见.
注意,对要素地图服务来说,不仅可以指定一个地图服务,而且可以指定该地图服务中的一个图层.这在使用影像地图服务时是不行的.
Visible Layer面板
这个面板允许程序员选定用户可见的图层.
地图服务可能包含不止一个图层,有时你可能希望某些图层对用户不可见(比如当两个地图服务有重复的图层时).这一面板只对要素地图服务有效,在影像地图服务中不能选择单个图层.
你可以从下拉列表中选择一个地图服务.对每一个地图服务都只能分别设定它们的可见图层.系统默认地图服务的所有图层都是可见的.若要使某些图层不可见,在图层列表中点击该图层的名字,然后在Visible列中取消对其复选框的选择.如果想要使所有的图层都可见,直接在选中Select All Layers框即可.
在选择可见图层时,要考虑到你的数据的许多因素.如果图层具有很多要素并且范围很大,系统处理过程及下载的时间就会明显长得多.这种情况下,设置其可见比例尺范围,使其在小比例尺时不见会很有帮助.
Overview Map面板
如果你想在你的网站上放置一个概略图窗口,这个面板可以帮助你确定概略窗口用何地图服务.从下拉列表中选择一个地图服务(别忘了可以从远程机上调用影像地图服务!)即为其设定了概略图.一般说来,覆盖最大地图范围的地图服务将被选中用来显示概略地图.但是,可以在Designer中对其进行改变.
Scalebar 面板
如果要在站点中使用比例尺,这一步将帮助您设定比例尺的参数.Data Source Units 中必须选择一个和源地图投影相同的地图单位.因此,你要事先知道源地图使用的坐标系统和投影类型.此外还应注意,如果客户端用户想把他们的数据和你网站上的数据进行集成,那么他们的数据的投影就必须和你的数据一致,否则数据就不能正确匹配.
从下拉列表中选择了一个合适的源数据单位(十进制经纬度,米,英尺)后,再选择想用的地图比例尺单位.比例尺是用比率来表示的,即1个屏幕单位(英寸或厘米)长度相当于现实世界中多少单位(英里,英尺,米或千米).
Toolbar Functions 面板
Toolbar Functions 面板允许用来选择网站上可以使用的工具.有时候,你可能只希望为那些非专业用户快速地显示一幅地图,这时用少量的工具即可.相反,有时候可能需要为那些GIS专业用户实现一些复杂的分析操作提供所有的工具.
可以向用户提供所有的工具或任何工具的子集.比如,如果你觉得用户不太可能使用本机数据与网站上的数据进行集成,你可以去年Add layer按钮.系统默认选择所选模板的所有的漫游和缩放工具及查询工具.
如果某个工具变成了灰色,说明你的地图服务里的数据不支持这种操作.例如,影像地图服务就不支持MapTips,EditNotes以及Layer Properties等工具.
MapTips面板
这一面板用来设置地图提示的图层及其字段.地图提示有助于快速地访问某些特定的要素信息.设置地图提示后,用户把鼠标放在某个要素上时,将出现设定的提示信息.
地图提示仅对要素地图服务的图层有效,且每个图层只能把一个字段设置为地图提示.请注意不要把MapTipa面板和前面的MapTips工具相混淆了.工具栏上的MapTips工具是用来改变地图提示的.
要设置地图提示,首先从下拉列表中选择一个地图服务,然后复选你想要进行地图提示的图层复选框,最后在MapTip Field中选择一个用来提示的字段.选择Select All Layers将使地图服务的所有图层都设置地图提示.
Stored Query面板
Stored Query面板允许你在网站上加入预定义查询.这样,客户端用户就可以使用你在Author中定义好的带有变量的查询语句对要素进行查询.只有在AXL文件中定义好了预定义查询才会出现这个面板.
从下拉列表中选择一个地图服务,然后选择该地图服务的一个图层,并复选已命名查询的复选框.Select All Queries复选框能将该层的所有预定义查询都加入.重复操作,可以加入其它地图服务的预定义查询.
Identify Results面板
Identify Results面板用来设定用户在使用Identify工具时可用哪些属性字段.
首先,选择一个地图服务和图层,然后对每个字段后面的Is Displayed列中的复选框进行选择.系统默认选择所有的字段.如果有多个地图服务,重复上述操作即可.需注意的是,网站只须向用户提供他们需要的信息即可,这有助于提高网站的运行效率.
也可以在Alias Field Name中输入字段的别名,这在字段名很长或不太容易理解时很有帮助.
ArcIMS比喻:MapNotes和EditNotes
MapNotes和EditNotes反映一种协作性GIS的思想.其中MapNotes提供了一种客户间协作交流的方式,而EditNotes提供了一种客户端用户与服务器端管理员之间交流协作的方式.
MapNotes允许多个客户使用"虚拟地理公告牌"进行交流.互相连接的某个用户可以看到其它用户的注释,甚至可以用空间数据进行注释.可以把MapNotes比喻成餐馆里的顾客之间的谈话.MapNotes存储在服务器端的某个特殊目录下.
EditNotes允许用户把他们的修改意见传送给服务器端的管理人员.数据管理人员可以根据其选择接收或忽略修改意见.
MapNotes Tool面板
前面提到过,MapNotes反映了协作性GIS的思想——它不仅允许用户共享数据,还可以分享关于数据的看法和观点.MapNotes工具允许在地图上添加文本或图形元素.因此可以把MapNotes看成是每个人都能看到的地理公告牌.它使得人们可以用同样的数据来表达对该地图数据的看法.
如果你在前面的Toolbar Function面板中加入了MapNotes工具,MapNotes Tool面板将要求为MapNotes确定一个地图服务和目录.MapNotes以文本和图形的形式保存C/S结构中的中间件管理的文件夹中.因此,这个文件夹可以放在网络上的任何地方,包括远程机中.这些文件夹是由Administrator程序来创建和维护的.下一章将详细讲述MapNotes的有关内容.
EditNotes Tool面板
和MapNotes一样,EditNotes也反映了协作性GIS的思想.它可以对数据的空间和属性要素进行编辑,编辑的结果可以发送给其他人参考,但是只有数据管理员才有权决定是否采纳编辑修改的建议.
EditNotes Tool面板的出现也是需要在Toolbar Function 面板中选择了EditNotes工具,这里你必须指定一个地图服务并且为EditNotes创建一个文件夹.和MapNotes一样,EditNotes也是存储在由C/S结构中的中间件组件维护的文件夹中.因此,这个文件夹也可以放在网络上的任何地方,包括远程机.这些文件夹是由Administrator程序来创建和维护的.下一章将详细讲述EditNotes的有关内容.
Web Site Location面板
至此,你已经完成了网站的设计,ArcIMS将使用在安装过程中指定的默认的文件夹位置为当前网站的位置.但你可以在这里点击Change按纽来改变存储文件夹的位置.
一切都好了以后,点击Create Web Site按纽即可.如果没有点击这个按纽就退出的话,所有的都将前功尽弃.
Web Site Summary面板
Web Site Summary面板表明设计的网站已经建立,并显示其使用的网站名,网站位置及所使用的地图服务等等.这些信息可以作为元数据记录下来,以便编辑此网站或创建其它网站时使用.
如果你想改变前面的某些设置,点击Back按纽返回去修改即可,但一定要点击Create Web Site按纽才能保存修改的结果.如果你想接着设计另一个网站,点击Design Another.
如果想测试一下网站能否正常运行,可以在网页浏览器中输入你的网站的URL地址:
http:////
例如,如果你创建了一个名为Canada的网站,并且使用的是默认的安装目录,你的网站的URL地址应该是:
http:///Website/canada
Designer的输出结果
Designer的设计过程完成以后,将在你的网站目录下将生成一系列的文件.这些文件视选用的不同的浏览器模板而定.但是应该注意到,ArcIMS所有的模板文件都有一个共同的默认起始页—— default.htm.
一些以HTML为后缀的HTML文件也将创建,这些文件组成了网页上不同的页面元素.对于HTML和Java Custum模板来说,还创建了一些 .js文件,这些文件定义了网站的参数或选项的JavaScirpt文件,可以通过编辑文件来定制自己的网站.本章后面还将详细讲到如何通过JavaScript文件来定制网站.
所有的模板创建的网站目录下,至少有两个文件夹.其中images文件夹存储了网站上要用到的所有图片,包括工具图标和指针样式,而meta-inf文件夹里保存了你可能想要添加到网站上的元数据信息.
练习4 设计网页练习

第五章 客户端浏览器
章节概述
本章将主要介绍ArcIMS的几种客户端浏览器.ArcIMS提供了四种客户端浏览器或模板,HTML浏览器定制的Java浏览器,Java Standard浏览器和Arc Explorer Java浏览器.这些浏览器都是独立的,适用于不同的用户类型,具备不同程度的定制能力.此外,本章还将讲述一些客户端连接网站时将要使用的一些重要的GIS功能,包括EditNotes,MapNotes和预定义查询.
HTML浏览器
HTML浏览器是瘦客户端应用及广泛客户端支持的最佳解决方案.它不要求有Java 2插件,也不需要支持Java Applets.因此,它只能用来显示一个影像地图服务,并且不支持EditNotes,MapNotes以及数据集成等功能.尽管如此,HTML浏览器还是具有很强的定制功能,第八章将详细讲述.
Java Standard浏览器
Java Standard浏览器作为Java Custom模板的另一种选择,提供了有限的自定义功能,但其标准的接口很适合于在Internet环境下运行,和Java Custom浏览器一样,Java Standard浏览器提供了包括要素地图服务,数据集成,地图提示,图层属性和EditNotes在内的大多数GIS功能.然而,由于不能在Java standard浏览器直接定制环境中使用Java viewer对象模型,必须使用Java Applets和Java 2插件.
Java Standard浏览器的有趣的一面是,它的工具条是可以浮动贴边的,客户端用户可以根据他们的喜好来重新调整,组织界面.
对于两种浏览器,很多功能如Map Notes, Editnotes与图形选择都可用,但在用户界面的执行上是迥然不同的,在下面的练习中,将会比较这两种界面的不同风格,并选择适合你应用的模板.
Java Custom浏览器
在ArcIMS提供的四种客户端浏览器中,Java Custom浏览器为程序员提供了最大的灵活性.它完全可以通过JavaScript,HTML和Java Applet对象模型来定制,为需要使用大量GIS功能的用户提供了很大的选择余地.本书第九章将详细讲述Java Custom浏览器的定制.
Java Custom浏览器支持要素地图服务,地图提示,数据集成和EditNotes等前面介绍的HTML浏览器所不具备的所有的功能.但是要注意,这种功能的获得是要付出代价的,其相对较胖的客户端在初始化时需要更长的下载时间,而且,Java浏览器和ArcExplorer Java一样都需要有Java 2插件,这并不是用户的每台机器上都有的.
ArcExplorer Java浏览器
ArcExplorer Java是四种客户浏览器中唯一不是通过网站的方式来实现的浏览器——尽管ArcIMS的安装盘中带有ArcExplorer Java,但它实质上是和ArcIMS完全独立的一个产品.
ArcExplorer Java(AEJ)和ArcExplorer一样,都可以从ESRI.AEJ上免费下载.它不仅支持万维网上浏览ArcIMS地图服务,而且支持浏览MapObjects IMS, ArcView IMS 和SDE 图层.AEJ是一个相对较新的产品,正因为如此,我们无法假定用户在连续站点前,计算机上已经安装了AEJ.因此,ArcIMS 提供了一个名叫install的连接以供下载和安装AEJ.由于需求广泛,ArcExplorer Java可以使用某三方数字签名,以保证客户端将软件用于适当场合.
由于AEJ能在浏览器以外实现许多GIS功能,并且速度很快,AEJ有可能成为未来浏览器的最佳选择,尤其是GIS专业人员的最佳选择.此外,由于AEJ与目前世界上最流行的GIS浏览器——ArcExplorer之间的联系紧密,所以它的使用也非常简单.
工具栏(Toolbar)
大多数浏览器都支持11种漫游和缩放工具,唯一的例外是HTML浏览器不支持Next Extend按纽.正如前面第四章所述,没有必要把所有的漫游和缩放工具都提供给用户.
测量工具(Measure Tool)
测量工具是一种快速测量两点之间或某条线路的长短的方法.和缓冲区工具一样,测量工具也要求预设地图单位,可以在Author中定义,也可以由用户使用Set Units工具来定义.使用测量工具时,将同时显示线段的分段的长度及其总长度.使用Clear Selections工具能够清除测量时画的线段,但是改变视图的范围时并不能使它们消失.
因为Measure Tool在客户端的执行差异很大,这个很好的工具可以用来测试,创建站点时使用了何种类型的模板.
图形选择工具(Graphical selection tools)
ArcIMS中有多种选择要素的方法,例如通过Query Builder,Find Tool,Search Tool或缓冲区工具等等.此外,要素也可以通过在图上画一个矩形,圆或多边行,选择被图形包围要素或与线相交的.要素被选中后,就成为了选择集的一部分,其属性值可以用表格形式列出,或用缓冲区工具进行缓冲区分析.Clear All Selections tool去除所有的选择集.由于图形选择工具的执行对于不同的客户端差异很大,这是一个很好的工具,可以用来测试创建站点时用何种模板.
查找(Find)
查找工具是另一种查询空间数据库的方法.Find工具是一个常用的查找工具,不要求一定要有活动图层.在Java浏览器中,查找工具能对所有的图层的所有字段进行查询,查询时区分大小写;而在HTML浏览器中则只能对活动图层进行查询.在不必将表内容全部开放或用户不是很熟悉数据库操作时,Find工具特别有用.同时,用户可以选择返回的选择集,并漫游或缩放到高度选中的记录.
查询工具(Stored Query Search tool )
另外一种查询空间数据库的方法,是通过预定义查询进行类似于SQL的查询.预定义查询在Author中定义,由带有一个变量的逻辑表达式构成.在客户端,用户只向系统提交一个变量的值,即可进行查询.和Query Builder相似,如果查询结果超过100条记录,用户可以选择不下载所有的记录.同样的,可以从列表中选择一条记录并缩放到相应的视图显示.尽管预定义查询限制了用户建立复杂查询的能力,但由于它是事先被检测过的,所以可以保证查询不会失败.如果用户想要更灵活的查询,可以使用Query Builder工具.
查询器(Query Builder)
查询器对空间数据库进行SQL查询,并以表格形式返回查询结果.用户可以通过输入或选择的方法建立一个逻辑表达式,当用按下Excute按纽时,表达式提交给服务器执行.如果返回的结果超过了100条记录,用户可以选择不下载选择集中所有记录.当查询结果超过预期的要素时,这个选项可能会失效!有时候很难理解这种现象,当没有下载所有记录时,菜单中的一些功能如高亮显示,漫游,缩放,统计等,可能会失效.
查询器中基本的统计功能包括选择集中所有要素或部分要素的平均值,最大值,最小值,标准方差,总和等.同样的,查询器也可以对以高亮显示要素的地图范围漫游和缩放显示.
地理编码
地理编码是自动寻找地址的过程.这需要事先在Author中建立了地理编码的必要的字段,并且生成一个特有的地理编码索引文件(*.gci).用户在使用地理编码时访问该文件.
在客户端,可以直接使用地理编码工具.用户只需输入地址,然后点击Locate按纽即可.如果找到的匹配地址是可以接受的,它就会出现在菜单下部的列表中.匹配度(0到100)越高,匹配得越好.如果匹配度低于某一程度,将不会出现在列表中.高亮显示某一返回的记录,并点击Pan或Zoom按钮,可以迅速定位所查询的地址.
用户也可以选择输入一个十子路口.此时,但要注意不要在street文本框中输入地址,而是输入街道名.
缓冲区(Buffering feature)
对要素进行缓冲区分析是GIS的一个很重要的分析功能.通过缓冲区分析,可以解决很多问题,如 "商店,一公里范围内有多少顾客".
ArcIMS中,要素的进行缓冲区分析的界面是十分简明.用户只需选择一个活动图层,并用查询工具创建一个用来作缓冲区分析的选择集.有了选择集,就可以使用缓冲工具了.输入一个缓冲距离并选择一个缓冲单位.如果是Java浏览器,用户还可以对另一个专题中缓冲区内的要素进行选择.这一过程有点类似于ArcView中对专题的选择.注意,缓冲区分析时,只要是与缓冲区任何一部分相连的要素,都会成为选择集中的一部分.
Attibutes按纽列出了选择集中的要素的属性,而Clear all Seclection工具则取消对选择集中的要素的选择,并且刷新屏幕.
图层属性工具(Layer Properties)
图层属性功能是ArcIMS独有的一个功能.这一工具与Author中的Layer Properties界面差不多.将此咱功能开放给用户后,用户可以修改要素,按其想要的方式进行显示.这种修改并不被写到服务器端的AXL文件中去,只在客户端有效.
如果同时给用户提供一个保存按纽,那么,用户可以把AXL文件保存在他们自己的机器上.该AXL文件将通过HTTP地址使用地图服务,而不是本机目录.
增加图层
ArcIMS 3.0的一个最让人兴奋的进步就是,允许客户端用户将本地或远程数据与网站上的数据进行集成.这一功能的实现只须通过Add layers这一工具来实现的.用户点击此工具后,将出现一个类似ArcIMS目录的窗口.这一窗口允许用户浏览其它ArcIMS网站上的地图服务,或加入本地的Shapefiles或SDE图层.客户也可以将ArcView IMS与MapObjects IMS进行集成.注意,增加的图层必须和当前的地图有相同的地图投影,并且覆盖相同的地理范围.和其它ArcIMS工具一样,Add layers工具并非对每个人都适用,只有比较专业的GIS人员才能够理解和使用这一功能.
EditNotes工具
EditNotes工具是IMS技术的新功能,它引入了协作GIS的概念.它允许用户对数据的空间信息和属性信息进行编辑,这些建议存储于服务器端的Editnotes目录,供数据管理员查阅.用它来查看用户发回的修改建议并且决定是否对其进行永久性修改.EditNotes仅对使用Java浏览器的要素地图服务有效.
MapNotes工具
MapNotes工具是另一种用来帮助客户间交流数据和信息的方法,这也是ArcIMS的一项独特的新功能.MapNotes工具引入了协作GIS的概念——不仅共享数据,而且共享对数据的评论,客户能够查看其它用户的MapNotes并且对其作出反馈.
MapNotes工具允许在地图上增加一些文本或图形注释.每个注释都是有地理位置的,也就是说,每个注释就会记住想要进行评论的地方.
在增加MapNotes之前,必须先创建一个新的MapNotes图层和文件夹.必须在Designer过程中把MapNotes工具增加进来,才能使用MapNotes功能.MapNotes对Java和HTML浏览器都有效.
要添加MapNotes,点击工具栏上的MapNotes工具.MapNotes工具条将出现.这里 ,你可以增加一个新的MapNotes图层,或者对一个已有的MapNotes图层进行修改.然后增加一些单个的地图注释,如图形,文本和影像.完成以后,点击Submit按纽就可以把注释发送到服务器.这些MapNotes将被保存到服务器端以便其他用户也能查看.
练习5 客户浏览器
第六章 ArcIMS网站管理
章节概述
本章概要地讲述了与管理ArcIMS 3.0有关的的问题,然后对ArcIMS 3.0中管理的各个应用程序进行了详细地阐述.Administrator为ArcIMS 3.0网站程序员提供了管理网站所需的所有的工具.
为了很好地利用ArcIMS Administrator,首先要对ArcIMS 的体系结构有一个很好的理解,因此本章前面着重介绍了ArcIMS 客户/服务器体系结构的一个简单模型.第十章还将进一步从安装和软硬件配置的角度阐述ArcIMS 的体系构架.本章其余部分的内容着重介绍Administrator的用户界面,并且仍然用餐馆的比喻来帮助理解ArcIMS 的有关术语和组件.
网站管理
与其它多层客户/服务器体系结构一样,ArcIMS 也引用了一些共同的术语来描述其各个组成部分.ArcIMS网站管理员必须了解各部分是如何定义以及它们之间的相互作用情况,管理的目的是创建一个能够满足GIS客户需求的网站.ArcIMS的Administrator是所有组件的集成中心,通过它可以实现网站管理的各种目标.
ArcIMS管理的比喻
下面几页,将会用比喻来解释ArcIMS的术语及组件.ArcIMS中的每个组件都与餐馆的某个部分相对应.尽管这个比喻是能够简单形象地解释ArcIMS的体系结构,但是对其中一些核心概念的理解,将有助于理解更复杂的n层客户服务器结构的运作情况.
从左至右阅读上面的比喻列表.例如,第一个比喻可以读成:餐馆里的食物或饮料象ArcIMS中的数据.如果对后面的比例有什么不清楚的地方,可以回过头来看看这个表加粗.可以说,表中右侧的所有组件都直接或间接地与ArcIMS的Administrator的界面有关.
ArcIMS比喻:更新地图服务
如果整个餐馆的食谱都换了的话,必须对菜单进行更新从而让顾客知道这种变化.同样的,AXL文件中专题符号显示的改变只有通过更新地图服务才能被客户知道.更新地图服务时不需要停止地图服务,所以改变专题符号显示并不不会出现服务暂停的情况.
ArcIMS比喻:通讯频道
从底层上理解HTTP和TCP/IP协议是比较困难的,但从较高的层次上来看,这些协议只不过是一种从一个地方向另外一个地方传递请求的方法而已.Web服务器就是充当客户和服务器之间传递信息的掮客的角色,它能够使用上述两种协议中的任何一种.
当通过WEB服务器向服务器发送请求时,请求将以XML格式发送.XML语言就好比是罗曼语系.众所周知,罗曼语系可以分为许多不同的语族(如法语和意大利语).同样的,XML语言也有许多不同的类型,AXL语言就是专门用在ArcIMS中的一种XML语言.下一章我们还会详细谈到AXL和XML两种语言.
AXL请求示例
AXL语言并不仅仅在地图服务中使用,实际上,它在ArcIMS通讯体系的许多地方都被用到了.当客户发送一个需要新数据的请求时(如漫游或缩放到一个新位置),该请求是通过AXL中的REQUEST标签来表达的.同样的,ArcIMS服务器返回的响应是使用RESPONSE标签来表达.
一般的,请求是通过在客户端嵌入的JavaScript函数生成的AXL代码传输到服务器的.通过在自定义JavaScript函数中使用动态HTML语言,客户能够直接生成AXL代码并且把该代码送到服务器进行处理.
ArcIMS组件
上面是ArcIMS体系结构的一个简单的示意图,本书第十章还有一个更全面的示意图.尽管这个图不太完善,但它已经包含了ArcIMS多层体系结构的基本概念——客户,中间件,ArcIMS空间服务器,虚拟服务器和数据.
客户是通过Web服务器与一个或多个ArcIMS空间服务器进行通讯的.Web服务器通常被称为中间件,是客户和空间服务器之间的联系纽带.
ArcIMS空间服务器响应客户端需要数据的请求.虚拟服务器实际上是一个或多个ArcIMS服务器的虚拟结合,提供一些特殊的功能,如要素数据流,地理编码,查询或要素提取等.而前面提到的Feature server和Image server是两种不同的虚拟服务器,它们是地图服务仅有的两种类型.地图服务可以看成是客户向服务器发出的请求的入口.
虚拟服务器通过线程与一个或多个ArcIMS空间服务器连接.线程指服务器上一个处理过程.ArcIMS是一个多线程应用程序,因此支持多用户的并发操作.
ArcIMS比喻:ArcIMS空间服务器
ArcIMS空间服务器是ArcIMS的终端,它提供了GIS的主要功能,尤其是影像的地图服务功能.中间件接收到客户发出的请求后,把该请求发送给某个可用的ArcIMS空间服务器.尽管购买AcrIMS时只有一个ArcIMS空间服务器,但是你可以在一台计算机上同时安装多个,或者另外购买许可,将另外一台机器安装为ArcIMS空间服务器.ArcIMS空间服务器能同时执行多个任务,也就是所谓的线程.任务形成多个队列,并由ArcIMS空间服务器按照顺序进行处理.
ArcIMS比喻:虚拟服务器
虚拟服务器,如要素服务器,实际上就是能够提供某项特定功能的一组ArcIMS空间服务器的组合.由于实际安装的ArcIMS空间服务器只有一台,所以这里所谓的"一群"实际上指的可能是一个ArcIMS空间服务器.每个地图服务都分配给一台虚拟服务器.可以通过添加虚拟服务器来平衡任务分配,或在ArcIMS空间服务器发生故障时提供备份.当具有两个或两个以上ArcIMS空间服务器的虚拟服务器由于堵塞而失去了其中的某个服务器时,系统服务并不会被中断(虽然速度会稍稍减慢).所以,合理地使用虚拟服务器可以帮助建立一个稳定而又可靠的网站.
虚拟服务器可以分为公众虚拟服务器和私人虚拟服务器.公众虚拟服务器指能够被地图服务直接使用的服务器,可以是影像服务器或要素服务器.私人虚拟服务器不能被地图服务所使用,包知地理编码,提取和查询.
添加虚拟服务器
添加虚拟服务器是ArcIMS中用来平衡任务,提高响应速度的有效方法.每个虚拟服务器由一个或多个ArcIMS空间服务器组成,实现特定的功能.所以添加虚拟服务器时需明确用其实现什么功能,连接哪些空间服务器及处理并发请求的条数.一般来说,越重要或越忙的虚拟服务器应该分配最多ArcIMS空间服务器,并且赋予最多的线程.服务器的具体的数目及线程数与网站负荷,硬件的性能,网站配置和请求的GIS功能的类型等呈函数关系.虚拟服务器有下列5类:
影像(公众)虚拟服务器——专题地图显示在服务器端,并以JPEG,GIF,PNG格式返回客户端;
要素(公众)虚拟服务器——矢量数据以数据流的形式传送到客户端;
查询(私有)虚拟服务器——与影像服务器一起处理数据查询;
编码(私有)虚拟服务器——提供地理编码支持;
压缩(私有)虚拟服务器——以压缩的Shapefiles形式向客户返回请求的数据.
增加ArcIMS空间服务器的线程数允许空间服务器响应多个请求.请求一般被排成队列,每个队列可能有好几个用户在等着空间服务器的响应.尽管在一台服务器上装多个线程的想法不错,但一定注意适度,否则超过一定的限度后可能会没有响应.
统计
Statistics统计工具为每个虚拟服务器——包括公众和私有的虚拟服务器,提供了实时的统计信息.这些统计信息包括客户连接数及服务器响应时间(最大,最小,平均).ArcIMS管理员正是基于这些统计信息,改善虚拟服务器的配置的.例如,如果统计表明某个网站特别忙,其平均等待时间已经超过了客户的忍耐限度,那么管理员就可以增加一个新的ArcIMS服务器,或者增加现有服务器的线程数目.实际上,可以从较闲的服务器上获取资源,以平衡负荷.
要查看某台虚拟服务器的统计信息,在列表中将其选中使之高亮显示,再点击ArcIMS Administrator工具栏上的Statistic工具.
服务器需求及配置
如何配置ArcIMS以及应该使用多少ArcIMS空间服务器,很大程度上与期望的并发数,每个空间服务器的线程数,最大等待时间及机器性能及函数关系有关.
假设你设计的网站的平均访问用户是12个,并且每个数据请求大约花3秒钟,且当前每个空间服务器已经定义了6个线程,则平均等待时间应为:
12个用户*3秒/6 instances=6秒/用户
现在进一步假设空间服务器的最大线程数不超过7个,最长等待时间是5秒.那么通过把线程数增加到7或8时,等待时间变成:
12个用户*3秒/7 instances=5.14秒
12个用户*3秒/8instances=4.5秒
从上面的计算可以看出,7个线程下的等待时间还是有点长,而8个线程就可以了.但是,本例中每台机器的最大线程数是7.因此增加一个ArcIMS空间服务器才是最佳的解决方案.
记事本(Notes)文件夹及EditNotes工具
前面第五章讲到,MapNotes和EditNotes是一种为客户在虚拟公告牌上交流意见和进行空间编辑建议的协作性工具.不管是使用哪种类型的记事本,每个记事本都是通过Administrator界面存储在某个特殊的文件夹下的.
在Administrator中定义记事本文件夹时,先要选择一个文件夹名及其类型,权限,过期时间及简要说明.例如,对于编辑应用,可能需要为landuse shapefile的Editnotes创建新文件夹.第四章中我们提到,可以选择站点所使用的文件夹,在Designer中,无论何时添加landuse shapefile并使用editnotes,都将使用指定的文件夹.
EditNotes工具读取存储在EditNotes文件夹下的记事信息,然后创建一个新的Shapefile或生成一个可读的XML文件.理论上来说,熟悉ArcView的用户可以很熟练地将EditNotes中的修改意见整合到一个新的Shapefile中来.
安全性
安全性是ArcIMS网站应该考虑的重要因素.通过改变用户名和登录密码,可以有效地防止非法用户的不良企图.这里设定的密码能够同时影响本地及远程登录到Administrator 或基于站点的Manager.系统缺省的情况下的登录名和密码是Admin/Admin.
保存配置
创建并在网站中启动了地图服务后,最好保存一下网站的配置.在ArcIMS保存网站的配置可以保证一旦Web服务器发生死机了以后,地图服务在重启机器时能够自动重新启动.网站配置保存在C:\Program Files\ESRI\ArcIMS3.0\AppServer目录下的两个串行文本文件.其中Esrimapcatalog.ser中保存了网站中有关地图服务的配置,EsriMapCookies.ser则保存了有关MapNotes和EditNotes的配置.
练习6 网站管理
定制AXL文件
章节概述
AXL是客户端浏览器与ArcIMS空间服务器之间进行通讯的语言.AXL语言是一种XML语言,有关其细节可以查看本书的附录——AXL语言参考手册.通过Author创建的AXL文件只是一些简单的编码.而要想对地图内容进行定制,可以对AXL文件进行编辑,使之提供更多的内容.通过定制,AXL文件可以增加对地图投影,AciInfo Grids,SQL查询,ture type字体符号以及复杂专题图显示等的支持.
XML(eXtensible Markup Language)可扩展标识语
XML是一种语言,就象罗曼语是一种口语一样.人们一般不直接使用XML语言,而是使用XML语言的某种特殊类型的语支.在ArcIMS中,这一特殊的语支就是AXL语言——ArcIMS Extensible Language.
XML语言与HTML语言有很多相似之处.它们都使用号包围的标签来定义功能,有些标签需嵌套在别的标签里面,每个标签又有一些属性来定义其作用.XML语言并不是象HTML那样创建文件以显示文本和图象的.实际上,XML语言允许用户创建自己的一套标签来建立某些功能.XML解析器是一个用来阅读,解析XML请求,并实现本月应操作的软件.
XML语言近年来在网站开发界受到了极大的欢迎.这是由于XML提供了强大的自定义标签的功能,能够显示在许多HTML中太复杂甚至不可能实现的功能.它已越来越成为一种行业的标准.
HTML与XML对比
HTML与XML之间最大的不同在于使用标签的灵活性.HTML已经建立了上百个标签集允许用户用来显示图形和文本.通过JavaScript使用动态HTML语言还可以建立更加复杂的网页.尽管如此,HTML语言本身还是具有很大限制性,不能满足对一些新功能的需求.网站程序员不能自己定义标签,而只能使用由国际万维网协会承认的标准标签,或在某一浏览器软件中使用该软件自己定义的标签.当然,象Internet Explorer和Netscape Navigator这样的浏览器可以有它们自己定义的标签,但正是这一点直接威胁到了HTML语言的通用性——对其它各种类型浏览器识别标签并进行显示的能力.而XML语言正可以解决这些问题.
有了XML语言,程序员可以使用一种简单易懂的层次结构,定义一系列标签及其功能.由于XML语言并不是在浏览器中解释的,所以不受浏览器类型的限制.因此可以说,HTML语言定义的是如何显示内容而XML语言定义的是内容本身.尽管这种精确的定义不可避免地会出现一些重复,但仍可很好地用未定义以地图为中心的AXL.
现在,互联网有许多关于XML语言的资源及其作用的讨论.还有一本专门讨论XML语言开发的杂志.
ArcXML——AXL
就象意大利语是罗曼语中的一种一样,AXL是专门用在ArcIMS中的一种XML语言.我们前面所见的AXL文件,是Author的输出,并作为MapService的 AXL文件.MapService AXL文件描述了AXL文件和地图服务之间的关系——每个地图服务都指向了一个AXL文件.与其文件名相异的另一个AXL文件是default.axl.default.axl是在Designer中创建Java浏览器的网页时的最终输出,我们在第九章中还会详细讲到.
MapService AXL文件是服务器用来为客户请求定义图层和专题显示的.但是AXL文件本身要比MapService AXL和default.axl文件要深入得多.客户端请求本身也是一种交给服务器解析的AXL代码.此外,所有的服务器产生的响应也是AXL文件格式,并由客户端的脚本进行解析.
AXL手册
本书附录中提供了有关所有AXL标签的AXL手册.在查看这本手册时应注意理解,有些标签只能在MapService AXL或ArcIMS体系中其它组件中使用,而有些标签则是通用的.就象HTML一样,标签也包含了许多属性,正确地理解和使用这些属性将有助于产生预期的效果.
AXL文件示例
从上面这个例子中可以看出,AXL语言的层次结构以及它和HTML的一些相似和不同之处.与HTML不同的是,AXL要求每个标签都必须以结束.有些标签如以缩略的形式直接包含了头标识和尾标识.此外,XML还要求标签中包含的属性值必须用双引号并且只能用小写,而在HTML中则是可选的并且通常加以忽略.与HTML一样的是,XML采用缩进式书写规范,是为了方便人工阅读.
节标签
MapService AXL文件的最前面的两个标签(和)定义了所使用的XML和AXL的版本.这些标签被称为头标签或节标签,与XML有密切的关系.所有的节标签都有子标签,是一组更具联系的信息的分界线.可以把它想象成三明治的面包片——它们为里面的夹心提供了"容器".
CONFIG标签是类标签,里面包含了其它一些标签如MAP标签.MAP标签是任何MapService AXL文件中的事务部分.它里面所包含的一些次一级标签定义了地图的开始范围,地图单位,工作空间以及每个图层的专题显示信息等等.
PROPERTIES标签是用来确定地图服务的一些一般属性的,如投影等.WORKSPACE标签则指明了Shapefiles和影像文件所在文件夹的位置.如果数据被移动到新的位置,必须在AXL文件中人为地改动数据路径,以保证能够准确地找到所要的文件.
上面显示的最后一个标签——LAYER标签包含了在Author中定义的所有有关专题显示的信息,包括注记与组合专题图等.
Renderer标签
ArcIMS中定义了一系列renderer标签,用来确定在客户端如何显示地图,这些标签都包含在LAYER节标签里面.
SIMPLERENDERER标签是用来定义图层的单一符号分类显示的.在上例中,SIMPLERENDERER定义一个多边形图层以橘黄色实体填充显示.GROUPRENDERER标签用来定义以两种或两种以上专题图进行显示,它是在出现两种或多种符号时使用的.在前面的练习中,我们曾经用GROUPRENDERER标签定义了州际公路——第一个层用粗的黑线,而第二个层用SIMPLERENDERER定义一条细的红色的破则线,这两个层叠加在一起就可以用来代表高速公路了.
SCALEDEPENDENTRENDERER标签允许AXL程序员在不同的比例尺下来显示不同的专题图,VALUEMAPRENDERER标签根据属性值或范围显示专题图,SIMPLELABELRENDERER标签则可以用来在地图上对要素进行标注.
Symbol标签
前面讲到的每个renderer标签都包含了一个或多个Symbol标签,用来定义专题符号的图形显示.Symbol标签包括有SIMPLEMARKERSYMBOL,SIMPLELINESYMBOL和SIMPLEFILLSYMBOL.Symbol标签定义了如何根据标签中的属值显示符号.这些属性包括颜色,大小,透明度等等.其中,antialiasing是一个值,它可以用来定义如何在背景上显示符号的边缘.
Acetate Layer
Acetate Layer这种图层只能通过直接的定制增加到AXL文件中的图层.Acetate Layer可以使得那些自定义的文本,符号和指北针等元素总是出现在地图之上.用户在使用漫游,缩放等操作时,Acetate Layer并不跟着变化,而总是出现在视图窗口中同样的位置.Acetate Layer只支持HTML浏览器.
Author中不具备的功能
接下来我们将要讲述的是在Author中不能实现,只能通过人工修改AXL文件才能实现的一些功能.例如,有好几种专题图在Author中就不可用.在下面的练习中,将使用CALLOUT SYMBDL和SHIELDSYMBOL专题图及组合专题图,创建如上图效果的地图.
请注意:尽管在Author中可以使用组合专题图,但要指定不同要素以不同的符号显示,只能通过定制完成.
地图投影
地图投影是为了在平面上显示地球表面的所作的一种平面转换.换句话说,它们用二维的形式表达了地表的三维形态.只要经过了投影,空间的某些属性如形状,面积,距离或方向就会发生一定的变形.没有变形的投影是找不到的.但是,可以选择一种能够使某个空间属性的变形最小的投影(通常是以别的属性的更大的变形为代价的).常用的投影类型有:兰伯特正切圆锥投影,墨卡托投影和艾伯特投影等.
投影系统定义了坐标系统.同一个地方的不同投影类型的数据是不能对准的,有时候偏移会很大.因此,为了使地图显示更富有意义,一般要求所有的地图服务和所有的图层都采用相同的投影.
ArcIMS支持多种投影——与ArcView 3.2支持的投影类型相同,包括自定义投影——应该足以满足GIS的要求..prj文件是具有一定结构的文本文件,描述了使用的投影类型.ArcView 3.2是ArcView中首次采用了在对Shapefiles进行投影转换时创建.prj文件的版本.ArcIMS使用.prj文件来为地图服务创建一个通用的投影.如果.prj文件不存在,数据仍然能够进行投影,但是,必须人为地指定输入的投影类型.
投影
在ArcIMS中,投影是在服务器端通过MapService AXL中的三个标签来实现的,这三个标签是:FEATURECOORDSYS,FILTERCOORDSYS和COORDSYS.
FEATURECOORDSYS定义整个地图服务显示的投影类型.
FILTERCOORDSYS定义了客户端请求的投影类型.目前,ArcIMS中还不支持客户对投影的请求.所以,FILTERCOORDSYS与MapService AXL中的FEATURECOORDSYS定义了相同的投影类型.
COORDSYS定义了地图服务中输入的投影类型.只有当.prj 文件不存在时才需要用到它.
课程材料中包含了一个特殊的文本文件pedef.h,提供了各种投影的ID号,ID号用于上述三个标签中,用以定义使用的投影类型.尽管pedef.h文件很大,但它列出了常用地图投影且经过了精心组织.
查询和建立表关联
通过属性表或关联表查询属性数据是GIS的一个基本功能.结构化查询语言(Structured Query Language,简称SQL)语句可以在QUERY标签中定义.其中对关联表的查询是可选的.任何两个数据库表都可以通过一个公共字段建立关联.在对关联表进行查询时,只能对相似的表进行查询.例如,当对某个Shapefile的dbf进行查询时,可关联的表只能是另一个dbf.
影像
尽管通过Author的目录表界面中可以直接访问包括TIFF文件在内的几类影像图形类型,其它许多影像只能通过人工的方法添加进去.IMAGEWORKSPACE标签(隶属于WORKSPACE标签)就是用来指向影像文件存在的文件夹的,与SHAPEWORKSPACE相似.每个影像工作空间都有一个唯一的名字.每个影像都是以一个图层的形式存在于MapService AXL中的.LAYER标签中的DATASET标签引用影像图层的名字及其工作空间.
一些遥感图像处理软件中的图像都支持多波段.每个波段都是具有某一特殊的波长的光谱,可以单独引用或作为一个ArcView影像目录被调用.
注意,影像数据如果没有合适的地理参考和投影是不能很好地与经过投影的矢量数据匹配的.
编辑AXL时的出错处理
在定制AXL文件的过程中,不可避免会出现输入错误.为了快速地找出错误,可以使用ArcIMS Administrator的调试窗口.要打开调试窗口,请参照练习中的第四步.
练习7 自定义AXL文件
第八章 定制HTML浏览器
章节概述
HTML浏览器适合于不需要要素数据流和数据集成的相对简单的网站.但是,通过HTML,JavaScript语言或修改JavaScript代码很容易对HTML浏览器进行定制.
HTML浏览器概述
仅仅包含一个影像地图服务的网站,可以在Designer中使用HTML浏览器创建.HTML浏览器的典型特征是瘦客户端,GIS功能有限但不需要Java 2插件或Applet的支持.
在利用Designer进行设计时,HTML浏览器包含了许多框架和HTML页,以及从定制的角度看,最重要的是一个允许高度自定义的参数文件.
可定制因素
Designer本身提供了许多影响网站外观的定制工具,那么为什么还要担心定制呢 这有点象Author与AXL之间的关系,Designer并不可能创建一个能满足所有的网站程序员要求的网站.所以很自然地需要改变默认框架添加定制文字,工具或公司标志,改变颜色或为终端用户提供动态定制解决方案.
HTML浏览器文件
上面的图片显示了在Designer中创建使用HTML浏览器的网站时的输出结果.其中包括四个文件夹和构成网站的多个HTML文件.注意到其中的default.htm文件,它是访问网站时访问的第一个网页.
多数定制都是在ArcIMSparam.js文件中进行的.这是一个存储了在Designer中选择的参数以及其它许多影响网站的外观和功能的参数的JavaScript参数文件.除此之外,其它一些文件也可以用来定制.例如,可以用你自己定制的图象来替换images文件夹中的图象或对toolbar.htm文件进行重新组织从而改变它原来的外观等等.
HTML框架
HTML框架为使用HTML浏览器和Java浏览器的ArcIMS网站提供了一个基本的骨架.了解HTML框架,有助于理解组成网站的文件之间的关系.
HTML框架是在一个特殊的HTML文件中定义的.这个文件本身并不包含什么网站内容(其BODY完全是空白的),它只是用来定义一个页面的显示窗口,即把当前的浏览划分成多个窗口,每个窗口显示一个单独的HTML页面.在ArcIMS中,这一文件通常是default_ie.htm或default_ns.htm.
网站可以被划分成许多行和列(如上图所示),也可以只包含一个或两个框架.一系列行或列就被称为一个框架集(Frameset).当我们使用行和列来定义框架集时,每个行和列都被给予一定的网页空间.每个框架的空间的大小可以用pixel数来表示,也可以用所占窗口的百分比来表示,也可用*表示这个框架的大小就是剩余空间的大小.
FRAMESET标签中定义的框架集的行数或列数决定了次一级FRAME标签或FRAMESET标签数.在上面的例子中,第一个FRAMESET标签定义了三行.在该标签下,又有两个FRAME标签和一个FRAMESET标签,一共是三个次一级的标签.每个FRAME标签都有一个name属性和一个src属性,前者是用来标识该框架的,而后者定义了哪个网页显示在该框架中.
Defalt_ie.htm文件中的框架布局
HTML浏览器的版面布局是通过HTML框架来控制的.共有三个文件能够最终影响框架布局——default.htm,default_ie.htm和default_ns.htm.其中,Default.htm文件是ArcIMS网站的入口文件,它唯一的功能是用来判断客户端所使用的网页浏览器的类型——是Internet Explorer还是Netscape.在此判断的基础上,default_ie.htm或default_ns.htm将被初始化,并开始站点的框架构造.注意,ArcIMS只支持Internet Explorer和Netscape两种浏览器,这两者缺省的布局基本相同,但也有一些微小的差别.
上图是Internet Explorer HTML浏览器默认的框架布局示意图(与真实的大小不成比例).这个图对定制自己的版面很有用.因为只有知道了在你的网站中采用哪些页面后你才能定义好使用哪些框架以及分配的空间大小.至于每个框架该放到哪儿就完全是由你自己来决定了.
有些网站程序员可能会不喜欢用HTML框架.尽管ArcIMS中默认的模板使用了大量的框架,你照样可以使用HTML表格来完全代替这些框架.这一技术在HTML浏览器中实现起来要比在Java浏览器中实现起来要容易得多.
ArcIMSparam.js文件
ArcIMSparam.js是用于非框架的HTML浏览器定制时的基本文本文件.它是一个完全可以被编辑的文本文件,里面包含了许多决定网站的外观和功能的参数.可以直接或通过动态HTML技术来改变那些变量,以达到定制的效果.每对浏览器进行一次刷新时,ArcIMSparam.js都被重读一遍,使得最新的修改就被显示到浏览器当中去了.ArcIMSparam.js包含的变量有:用来调整显示范围的变量,决定工具栏中可用的工具的变量,设置颜色的变量和提供一些交互性功能的变量等等.
ArcIMSparam.js中的颜色和活动图层
ArcIMS网站中的颜色可以使用下列三种模式——十六进制,RGB或直接用颜色名字.ArcIMSparam.js中为那些需要颜色的对象提供了默认的颜色.尽管三种颜色模式之间的转换方法有很多,仍然不能在一个文件中间杂使用它们.HTML对象使用的是十六进制和颜色名字两种方案,而与制图有关的对象则只能使用RGB模式.
颜色名和RGB值都可以直接被使用.有些颜色名很好理解,如"green",但有些颜色却不那么好理解,如honeydew,blanchedalmond和papayawhip等,除非参照比色表或使用ESP才能认出这些颜色.用十六进制数来表示颜色要稍难一些,但是如果知道了FF等于RGB颜色法中的255,00等于0,80等于128等这些关系会有些帮助.一般来说,坚持使用系统默认的颜色模式来改写原来的颜色.
设置活动图层及字段能够影响查询数据库等GIS操作.在有些情况下,尤其是当内容表被移去了时,建立活动图层是很后必要的.移去内容表可以为地图显示腾出更大的空间,并且可以大大地简化终端用户的界面.但是,这样就意味着用户不能对活动图层进行设置.必须知道,用户有时可能并不真正理解什么是活动图层.要在ArcIMS中设置活动图层,可以通过图层的索引号来引用图层.图层的索引号为0的是第一层,为1的是第二层,依次类推.在为查询建立字段时同样要用到索引号.ArcIMS中要求至少#D#和#SHAPE#两个字段是被包含的.#ALL#表示返回图层的所有字段.
类数据(Generic data)浏览器
通过定制,你可以创建一个类数据浏览器来浏览某台特定服务器上的所有地图服务.这一功能在局域网内连接的客户已经知道了地图服务的内容时显得十分有用.要有效地实现这一功能,就需要在ArcIMSparam.js文件中删除那些指定某一单个的地图服务的显示范围的参数,同时还要把一个能够实现类数据功能的JavaScript文件(aimsgeneric.js)拷贝到你的网站目录下来.在MapFrame.htm文件中,你还必须将aimsGenericPresent变量设置为true,从而把类数据浏览器添加上去.这样,当网站被下载时,并没有显示地图.用户通过使用工具栏上新增加的工具来选择一个想要查看的地图服务后,地图窗口中才显示出地图.
用户选项
到目前为止,我们前面介绍的所有的定制,都还是局限于网站程序员对客户所见的网站的外观所做的定制.实际上,客户端用户也可以被赋予定制的权利.例如,通过将ArcIMSparam.js文件中的allowOptions变量的值设为true,用户便可以自己改变地图的背景色,要素的高亮显示颜色和缩放框颜色等.
设置调试程度
对网站程序员来说,ArcIMS提供的最大的一个帮助就是在"user options"中的调试器(debugger).通过在调试器下拉列表中设定一个合适的值,ArcIMS能够提供一个能同时显示AXL请求和服务器端的AXL响应的对话框.这一工具能够帮助你从客户和服务器两个角度来学习AXL语言,从而帮你创建具有高度专业功能的自定义工具.此外,理解服务器端的XML响应能够帮助你书写XML解析语句.
自定义标题,背景色和图片
也可以对HTML页面,如top.htm进行定制,以进一步改善站点外观.一般来说,页面的背景颜色和文本是单独设定,互不影响的.而有些网页文件,如bottom.htm和top.htm可能会调用images文件夹下的一些图片.这些图片提供了网页的背景色和图标的填充色以及ArcIMS图标.通过检查这些页面的代码,可以很直接地将它们设置为你自己的背景色或图标.进一步的定制HTML页面,你还可以把图标等对象表移动到别的地方,也可以创建一些超级链接或其它HTML代码来增强网站的功能.
Toolbar.htm文件相对较大,它通过DHTML语言创建一个两列宽的表来放置所有的为网站选定的工具.通过对这个文件的简单的定制就可以产生不同布局的表格,不同大小的图标或使用自己定义的图标,或根本不使用表格.要使用自己的图标,只需要用已经创建好的GIF图标来代替原来保存在images文件夹下的图标即可.ArcIMS中的图标有一套严格的命名规则——带有_1的图标表明工具没有被激活,而带有_2则表明工具处于激活状态.
多功能GIS网站
不怕做不到,只怕想不到,所以网站的定制中最需要的是想象力.上面的图为我们提供了一个多功能GIS网站的思路,它把ArcIMS的功能以一种"浮动框架"的形式嵌入在网站中.实现这一功能只需在Internet Explorer中使用标签即可.当然,也可以采用传统的标签把你的网站嵌入到别的网站.
使用JavaScript和动态HTML
JavaScript和DHTML与HTML浏览器有密切的关系.尽管ArcIMS不需要很高的编程经验,但是知道一些JavaScript和动态HTML的知识对ArcIMS高级应用很有帮助.
JavaScript是一种专门用来嵌入到HTML中的语言.它与Java差不多,但是又独立于Java,而且它不包含Java的扩展对象模型.JavaScript在某种程度上的确能帮助网站程序员在一定条件下使用分支语句和循环语句,且与其它作Internet编程语言相似,通过鼠标事件让用户与应用程序交互.JavaScript最具魅力的地方是它广泛地支持包括Internet Explorer和Netscape在内的主流浏览器.通过JavaScript可以创建一些能够动态地响应用户交互操作的HTML页.例如,当我们放大到一个新地方时,top.htm文件的标题中可能出现一个新的标题.使用JavaScript的一个最简单的例子是产生滚动效应——当用户把鼠标放在某个对象上面时,图标自动地改变.有了JavaScript,一些高级网站程序员可以创建自己的JavaScript函数,在客户端实现一些特殊的功能.
练习8 HTML浏览器定制
第九章定制Java浏览器
章节概述
本章将从多个方面来分析Java浏览器的优点.通过前面的学习我们知道,HTML很适合于希望快速创建地图的瘦客户端,但是它只适用于影像数据流,而不是真正的地理数据.Java浏览器的优点就在于它们不仅仅支持影像地图.
Java浏览器提供了一种独特而又强大的要素数据发布方案,而且和HTML浏览器一样,也可以使用JavaScript和HTML编程来定制.你不仅可以通过Java标准模板来快速地创建标准网站界面,而且还可以定制自己的网站.
要了解Java浏览器的强大的功能,必须先搞清楚模板中几个关键的HTML文件和JavaScript文件之间的关系.为此,我们将介绍另一个AXL文件default.axl,以及如何使用这个文件来标准化你的网站.你还将学习如何利用applets来实现ArcIMS功能.此外,我们还将详细地讲述Java浏览器的文件结构及其框架布局.最后,你将学习一些Java浏览器对象模型的基础知识,这些模型是如何起作用的,以及如何交互地使用ArcIMS的Java applets.
Java浏览器概述
Java编程语言被誉为是助长了Internet增长的催化剂.Sun Microsystems公司开发的这种语言能够在包括Windows和UNIX在内的任何平台上进行编程.由于它考虑到了Internet的复杂性,就增加了程序员在许多不同的应用领域中开发跨平台的Java程序的能力.
ArcIMS吸取了Java语言的优点,为网站程序员提供了一个简单实用的创建基于Java的Internet网站的方法.在Designer程序向导中,可以选择创建HTML网站或Java网站.当你选择了创建一个Java网站时,你可以从Java Standard和Java Custom两种模板中选择一种.
Java浏览器被认为是一种"胖"客户端.简言之,Java浏览器生成地图的速度比HTML网站要慢.理由很简单,几乎所有的地图交互和处理操作都在客户端机器进行,而不是在服务器端机器上进行的.服务器把Java Applets发送到客户端浏览器,终端用户就是通过这些Applets与服务器进行交互的.
Java Custom网站还要求客户端浏览器能够使用脚本语言与Java 2 applets进行通讯.目前Netscape Navigator(4.5版本)不支持这一功能.此外,客户端机器还要求安装Java Runtime Environment.
Java浏览器的优点
ArcIMS使得Internet GIS又向前推进了一大步.ArcIMS的典型特征是进行要素数据流的能力.换句话说,客户可以在Java站点之间传输矢量要素数据.例如,客户可以接收一幅包含了几个图层的地图并进行修改,然后把修改过的地图发送给另一个客户共享.这样,GIS用户就可以在局域网内互相交流数据,并且可以使用这些数据进行叠加,数据处理和GIS分析等操作.
由于Java浏览器依赖于服务器端对数据进行处理,所以Java网站可以最大地减小对服务器发送的请求数,从而大大地减轻了向服务器传送数据的压力.
Java浏览器网站的另一个优点是,它能够在同一个浏览器中合成多个地图服务.例如,你可以在你的网站上包含一个加拿大的影像地图服务和一个美国的要素地图服务,而两者却毫不冲突.在这一点上,HTML网站就只能使用一个影像地图服务.
Java网页很容易定制,方法与HTML网站基本一样.你可以运用你的HTML编程技巧按照需要改变某些标签和参数,也可以通过修改Designer中创建的JavaScript参数文件来改变页面显示.此外,你还可以通过与地图Applets本身打交道来改变Java网页,可以使用Java Applet API生成站点请求.通过后面的练习你就会知道,在Java浏览器中很容易就把API请求插入工具中,然后用该工具来与网站通讯.
Java Custom浏览器
Java Custom浏览器为网站程序员定制网站提供了最大的灵活性.原始的Java Custom网站是通过Designer创建的.Designer输出的一些文件构成了Java网站的基础.这些文件中包含了用来生成每一网页组件以及与地图applet交互的HTML页面,而这些页面多数都包含了可以修改的嵌入式JavaScript代码.此外,这些文件中还包含了可供定制的JavaScript文件,用户可以添加或删减框架,改变 工具,颜色或专题类型.
Java浏览器还将创建一些applets发送到网页浏览器中.这些applets提供了网站的功能,并且被发送到ArcIMS体系结构中的客户端.地图的交互操作都在客户端机器中进行处理的.因此,Java 浏览器模板能够创建功能更大,速度更快的地图网站.在Java Custom浏览器中,ArcIMS创建了四个applets:地图applet(IMSMap),内容表applet,概略图applet和比例尺applet.
Java Custom站点一般被划分成许多框架,每个框架包含网站的一个重要的功能.系统默认的框架数是八个.后面我们将学到如何移动,删除框架或改变它们的的大小.
Java Custom浏览器的HTML文件
在使用Designer程序设计完网站后,Java Custom浏览器将生成一些HTML文件.尽管这些文件是通过Designer自动生成的,但还是可以通过其中的一些关键的文件来定制你的网站.
每个Java网站会生成default.htm文件.这是用户进入你的网站时打开的第一个HTML文件.其作用是用来检查网站的一些初始条件.在系统默认条件下,它将检查客户端机器上是否安装了Java Runtime Environment.如果检查到没有安装的话,另外一个用来安装该软件的页面将会打开.JRE是Java客户使用要素数据流的必要组件.
Frame.htm文件是用来定义网站框架的数量,内容,大小和位置的.这个文件是允许自定义的,通过修改其中的一些参数可以改变网站的框架布局.
Map.htm文件的主要功能是向客户端浏览器发送并运行Java驶applet.该文件同时指向default.axl文件,并获取地图中的图层信息以及图层的显示方式.
Toolbar.htm定义了各种工具及其在工具栏中的位置.通过编辑这个文件,可以设置工具栏中工具的数量及顺序.Toolbar.htm引用junction.js文件,获取每个工具的功能.
Java Custom浏览器文件
在Designer过程中产生的文件除了HTML文件以外,还有其它一些参数文件及文件夹,以供程序员定制和修改默认的设置.
Default.axl文件与Authoring 中创建的Mapservice地图服务AXL文件有相似.它是用来定义地图显示的参考文件.该参考文件包含站点所用的图层以及各图层的显示方式.Default.js文件是一个JavaScript文件,用来定义designer中创建的功能.这些功能包括地图提示,活动图层,地图显示范围,比例尺单位和查询结果等.这些功能都是通过frame.htm文件合成到网站上去的.
Function.js文件是一个Javascript文件,用来定义工具条上各个工具的功能,例如,可以将某个Java applet赋给某个工具,当用户点击工具时,将执行预设立的请求,这些功能是通过toolbar.html文件加入到网站中去的.
此外,还将在网站中创建另外两个文件夹.其中Images文件夹存储的是工具和背景中使用到的GIF和JPEG文件,如各种工具图标,鼠标形状,背景等.Meta-inf文件夹预留用来让为程序员增加元数据文件供以后使用.
Mapservice AXL文件与default.axl文件对比
default.axl文件的允许网站程序员不经过修改Mapservice AXL文件,就能改变可见图层及其专题显示.此外,网站程序员还可以使用default.axl,维护网站的标准外观,即使在Mapservice AXL文件已被修改了的情况下.
在Authoring过程中对Mapservice AXL文件的任何修改都不会影响default.axl文件.例如,即使你在Mapservice AXL文件中删除了一个图层,default.axl文件也没有丝毫改变(这个图层在default.axl文件中照样被引用).
当你在要素地图服务中增加或删除任何图层时,你在网站上都看不出这种改变.也就是说,default.axl文件中有关图层及其显示的信息能够覆盖掉Mapservice AXL文件中的相关信息.所以,网站程序员可以在default.axl 文件中编辑图层及专题符号显示标签,以使这些信息总是出现在网站上,而不管地图服务AXL文件中的内容是什么.
那么怎样才能看到在Mapservice且AXL文件中所做的修改呢 你可以人工地编辑default.axl文件作相应的改变,或者也可以重新运行一遍Designer程序,生成一个具备相同的图层数据及显示信息的新的Mapservice AXL文件和新的default.axl文件.
Default.axl文件
Default.axl文件是Designer在创建Java浏览器网站时产生的另一个AXL文件,它提供了另一种改变网站所使用的数据及其专题显示的方法.
Default.axl文件的内容看起来与地图服务AXL文件既有相似之处又又不同之处.对于影像地图服务来说,default.axl文件仅包含了影像地图服务的引用.在Default.axl中只能见到一个图层,用Mapservice名引用的影像图层,对于要素地图服务,在Mapservice职AXL文件中定义的图层在default.axl中也同样地定义.例如,如果在C:\arcIMS\AXL目录中的Mapservice确良AXL文件中有五个多边形图层,在default.axl中也有同样五个多边形图层.
Java Custom浏览器文件结构
打开一个由Designer生成的Java Custom浏览器网站时,文件将依次被打开或访问.打开的顺序是在Designer中建立的,但是你可以根据需要改变这个顺序.
在缺省的情况下,一个典型的Java网站打开的第一个文件是default.axl文件,该文件为站点的入口,常用来检查网站的设置.对于Java网站来说,default.axl文件将检查客户端是否安装了Java Runtime Environment.如果安装了的话,接下来的文件就被打开,否则,一个提示用户安装JRE的网页被打开.
接下来要打开的是Frame.htm文件.这个HTML文件定义了该网站的框架的大小和位置.它同时还引用default.js参数文件,实现网站的功能,包括活动图层,地图提示等.
框架定义好了以后,每个框架所指向的HTML文件将被执行.其中两个主要的框架是地图框架和工具栏框架,分别执行的是map.htm和toolbar.htm文件.Map.htm文件将applets下载到网页浏览器当中,并且到default.axl文件中去查找有关图层及其专题显示信息;toolbar.htm文件则定义了工具栏的外观,并且通过访问function.js参数文件获取每个工具的功能信息.
Java Custom浏览器的框架布局
上图显示了Java Custom浏览器模板的基本框架布局(与真实大小不成比例),图中的数字为框架的大小(单位是pixel),其中MapFrame是主要的地图显示窗口,其大小就是剩余空间的大小.这些框架的大小都可以通过编辑frame.htm来改变,也可以在frame.htm中删除某个框架.
每个框架都与一个相关联的HTML文件,该文件可以调用所需的applets创建框架,或者定义框架所包含的内容.有些框架,如ModeFrame(描述了工具的帮助信息)所需的信息保存在不止一个HTML文件中;而有些框架,如MapFrame,则是从另外一个文件(default.axl)中接收参数信息.这些文件都写在上面的括号中.
对于textFrame框架,主要的HTML框架是bottom.htm,其它一些HTML文件也能够用来填充这个框架,这要视你在网站中加入的功能而定.这些HTML功能包括:AddPoint.htm,EditNotes.htm,MapNotes.htm,OpenProject.htm,SavaMapImage.htm,SavaProject.htm,SetMeasureUnits.htm,Clickxy.htm*,LoadingMapNotes.htm*,SubmitMapNotes*.
注:带*的表示Beta 3以后发布的.
Java Applets
Applet是一种能够作为附件嵌入在网站文件中,并能在支持Java的网页浏览器中执行的Java程序.当首次访问一个使用Java浏览器模板的网站时,Java 浏览器会向客户端浏览器发送许多applets.这样,用户向网站中请求一个功能时,applet就会在客户端机器处理并执行这些请求.
这些applets中,IMSMap是Java模板网站中的一个重要的组件.如果没有IMSMap applet,Java 浏览器网站就不起作用.由于applet是在客户端处理数据的,所以能够节约服务器端资源,提高运行速度,这样就可以支持更快更强大的应用程序,可以添加一些功能如要素流.
要使用IMSMap applet,用户必须能够与它进行交互.客户可以通过工具条或HTML输入窗体与applet进行通讯.例如,如果你要在世界地图上放大到某个国家,可以点击Zoom In 工具.由于在function.js文件中,你已经通过为这个按纽分配了一个IMSMap请求.所以每当客户端用户点击这个按纽时,相应的请求就会被执行.
对于Java Custom浏览器来说,还有其它三个applets也被发送到浏览器当中,即内容表applet(IMStoc),概略地图applet(IMSoverview)和比例尺栏applet(IMSscalebar).它们都依赖于IMSMap applet.例如,概略图就依赖于地图框架中打开的是什么图层.所以实际上,这三个applets都是IMSMap apple的"附件".
理解Java浏览器的对象模型
IMSMap apple中使用的元素,例如 applet对象本身(parent.mapFrame.IMSMap),图层,颜色,专题符号等等.
对象能够实现一定的功能,请求就是用来告诉对象去执行相应的功能的,许多请求包含了提供更加具体信息的参数.例如,漫游请求就需要一个字符串参数,用来描述向那个方向漫游(如"panEast","panWest","pan south").注意即使请求没有参数,也必须用一个空的括号"()".
对象和请求都有一定的等级体系,越概括的对象越放在上面(如IMSMap apple对象),而越具体的对象越放在下面(如线图层的ValueMapRenderer).
许多Java Applet API方法都返回一个对象.例如parent.mapFrame.IMSMap.getExtent()就返回一个范围对象.你可以将返回的对象赋给一个变量,然后在后面的语句中调用这个变量.
连锁请求允许将基本的Object.Method语句扩充成包含了许多请求的语句(Object.出息Method.Method.Method etc.).系统在解析这种语句时每次都执行一个object.method对,返回的对象又被下一个method引用,以此类推.在编写连锁请求语句时,要注意确保每个object.method对返回的对象要正好是下一个method的object,否则程序容易出现错误.
Java Custom浏览器对象模型举例
上面的对象模型图显示了IMSMap applet对象之间的关系.这种图对于了解对象之间的关系,哪些方法可以调用来获取信息以及改变一个对象等来说,是个重要的资源.
上面的例子是一个获取某个特定图层的地图范围(本例中是要获得该图层的最大和最小的x,y坐标)的过程示意.
IMSMap applet对象的等级最高是applet本身,可以通过下列JavaScript代码来访问——parent.mapFrame.IMSMap.从这点出发,你可以调用一些次一级的对象.
该例中,可以用applet对象请求获取某一特定图层.语句parent.mapFrame.IMSMap.getLayer("CANADA")调用了地图 applet对象,并且通过它得到一个名叫"canada"的图层.该语句将返回一个图层对象.可以将这个图层对象保存在某个变量中供后面调用.
有了这个图层对象以后,你就可以得到它的范围了.使用getExtent()方法,就可以得到Canada这个图层的范围,并作为一个范围对象返回.最后,你可以从图层对象中获取一些特定信息,本例中可以获得地图范围的最大和最小的x,y坐标(使用getXmin,getYmin,getXmax,getYmax请求).这些方法返回双精度对象(实数).这些值也可以保存在变量中供今后使用.
Java浏览器对象模型
ArcIMS的联机帮助对于理解Java浏览器对象模型,对象及对象模型等级,每个对象可以使用的方法等是一个很有用的资源.但是,Beta 3版本的对象模型并没有包含在ArcIMS的联机帮助中.
在线帮助是以功能的分类来组织的.对于每一类功能,帮助窗口的右侧都有详细的描述,并且列出了这一功能可以使用的对象和方法.
练习9:定制Jaca浏览器
第十章 ArcIMS的安装和体系结构
章节概述
本章将向您详细地剖析ArcIMS的几个主要的组件,并向您介绍ArcIMS的安装过程.
首先,您将了解到ArcIMS体系中的主要的软件构成,如Web服务器,servlet engine,servlet connectors和Java. 其次,还将介绍一些与ArcIMS运行有关的NT服务,如Tasker和Monitor.此外,还将介绍ActiveX和ColdFusion,以及它们是如何被整合到ArcIMS中来的.最后,介绍了ArcIMS的几种配置方案以及安装过程.在练习中,我们将实战演习一番,让你亲自动手安装ArcIMS和Web服务器.
到目前为止,ArcIMS支持两种平台:UNIX for Solaris 2.6版和支持Service Pack 4的Windows NT 4.0.对于Windows NT的安装来说,Web服务器和ArcIMS服务器要求至少要有128MB内存(推荐使用256MB)和要安装ArcIMS组件及WEB服务器,至少要65MB硬盘空间,可能还需要一些临时文件空间及虚拟内存空间.
ArcIMS的多层结构体系
ArcIMS是由许多软硬件组合而成的复杂体系,可以把它划分成三个层:表现层(Client),事务逻辑层,Middleware和数据存储层,Server.
打个比喻来说,演示层就好比是餐馆的顾客;中间件好比是服务员,在顾客与厨师间传递食物,而数据存储层则好比是厨师准备食物.
各层之间是通过ArcXML语言来交流通讯.
ArcIMS组件
ArcIMS是一个由许多软硬件组合而成的复杂体系.下面我们分别从客户端,中间件和服务器三个方面分别来介绍.
客户端是通过HTTP从服务器获取另一台计算机服务并接受服务器响应的一个计算机系统.例如,一个向ArcIMS服务器请求一幅地图的工作站就是空间服务器的一个客户端.Java或HTML浏览器也被看成是客户端的一部分.
中间件是协调应用程序和网络之间的软件.它起着管理不同计算平台上的程序之间的交互.在ArcIMS中,客户和服务器之间的通讯是通过Web浏览器,servlets,servlet engine,servlet connector,应用服务器和ArcIMS Monitor来实现的.
服务器是向客户端机器提供服务的程序或计算机.客户和服务器之间的连接一般是通过网络上的经过编码的请求和响应来传递信息的.ArcIMS空间服务器是接收处理客户请求并向客户返回地图的程序.服务器一般始终运行着,等着客户向其发出请求.服务器端包括ArcIMS空间服务器,数据服务器和ArcIMS Tasker三个部分.
Web服务器
Web服务器接收客户端请求,并创建网页在客户端发布.尽管Web服务器包括了许多硬件,发布网页的WEB服务器软件也是必不可少的.完全支持ArcIMS的Web服务器软件有:Apache,Microsoft Internet Information Server和Netscape Enterprise Server.
本课使用的是Apache Web服务器软件,它能够从www.apache.org上免费下载.但是,其它两个软件可能更适合你采用.例如,IIS支持ActiveX和ASP技术,而Netscape则自带Servlet,两者也各有长处.
Servlets
ArcIMS体系要求有Servlets的支持.Servlet是作为网络服务的一部分运行,并能响应客户请求的一个Java程序.它最常见的功能就是能够扩展Web服务器的功能使之动态的调整网页的内容.此外,它还可以用来接收客户请求,获取并处理客户所需要的数据,以及将结果返回客户端.Servlets与applets很相似,只不过servlets能够在服务器端运行.Web服务器正是通过servlets与ArcIMS进行通讯的,所以需要安装支持servlet 通讯的组件,包括servlet engine和servlet connector.
Servlet engine允许Java servlets与Web服务器之间的通讯.由于ArcIMS的Web服务器组件是以Java servlet的形式来组建的,所以要使ArcIMS能够运行,就必须安装servlet engine.
有些Web服务器软件,如Netscape Enterprise Server,本身就支持servlet ,所以不需要第三方的servlet engine.而一些WEB服务器(IIS与apache)必须使用第三方的servlet engine.
ArcIMS支持的servlet engine有:ServletExec,JRUN和Apache Jsev.
Servlet Connector
Servlet Connector是用来连接Web浏览器和ArcIMS应用服务器的,servlet connector有三种:Servlet Connector,ColdFusion Connector和ActiveX Connector.其中Servlet connector是ArcIMS标准connector,而ColdFusion Connector和ActiveX Connector则支持通过它们的开发环境对ArcIMS进行定制.
使用ArcIMS ActiveX和ColdFusion Connector,网站程序员可以建立ASP或ColdFusion网站,并通过在服务器端处理的ASP或ColdFusion网页中嵌入ArcIMS请求,与ArcIMS的影像地图服务集成.具有地图或表格数据的ArcIMS响应嵌入在由服务器生成的网页中,并由客户端进行提取.
ActiveX和CoddFusion
除使用标准客户端浏览器之外,熟悉Web浏览器扩展功能并使用影像地图服务的网站程序员,可以使用ActiveX和CoddFusion技术定制自己喜爱的网站.ArcIMS中包含了一个示例,用来帮助您从结构和格式来开始设计.但是,如果要完全定制一个网站的话,就有必要熟悉ColdFusion或ActiveX 技术了.
ActiveX和CoddFusion给网站程序员带来了几个好处.首先,使用Web服务器扩展能够有效地给客户端程序"减肥"——它减少了对在客户端解析JavaScript和XML的依赖,这一点,ActiveX和CoddFusion网站的在线用户有时就能明显地感受到的效率明显地提高了,速度很明显地快了!其次,这些技术提供了更好的数据库集成.最后,由于程序代码是在客户端的外部,更易于维护且更安全.
ActiveX是一种使用Microsoft Internet Information Server (IIS)和Windows NT Server作的技术/API,Coldfusion则是一个跨平台的解决方案.ActiveX本身并不是一门编程语言,而只是使得象VB这样的编程语言能够支持多层客户服务器结构.Allaire公司的 ColdFusion Studio则本身就是一个支持JavaScript中同类概念的编程环境.例如,在ColdFusion中也一样存在变量声名,条件分支语句和和循环语句等.
ArcIMS应用服务器
ArcIMS应用服务器是处理输入请求负载平衡的程序,作为一种后台程序(NT service/UNIX daemon)来运行.此外,它还能提供跟踪地图服务及地图服务运行所在的ArcIMS空间服务器的目录.应用服务器正是在这些信息的基础上,合理分配空间服务器的.
多个Web服务器可以同时和应用服务器进行通讯.在分布环境下,应用服务器可以安装在与Web服务器不同的机器上.
附加的NT服务
除应用服务器外,另外两个中间件后台程序(NT service/UNIX daemon)用来支持空间服务器,那就是Monitor和Tasker.
Monitor是一个与空间服务器一起在后台运行的程序,其作用是启动新的地图服务和空间服务器,并在空间服务器或计算机故障时重新启动地图服务.
Tasker是整理服务器的内务手.它根据用户指定的每个Mapservice的间隔时间,就删除一次影像地图服务生成的一些临时文件夹.
ArcIMS空间服务器
空间服务器是ArcIMS的主要处理中心.空间数据在ArcIMS的空间服务器中进行处理,并将输出的地图与数据返回给WEB服务器.空间服务器提供五个功能,其基本功能为处理影像及要素,影像服务器生成地图影像文件,而要素服务器则液化地图要素,如shapefile, ArcIMS空间服务器还有三个功能,查询服务器允许进行数据库搜索;地理编码服务器进行地址匹配操作;提取服务器允许对数据进行裁剪提取子集.第六章中详尽地描述了这些功能.
Java运行环境
大多数的ArcIMS功能的实现都要求机器能够支持Java 2应用.Java是Sun Microsystems公司开发的独立于开发平台的面向对象编程语言,它支持以跨平台的Java applet方式的Internet编程.
ArcIMS要求在服务器端安装Java Runtime Environment (JRE)1.2版.JRE是Java Servlet Development Kit (JSDK)的一个子集,而JSDK是使用Java语言来开发和测试servlet的软件环境.JRE包含了Java 虚拟机, Java的核心类和其它一些支持Java 2插件的必要文件.这两个组件都是运行ArcIMS Manager,ArcIMS 应用程序(Author,Designer与Administrator)和Java客户端浏览器的关键组件.
如果你的机器安装的是Windows NT操作系统的话,还需要安装Microsoft Java Virtual Machine Biuld 3186.和Java 虚拟机一样,Microsoft 虚拟机