810 likes | 983 Views
6.3 ArcIMS 的用户定制. 6.3.1 HTML Viewer 简介. 1 、概述 HTML Viewer 是 ArcIMS 自动安装的一种地图浏览器,用于定义 ArcIMS 网站的图形界面和功能,由一组 HTML 和 Javascript 程序组成,比任何一种 Java viewer 都轻巧,但是不是最“瘦”的浏览器。 HTML Viewer 只能显示一个图像服务。 不使用任何 ArcIMS 连接器,仍然可以 HTML Viewer 中使用 asp , ColdFusion 和 java 技术。. 6.3 ArcIMS 的用户定制.
E N D
6.3 ArcIMS的用户定制 • 6.3.1 HTML Viewer简介 • 1、概述 • HTML Viewer 是ArcIMS自动安装的一种地图浏览器,用于定义ArcIMS 网站的图形界面和功能,由一组HTML和Javascript程序组成,比任何一种Java viewer都轻巧,但是不是最“瘦”的浏览器。 • HTML Viewer 只能显示一个图像服务。 • 不使用任何ArcIMS连接器,仍然可以HTML Viewer 中使用asp,ColdFusion和java技术。
6.3 ArcIMS的用户定制 • 6.3.1 HTML Viewer简介 • 2、HTML viewer文件组织 • javascript子目录 • Images子目录 • Meta-inf • ArcIMSparam.js参数文件 • HTML文件
站点目录 ArcIMSParam.js HTML文件 images JavaScript 图像文件 JavaScript文件 HMTL Viewer的目录结构
2、HTML viewer文件组织 • javascript子目录 • 包含构成HTML viewer JavaScript函数库的文件 • Images子目录 • 用于浏览器页面中诸如按钮,图标和Logo的图像文件。当创建一个新的站点时,可考虑使用自己或部门的相关图像来代替这些默认的文件 • Meta-inf • 该子目录是在Designer创建标准浏览器时生成的,但是在定制浏览器时,不需要该子目录。 • 所以可以删除该子目录来减少HTML Viewer占用的存储空间,删除该子目录不用担心对浏览器的初始化有任何影响。
2、HTML viewer文件组织 • ArcIMSparam.js参数文件 • 存储了在Designer中选择的参数以及其他许多影响网站外观和功能的参数Javascript文件。 • 通过改变这些变量可以定制许多重要的功能,以达到自己的目的。常用的修改项目有工具显示和操作,图层管理站点的色彩和图形。 • HTML文件 • HTML Viewer大约有30个HTML文件。其中部分文件用于初始化浏览器,部分用于定制浏览器的框架内容。其他则用来载入表单和显示数据。
3、初始化时的文件载入次序 • 当客户端打开一个Designer设计的HTML Viewer,相关的文件会依次被访问,并载入到浏览器中,这个过程便称为浏览器的初始化、启动或者预载入。 • 下面按步骤来描述该载入过程。
(1)Default.htm是网站的进入点,检查客户端浏览器的类型和版本是否符合要求。如果是,则读取run.htm,并载入Authorize.htm和jsForm.htm。如果否,则载入CannotRun.htm并提示用户。(1)Default.htm是网站的进入点,检查客户端浏览器的类型和版本是否符合要求。如果是,则读取run.htm,并载入Authorize.htm和jsForm.htm。如果否,则载入CannotRun.htm并提示用户。
(2)Authorize.htm检查服务是否设置了访问权限,如果是,则弹出登录对话框,要求用户输入认证信息。(2)Authorize.htm检查服务是否设置了访问权限,如果是,则弹出登录对话框,要求用户输入认证信息。 • Authorize.htm也调用两个js文件, ArcIMSparam.js和aimsResource.js,发送GET-SERVICE-INFO请求主地图和鹰眼地图。
ArcIMSparam.js包含浏览器的各个参数,包括主地图和鹰眼图的URL。 aimsResource.js保存各种消息、按钮和标题等所使用的文本。
(3)载入浏览器页面(Viewer.htm) • Viewer.htm定义浏览器的框架 • 通过将网页切分成多个小框来定义布局结构。有用于显示主地图的、鹰眼地图的、层列表的和工具条的框。 • 除了MapFrame和PostFrame必须保留外,其他的框架通常可以被移除。
(4)载入MapFrame.htm和PostFrame.htm到相应的框架中,其他的一些框架内容的HTML文件辅助完成整个浏览器的初始化。(4)载入MapFrame.htm和PostFrame.htm到相应的框架中,其他的一些框架内容的HTML文件辅助完成整个浏览器的初始化。 • 其他用于载入和显示的数据的文件包括:buffer.htm,query.htm和storedquery.htm
3、初始化时的文件载入次序 • HTML Viewer客户端浏览器初始化过程应用文件载入次序如下页图:
初始化浏览器 Default.htm进入站点 客户端浏览器的类型 是否符合要求。 是 否 读取run.htm,并载入 Authorize.htm和jsForm.htm 载入CannotRun.htm 并提示用户 发送地图请求 载入浏览器页面 Viewer.htm,定义浏览器的框架 载入其他页面 到相应的框架中
网站的进入点,检查客户端浏览器的类型和版本是否符合要求。网站的进入点,检查客户端浏览器的类型和版本是否符合要求。 Default.htm 否 是 Cannot.htm run.htm 检查服务是否设置了访问权限。 包含浏览器的各个参数,包括主地图和鹰眼图的URL jsForm.htm Authorize.htm ArcIMSparam.js 是 否 保存用于信息、按钮和标题的对应文本。 弹出登 录对话框 ArcsResource.js Viewer.htm 定义了浏览器的框架。 MapFrame.htm PostFrame.htm
4、HTML Viewer框架 • 熟悉HTML框架有利于理解组成网站的各个文件之间的关系。 • 每一个框架显示一个HTML页面,各框架包含的页面交互工作。 • Viewer.htm定义了由Designer生成的HTML Viewer框架布局,如下图所示:
4、HTML Viewer框架 TopFrame TOCFrame Overview MapFrame ToolFrame TextFrame PostFrame (隐藏的) BottomFrame ModeFrame
4、HTML Viewer框架 1)TopFrame TOP.htm定义了TopFrame的内容。TopFrame位于浏览器的顶端。包括标题文本和ArcIMS的标志。 2)MapFrame和Oviewer地图 MapFrame定义了MapFrame的内容,显示地图影像,当载入该框架时,它设置了一系列额外的地图参数,并读取许多相关的Javascript文件。鹰眼地图包含在mapframe。它是IE的动态层叠样式表。工具条上的Overview map按钮可以设置鹰眼地图是否显示。比例尺以acetate层元素形式叠放在主地图上方。
4、HTML Viewer框架 3)ToolFrame Toolbar.htm定义了ToolFrame的内容。 ToolFrame包含了一个工具条,用于选择当前的浏览器工具。 Toolbar.htm检查ArcIMSparam.js中的关键参数和使用的JavaScript来动态创建所需的工具按钮。 4)TOCFrame TOCFrame.htm和toc.htm定义TOCFrame的内容。起初,先载入TOCFrame.htm,接着才产生toc.htm,定义显示在TOCFrame的Layerlist和图例。显示layerlist时,toc.htm仅列出在当前比例尺范围可见的图层。当比例尺发生变化,例如,当用户执行放大操作时,toc.htm将被重新载入一次。
4、HTML Viewer框架 5)ModeFrame ModeFrame.htm定义了ModeFrame的内容。 ModeFrame显示了当前的指针模式,即当前所用的工具。当点击另一个工具时,同样会重新载入一次ModeFrame.htm。 6)TextFrame Text.htm是TextFrame的存放处。 TextFrame根据选择的工具来动态载入相应的内容。它显示交互的表单以及从Arcims空间服务器返回的信息。例如, TextFrame显示Identify工具或者Query工具的查询结果。其他的HTML文件,例如,findForm.htm、addmatch.htm和select.htm在对应的工具被选择时会被载入该框架中。
4、HTML Viewer框架 7)PostFrame jsForm.htm定义了PostFrame的内容。 该表单用于与ArcIMS Servlet connector进行通信。PostFrame是隐藏的,并且含有隐藏的表单post Form。 8)BottomFrame Bottom.htm定义BottomFrame的内容。 BottomFrame放置在ModeFrame下面,用于在视觉上完整浏览器下端的图形。
4、HTML Viewer框架 1、对HTML Viewer框架布局的定制(Viewer1) 下图是IE浏览器的HTML Viewer的默认框架布局。 一个给定的网站可能被切分成许多行和列,每一个区域都有框架的名称及其对应的HTML文件。
TopFrame ( Top.htm ) ToolFrame (Toolbar.htm) MapFrame (MapFrame.htm) TOCFrame (TOCFrame.htm) TextFrame (Text.htm) ModeFrame (ModeFrame.htm) BottomFrame ( Bottom.htm) PostFrame ( jsForm.htm ) HTML Viewer 的框架布局
除了采用默认的框架布局外,也可以只保留其中几个框架。如何确定框架的位置和尺寸完全取决于开发者。除了采用默认的框架布局外,也可以只保留其中几个框架。如何确定框架的位置和尺寸完全取决于开发者。 • 一般的做法是,首先确定网站的框架布局,然后给他们分配必要的空间。 • HTML框架为使用HTML viewer和Java viewer的arcims网站提供了一个基本的骨架。了解HTML框架,有助于理解组成网站的文件之间的关系。
HTML框架是在一个特殊的html文件中定义的,这个文件本身并不包含任何网站内容,它只用来定义一个页面的显示窗口,即把当前浏览器划分为多个窗口,在每个窗口显示一个单独的HTML页面。在arcims中,这个文件是Viewer.htm。HTML框架是在一个特殊的html文件中定义的,这个文件本身并不包含任何网站内容,它只用来定义一个页面的显示窗口,即把当前浏览器划分为多个窗口,在每个窗口显示一个单独的HTML页面。在arcims中,这个文件是Viewer.htm。
6.3.2、定制HTML Viewer 1、对HTML Viewer框架布局的定制(Viewer1) <FRAMESET> <FRAME></FRAME> <FRAMESET> <FRAME></FRAME> <FRAMESET> <FRAME></FRAME> <FRAME></FRAME> </FRAMESET> <FRAME></FRAME> </FRAMESET> <FRAMESET> <FRAME></FRAME> <FRAME></FRAME> </FRAMESET> <FRAME></FRAME> </FRAMESET>
FRAMESET标签中定义的框架集的行数或列数决定了次一级FRAME标签或FRAMSET标签数。FRAMESET标签中定义的框架集的行数或列数决定了次一级FRAME标签或FRAMSET标签数。 • 每个FRAME标签有一个name属性和一个src属性,前者用来表示该框架的名字,后者定义了哪个网页显示在该框架中。
*自定义框架* • 目的:添加一个名为OverviewFrame的框架到Viewer.htm中,用于载入overview.htm • 具体做法:首先准备要载入的overview.htm。打开viewer.htm,添加相关代码。 • 同理,不需要的框架可以在此文件中删除。
6.3.2、定制HTML Viewer 2、对ArcIMSparam.js的定制 • ArcIMSparam.js是用于非框架的HTML Viewer定制时的基本文件。它是一个完全可以被编辑的文本文件,包含了许多决定网站的外观和功能的参数。 • 可以直接或通过动态HTML技术来改变这些变量,以达到定制的效果。
6.3.2、定制HTML Viewer 2、对ArcIMSparam.js的定制 • 浏览器进行一次刷新时,ArcIMSparam.js都被重读一遍,使得最新的修改被现实到浏览器中。 • ArcIMSparam.js包含的变量有:用来调整显示范围的变量,决定工具栏中可用工具的变量、设置颜色的变量和提供一些交互性功能的变量等。
6.3.2、定制HTML Viewer 2、对ArcIMSparam.js的定制(查看该文件) 1)颜色 可使用三种颜色模式:十六进制,RGB或直接用颜色的名字。 ArcIMSparam.js中为那些需要颜色的对象提供了默认的颜色。尽管三种模式之间的转换方法有很多,仍然不能在一个文件中夹杂使用它们。 HTML对象使用是十六进制和颜色名字两种方案,而与制图有关的对象则只能使用RGB模式。一般来说,坚持使用系统默认的颜色模式来改写原来的颜色。
2)定制鹰眼地图服务 • ①删除鹰眼地图 • 在ArcIMSparam.js中,设置变量hasOVmap为false,并设置mapfame.htm的ovIsVisible为false。 • 第一处修改删除了HTML Viewer工具条中鹰眼按钮,并且使客户端对鹰眼的请求失效。第二处修改使创建鹰眼地图的样式层叠表不可见状态。
②移动鹰眼到单独的帧 • 添加一个帧到viewer.htm中, • 修改MapFrame.htm中的相关CSS代码,并同时在其中修改ovIsVisible为TRUE; • 在arcimsparam.js中设置变量var ovMapIsLayer=false; • 打开viewer.htm,为鹰眼图创建一个新的帧。 • 在arcimsparam.js中找到checkParam()函数,修改ovImageVar变量的值。 • 保存所有定制修改,重新打开网站。
3)修改地图的初始化显示范围 • 当首次载入HTML Viewer时,初始化的地图显示范围由ArcIMSParam.js文件中的 • var startLeft = 0; • var startRight = 0; • var startTop =0; • var startBottom =0; • 定义,给这4个变量赋予新的值,可以设置地图显示范围的初始化x,y左边。
4)初始化HTML Viewer时,显示地图图例而不是图层列表 • 图层列表包括地图服务中的每一个图层所对应的名称以及一个复选框和一个单选框。 • 复选框制定图层是否可见,单选框指定图层是否可为当前活动图层。 • 而地图图例则是显示图层和它所对应的图例标志。
在ArcIMSParam.js中设置变量showTOC为false,同时添加变量legendVisible,并在checkParams函数中将其设置为true,如下所示:在ArcIMSParam.js中设置变量showTOC为false,同时添加变量legendVisible,并在checkParams函数中将其设置为true,如下所示: • Function checkParams() • { • legendVisible=true; • ….. • }
变量legendVisible在imsMap.js文件中初始值为false。也可以在该文件中将legendVisible初始值改为true达到相同的效果。变量legendVisible在imsMap.js文件中初始值为false。也可以在该文件中将legendVisible初始值改为true达到相同的效果。
5)设置活动图层 虽然删除图层,移去内容表可以为地图显示腾出更大的空间,并且可以大大地简化终端用户的界面。 但是许多地图操作工具诸如Idetify、Hyperlink等涉及到活动图层,设置活动图层及字段能够影响查询数据库等GIS操作。 因此,灵活处理活动图层的设置问题也是非常重要的。
ArcIMS可以通过图层的索引号来引用图层。在ArcIMSparam.js文件中设置变量ActiveLayerIndex为某一图层的索引号(Index)便可将该图层设置为活动图层。ArcIMS可以通过图层的索引号来引用图层。在ArcIMSparam.js文件中设置变量ActiveLayerIndex为某一图层的索引号(Index)便可将该图层设置为活动图层。 • 图层的对应索引号需通过查询地图配置文件获得。
默认的ActivlayerIndex为99。如果给定的索引号大于已有图层的个数,则第一层将被设置为活动图层。默认的ActivlayerIndex为99。如果给定的索引号大于已有图层的个数,则第一层将被设置为活动图层。 • 在建立查询字段时同样要用到索引号。ArcIMS中要求至少包含#ID#和#SHAPE#这两个字段, #ALL#表示返回图层的所有字段。
在图例中,图层的显示顺序取决于地图配置文件的图层顺序。以下代码可以将索引号为3的图层设置为活动图层:在图例中,图层的显示顺序取决于地图配置文件的图层顺序。以下代码可以将索引号为3的图层设置为活动图层: • Var ActiveLayerIndex=3;
类数据(Generic data)浏览器 • 通过定制,你可以创建一个类数据浏览器来浏览某台特定服务器上的所有地图服务。这一功能在局域网内连接的客户已经知道了地图服务的内容时显得十分有用。要有效地实现这一功能,就需要在ArcIMSparam.js文件中删除那些指定某一单个的地图服务的显示范围的参数,同时还要把一个能够实现类数据功能的JavaScript文件(aimsgeneric.js)拷贝到你的网站目录下来。在MapFrame.htm文件中,你还必须将aimsGenericPresent变量设置为true,从而把通用数据浏览器添加上去。这样,当网站被下载时,并没有显示地图。用户通过使用工具栏上新增加的工具来选择一个想要查看的地图服务后,地图窗口中才显示出地图。
用户选项 • 到目前为止,我们前面介绍的所有的定制,都还是局限于网站程序员对客户所见的网站的外观所做的定制。实际上,客户端用户也可以被赋予定制的权利。例如,通过将ArcIMSparam.js文件中的allowOptions变量的值设为true,用户便可以自己改变地图的背景色、要素的高亮显示颜色和缩放框颜色等。
6.3.4 Java Viewer简介 • 1.Java Viewer概述 • 经过前面的学习可以知道,HTML Viewer适合于快速创建地图的瘦客户端,但是它只适用于影像数据流。 • Java Viewer的优点在于它不仅支持影像数据,也支持要素数据的发布。
Java Viewer和HTML Viewer一样,可以使用JavaScript和HTML来编程定制。 • 不仅可以通过Java标准模板快速的创建标准网站界面,而且可以定制自己的网站。
ArcIMS提供的Java viewer包括:java standard viewer和java custom viewer两种。 • 在Designer工具向导中,可以选择创建HTML网站或JAVA网站,当选了创建java网站时,可以从java standard和java custom 两种模板中选择一种。
Java viewer被认为是一种胖客户端,计划所有地图交互和处理操作都在客户端机器上进行,而不是服务器端机器上进行。 • 当在客户端浏览器打开java viewer时,服务器发送java Applets到客户端,java applets在第一次载入时,需要从服务器上下载,此后,它们将保存在客户端机器上,用户通过这些Applets与服务器交互。
通常,java viewer最适合于内部Internet网使用(内网),在内部Internet网环境中,能够很好的减轻Applets本身的缺陷所带来的困难。 • 这主要是因为在使用java viewer之前,必须安装两个插件:JRE和ArcIMS Java Viewer components。两者都需要在第一次使用时下载安装(或提前安装在客户端)。
另一个需要考虑的因素是使用的网页浏览器,java viewer必须运行在支持java2 applets的网页浏览器上。 • 现阶段,微软的IE支持java2 applets,而Netscape的浏览器则不支持。