ArcIMS学习之 定制HTML VIEWER笔记

HTMLViewer 支持Delphi 6 - XE6 ThtmlViewer可以显示无框架的HTML文档 TFrameViewer既可以显示HTML文档也可以显示包含框架的HTML文档 TFrameBrower主要面向互联网样式协议,URL协议 支持Delphi 6- XE6 安装需要:TntUnicodeControls 可以从这个网址下载: http://www.yunqa.de/delphi/doku.php/products/tntunicodecontrols/index HTML Viewer Components for Delphi, Lazarus and C++Builder The HtmlViewer component set consists of the THtmlViewer, TFrameViewer, and TFrameBrowser components. All three are HTML document display components: THtmlViewer * The basic component. * THtmlViewer displays single (non-frame) documents. * It also forms the basis for the other two components. TFrameViewer * Displays both frame and single HTML documents. * TFrameViewer is oriented more for local file system use. TFrameBrowser * Also displays frame and single HTML documents. * TFrameBrower is oriented for use with local file systems and toward Internet style protocols and URL usage. * Additional code and/or components are generally required to get data from other sources than the local file system. These components support most of the HTML 3.2 specifications with many additional popular HTML 4 and 5 enhancements. Many Cascading Style Sheet properties are also supported. 立即下载

一、HTML VIEWER简介:
 1。默认的HTML VIEWER由一组HTML页和JS文件(JavaScript)组成,这些HTML页和JS文件由ArcIMS Designer定制生成。
 2。对于HTML Viewer,我们所做的功能扩展可以包括:

  * 改变框架布局
  * 修改工具条
  * 增加自己的功能
  * 改变图形外观
  * 插入自己的图标
 3。ArcIMS Designer定制的网站默认在Web容器的home目录的/default-web-app/Website 目录下

二、HTML Viewer文件结构:
 1。由一组HTML文件,一个参数文件ArcIMSparam.js及两个目录--JavaScript和images组成。

站点目录
    |
    | HTML Pages
    | ArcIMSparam.js
    |
    |---- JavaScript目录//包含JavaScript函数库,定义了用户可操作的地图功能,包括了HTML Viewer的大部分操作 。
    |    //可以通过定制这些JavaScript程序为自己的工具按扭增加功能。如热连接等。
    |---- images 目录 //包含用于页面上按钮,图标及标记的显示。当新建站点时,可以用自己的标志代替这些原有的影像


 2。ArcIMSparam.js与HTML Pages
 HTML Viewer的一个重要的参数文件是位于站点目录下的ArcIMSparam.js文件。这个文件包含了一组影响站点外观和工作方式的JavaScript变量。对HTML Viewer大部分的定制都可以通过改变这些变量 的值来完成。ArcIMSparam.js包含的主要变量可以用来

 * 改变所用的地图服务和地图范围
 * 设置图例的初始化显示
 * 定义acetate层的指北针,版权文字
 * 定义属性字段的显示
 * 改变工具和工具条

 HTML Viewer默认入口是Default.htm。它的处理了四个任务
  1>创建页面标题,
  2>确定所用的浏览器类型,
  3>建立URL解析规则
  4>生成用于定义页面布局框架的viewer.htm文件。

 Viewer.htm定义了HTML Viewer的结构,而不是内容,他将浏览器划分为多个区域。每个区域通过HTML文件获得内容。其他的HTML文件则为框架添加内容。

一般关系如下:
先装入MapFrame.html于MapFrame中,再由MapFrame打开TocFrame其中装入toc.htm,所以在toc.htm用MapFrame的内容时,
 var t;
 if(opener){
 t=opener.parent.MapFrame;
 }else{
 t=parent.MapFrame;
 }
因为,MapFrame.html包含了aimsCustom.js、aimsXML.js、ArcIMSparam.js,因而将添加的函数放入aimsCustom.js(包括构造发送XML的函数和处理XML的函数useCustomFunction)后在各自框架中调用MapFrame中新加的函数!

以添加定位功能为例,一般是在aimsCustom.js中加入函数,如function addressLocation(x,y,name)
其中先保存上一幅地图的范围,再调用sendMapXML()获得新地图

发送request
saveLastExtent()

Arguments:
None

Returned Value:
None

Description:
Function that saves the last map extent.

Uses: eLeft, eRight, eTop, and eBottom.

Called by: displayAttributeData in aimsIDentify.js; fullExtent, startExtent, zoomToPoint,
zoomToEnvelope, zoomScale, zoomButton, and panButton in aimsMap.js;
ovMapClick, zoomin, zoomout, stopZoomBox, stopZoomOutBox, stopPan, and pan in
aimsNavigation.js; and showHighlight in aimsSelect.js.
Sets: lastLeft, lastRight, lastTop, and lastBottom.

File:
aimsMap.js
Syntax:


sendMapXML()
Arguments:
None
Returned Value:
None

Description:
Sends an ArcXML request to obtain a new map image to the MapServer.

会用到的变量为: debugOn and imsURL.

Calls: beforeMapRefresh and showRetrieveMap in aimsMap.js and writeXML and sendToServer in
aimsXML.js.

Called by: bufferIt in aimsBuffer.js; clickFunction in aimsClick.js; processStartExtent in
aimsCommon.js; parseGeocodeResults in aimsGeocode; displayAttributeData in
aimsIDentify.js; fullExtent, startExtent, zoomBack, zoomToPoint, zoomToEnvelope,
zoomScale, zoomButton, and panButton in aimsMap.js; ovMapClick, zoomin, zoomout,
stopZoomBox, stopZoomOutBox, stopPan, and pan in aimsNavigation.js; showHighlight
in aimsSelect.js; and process XML in aimsXML.js.

在aimsXML.js文件中的sendMapXML()函数内容为:

function sendMapXML() {

 beforeMapRefresh();
 showRetrieveMap();
 var theText = writeXML();
 if (debugOn==2) alert(msgList[12] + theText);
 
 sendToServer(imsURL,theText,1);

}

其中:writeXML()写出对新地图的request XML,要修改就对writeXML()进行修改

writeXML()

Arguments:
None

Returned Value:
String ArcXML request string to be sent to the ImageServer.

Description:
Writes an ArcXML request for a new map image. This is the default request sent for a main map display image.

用到的变量为: eLeft, eRight, eTop, eBottom, iHeight, iWidth, aimsLayersPresent, toggleVisible, layerCount,
aimsClassRenderPresent, mapBackColor, aimsLegendPresent, legendVisible, aimsBufferPresent,
showBuffer, aimsSelectPresent, showGeocode, geocodeX, geocodeY, geocodePointColor,
geocodePointSize, geocodeLabel, aimsClickPresent, clickCount, selectColor, clickType,
clickMarkerColor, clickMarkerType, clickMarkerSize, aimsCustomPresent, drawCopyright,
CopyrightCoords, CopyrightText, CopyrightStyle, CopyrightSize, CopyrightFont, CopyrightColor,
CopyrightBackground, CopyrightBGColor, CopyrightGlow, CopyrightGlowColor, drawNorthArrow,
NorthArrowType, NorthArrowSize, NorthArrowCoords, NorthArrowAngle, drawScaleBar,
ScaleBarbackColor, ScaleBarFont, ScaleBarStyle, ScaleBarColor, MapUnits, scalebarFontColor,
ScaleBarUnits, ScaleBarPrecision, ScaleBarSize, ScaleBarWidth, drawModeOnMap, modeBlurb,
modeMapColor, and modeMapGlow and LayerVisible, LayerID, clickPointX, and clickPointY arrays.
Calls: addSpecialRenderToMap in aimsClassRender.js (custom sample); addBufferToMap in aimsBuffer.js;
addLegendToMap in aimsLegend.js; addCustomToMap1, addCustomToMap2, addCustomToMap3,
and addCustomToMap4 in aimsCustom.js; addSelectToMap in aimsSelect.js; and getScaleBarDistance
in aimsMap.js.

Called by: clickAddPoint, resetClick, and deleteClick in aimsClick.js; getLegend in
aimsLegend.js; getPrintMap in aimsPrint.js; clearSelection in aimsSelect.js; and
sendMapXML and justGetMap in aimsXML.js.

File:
aimsXML.js

其中sendMapXML()函数最后调用:

sendToServer(URLString,XMLRequest,theType)

Arguments:
URLString -- String containing service URL for request.
XMLRequest -- String containing ArcXML request.
theType -- Numeric representing mode number to be passed to XMLMode. Used by processXML in passing ArcXML response to appropriate function for processing.

Returned Value:
None

Description:
Used to pass ArcXML requests on to the server(s). This function updates the form in the PostFrame page
(jsForm.htm) with the current request and processing function name.

Calls: showRetrieveMap, hideRetrieveMap, and hideRetrieveData in aimsMap.js.
Called by: functions sending ArcXML requests to the server(s).

File:
aimsXML.js


////////////////////////////////////////////////////////////////////////
// aimsCustom.js
// 缺省生成的aimsCustom.js是添加用于定制函数的模版
////////////////////////////////////////////////////////////////////////
//***************************************地址匹配函数******************************************
/*
 *    函数名       addressLocation     
 *    描  述       在地图上显示地址匹配坐标点          
 *   参数说明      x,y:地址匹配坐标点的地图坐标
 *                 name :地址匹配点的地图标识   
 *   返回结果      无    
 *   使用的公共变量 limitRight limitLeft limitTop limitBottom selectPointMargin
 *   
 *   aimsMap.js中的
 *   eLeft (Numeric/Dynamic) Current extent left (minimum x-coordinate).
 *      Formerly called left.
 *   eRight (Numeric/Dynamic) Current extent right (maximum x-coordinate).
 *      Formerly called right.
 *   eTop (Numeric/Dynamic) Current extent top (maximum y-coordinate).
 *      Formerly called top.
 *   eBottom (Numeric/Dynamic) Current extent bottom (minimum y-coordinate).
 *      Formerly called bottom.
 *   showGeocode (Boolean/Dynamic) If true, map request will include
 *      command to draw point at geocodeX, geocodeY
 *      with an optional label. Updated by viewer on
 *      response of address match request or
 *      zoomToPoint() function.
 *   geocodeX (Numeric/Dynamic) Geocode point x-coordinate. Updated by
 *      viewer on address match response or
 *      by zoomToPoint().
 *   geocodeY (Numeric/Dynamic) Geocode point y-coordinate. Updated by
 *      viewer on address match response or
 *      by zoomToPoint().
 *   调   用       sendMapXML(aimsXML.js)     
 *   被调用             
*/
function addressLocation(x,y,name){
 legendVisible=false;
 hasTOC=false;

 var mWMargin = 0;
 var mHMargin = 0;
 mWMargin = Math.abs(limitRight-limitLeft) * (selectPointMargin/10);
 mHMargin = Math.abs(limitTop-limitBottom) * (selectPointMargin/10);
 saveLastExtent();
 eLeft = parseFloat(x) - parseFloat(mWMargin);
 eRight = parseFloat(x) + parseFloat(mWMargin);
 eTop = parseFloat(y) + parseFloat(mHMargin);
 eBottom = parseFloat(y) - parseFloat(mHMargin);
 showGeocode=true;
 geocodeX=x;
 geocodeY=y;
 geocodeLabel=name;
 sendMapXML();
}
/*****************************************************************************
 * aimsXML.js
 * send the created xml request to map server
 */
function sendMapXML() {
 // ask for the Main map
 //window.onerror=clearError;
 beforeMapRefresh();
 //window.onerror=resetError;
 showRetrieveMap();

 var theText = writeXML();

 if (debugOn==2) alert(msgList[12] + theText);
 //alert(theText);
 //hasTOC=false;
 sendToServer(imsURL,theText,1);
}
/*****************************************************************************
 *function writeXML()


接收response


processXML(theReplyIn)

Arguments:
theReplyIn--String containing returned ArcXML response.

Returned Value:
None

Description:
Passes the ArcXML response to the appropriate function for processing. The key global is XMLMode,which determines which function to call,即设定XMLMode就可以决定processXML(theReplyIn)调用哪个分析response XML的函数。

Calls: appropriate function to parse ArcXML response.

Called by: passXML in dynamic connector-created page in PostFrame on loading.

File:
aimsXML.js

 全局变量XMLMode的值<1000,由processXML(theReplyIn)调用其默认函数,>1000即用户自定义时,processXML(theReplyIn)调用useCustomFunction()函数。全局变量XMLMode在aimsXML.js中定义(见Customizing ArcIMS: HTML Viewer第308<315>页)。


useCustomFunction(theReply)

Arguments:
theReply String containing returned ArcXML response.

Returned Value:
None

Description:
Available for custom processing of returned ArcXML responses. The function processXML will call this function if the value of the global XMLMode is 1,000 or greater.

Uses: XMLMode.

Calls: hideLayer in aimsDHTML.js.

Called by: processXML in aimsXML.js.

File:
aimsCustom.js

HTMLViewer V1.50 HTMLViewer HTMLViewer HTMLViewer HTMLViewer HTMLViewer 立即下载

相关推荐

HTMLViewer 网页制作工具

HTMLViewer 网页制作工具 破解版

【亲测免费】 HtmlViewer:一款强大的HTML文档显示组件

HtmlViewer:一款强大的HTML文档显示组件 项目介绍 HtmlViewer 是一款开源的HTML文档显示组件,它允许开发者在应用程序中嵌入和显示HTML文档,而无需依赖浏览器。当前版本为HtmlViewer 11.10,它由THtmlViewer、TFrameViewer和TFrameBrowser三个主要组件构成,支持大部分HTML 4.01规范以及许多HTML 5的新特性。 项目技术...

gitblog_00910的博客 1077

HTMLViewer.exe

页面分析器,分析页面代码。支持属性、框架、图像、html、flash、链接、CSS、脚本、表单等分析。

创建一个简单的HTML Viewer应用程序

使用wxPython和内嵌浏览器来创建一个简单的HTML Viewer应用程序。在本篇文章中,我们将使用Python和wxPython模块来创建一个简单的HTML Viewer应用程序。这个应用程序可以让用户输入HTML内容,并在内嵌浏览器中显示该内容的效果。

Winfredzhang的博客 2471

HTMLViewer

HTMLViewer.rar网页浏览辅助工具

HtmlViewer_htmlviewer_

The HtmlViewer component set consists of the THtmlViewer TFrameViewerand TFrameBrowser components

直接生成前端页面(html)——网址大全

1.bootstrap 提供的一套前端自动在线代码生成器,对于不在乎前端页面的项目算是“神器”了 https://www.layoutit.com/build

仲羊的博客 2万+

Zabbix-01简单导入MIB文件并测试

这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M

lokibaba的博客 9180

在线html查看器官网,网络html查看器

xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" >android:id="@+id/et...

weixin_34711121的博客 774

torchsparse安装

torchsparse安装以及安装失败原因分析和解决

AI_BING_的博客 1万+

Ubuntu 22.04下Colmap带CUDA支持的编译安装全攻略(附显卡架构查询指南)

本文详细指导在Ubuntu 22.04系统上从源码编译安装支持CUDA加速的Colmap,解决了官方版本无GPU支持导致处理速度慢的问题。重点包括环境依赖准备、CUDA工具链配置、显卡计算能力查询以及完整的编译安装步骤,旨在帮助研究者和开发者高效部署高性能三维重建工具。

gold8的专栏 345

ArcIMS学习之 HTML Viewer定制笔记 (答疑)

re:小小鸟 发表于2006-01-19 12:10 PM  IP: 218.106.166.*黄兄,你好!! 我是刚开始用arcims的新手,很感谢你的文章给我带来的帮助。我目前正在研究arcims html viewer的运作机制,但是在第一次加载地图中,跟着代码一步步走,我觉得在第一个 htmlSendToServer(URLString,XMLRequest,theType)就断了

黄为的专栏 1513

Frida+Objection保姆级教程:从环境搭建到实战Hook(含Wallbreaker插件使用)

本文提供了一份从零开始的Frida与Objection移动安全动态分析实战指南。详细讲解了Python环境配置、Frida-Server部署、Objection核心命令使用以及Wallbreaker插件安装与应用。通过实战案例演示如何Hook网络请求(如HttpURLConnection和OkHttp3),帮助安全研究人员快速掌握应用运行时行为分析与漏洞挖掘技能。

weixin_28318011的博客 105

ArcIMS学习之 HTML Viewer定制笔记 续一(1.概要&流程)

1.当使用ArcIMS Designer创建一个Web Site后,就会自动生成此网站的HTML Viewer,ArcIMS Designer生成网站的地点就在Posr Installation定义的 Website directory问题是可不可以把 JSP应用服务器 和 ArcIMS Server 分别放在两台服务器上?2.选择HTML Viewer的理由是,用户不需要自己给地图添加数据,而且

黄为的专栏 2092

【目标检测】基于yolov5的铝型材表面缺陷检测(附代码和数据集,Ubuntu或者Linux系统均可运行)

【目标检测】基于yolov5的铝型材表面缺陷检测(附代码和数据集,Ubuntu或者Linux系统均可运行)

学无止境、积少成多、厚积薄发 2170

Python爬虫经典案例第67篇:社交媒体平台爬取:Twitter数据采集实战

Twitter(现更名为X)是全球最具影响力的社交媒体平台之一,拥有超过3.3亿月度活跃用户。作为一个实时信息传播平台,Twitter上的数据涵盖了新闻、政治、娱乐、科技等各个领域,具有极高的研究价值:本文将深入探讨Twitter数据采集的技术方案,包括官方API调用、网页爬取和浏览器自动化三种方式。Twitter采用现代化的微服务架构,主要特点包括:Twitter作为全球最大的社交媒体平台,拥有完善的反爬机制:在开始爬取前,需要明确合法的数据采集方式:重要提示:未经授权爬取Twitter数据可能违反服务条

2201_76125261的博客 659

ArcIMS学习之 HTML Viewer定制笔记 续四(4.动态效果DHTML)

一、CSS基础:Html:    left:20px;top:20px;    position:absolute;    visibility:visible;    z-index:0">Javascript: document.getElementById("xxx").style.visibility="hidden";参数说明:    将其包括的其他HTML元素或文本应用到指定的样式规则

黄为的专栏 1469

使用 Simulink 和 Simscape Electrical 工具箱设计一个 Buck 转换器系统

Buck 转换器(降压转换器)是一种常用的 DC-DC 转换器,用于将较高的输入电压转换为较低的输出电压。为了评估其抗干扰能力,我们可以在模型中引入不同的干扰源,并观察系统的响应情况。电网电压波动:输入电压的变化。负载突变:负载电阻或电感的变化。电磁干扰:高频噪声或脉冲干扰。通过模拟这些干扰,我们可以分析系统的动态响应特性,并采取相应的措施来提高系统的抗干扰能力。

xiaoheshang_123的博客 378

ArcIMS学习之 HTML Viewer定制笔记 续三(3.请求&响应)

请求一、最基本函数: sendToServer --> htmlSendToServer 提交表单 PostForm(aimsXML.js) 参数:  URLString   XMLRequest Request ArcXML  theType  XMLMode的值,默认为1,GET_IMAGEsendToServer将 theType 赋给XMLMode,然后调用htmlSendToServer

黄为的专栏 1899

C#面试题及详细答案120道(01-10)-- 基础语法与数据类型

C#与.NET部分重点解析了7个核心问题:1)C#与.NET的依存关系;2)值类型与引用类型的内存差异;3)装箱拆箱的性能损耗;4)string/String与int/Int32的实质等价性;5)const与readonly的初始化区别;6)可空类型的应用场景;7)ref与out关键字的参数传递机制。内容包含原理对比、代码示例和优化建议,适合开发者系统掌握C#核心概念。(1

大剑师兰特的GIS世界 1964

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ArcIMS学习之 HTML Viewer定制笔记 续五(5.Javascript纪要)

1.另一个Frame中的JavaScript变量: var 可在其他框架中使用:  Frame名.变量名 来调用2.中  -- Table Row  -- Table Data3.元素   4.DOM 模型        + forms[]         | images[]      + frames [] -- document  -| anchors[]        | document

黄为的专栏 1925

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ArcIMS学习之 HTML Viewer定制笔记 续二(2.Servlet与请求响应过程)

4. Servlet Connector的入口Servlet: com.esri.esrimap.Esrimap 参数ServiceName  ArcIMS 服务名ClientVersion  ArcIMS 版本号Form    true请求来自HTML的FormEncode  * 请求重定向 CustomService 参数原因: 影像虚拟服务(Image MapService) 不提供"属性信

黄为的专栏 2067

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

arcims 讲座四:ArcIMS(HTML Viewer)定制开发探讨

(以水情监测信息系统原型开发为例) 一、ArcIMS体系结构简介 ArcIMS(Internet Map Server)是ESRI最新推出的第二代互联网上地理信息系统平台,其结构经过特别设计用来满足在Internet上提供地理数据和服务的需要。 多层结构 ArcIMS 的多层结构由展示层(presentation Tier),逻辑事务层(Business Logic Tier)和数据存储层(Da...

weixin_30791095的博客 93
上一篇: James的安装与使用
下一篇: ArcIMS学习之 HTML Viewer定制笔记 续一(1.概要&流程)
pardxa
博客等级 码龄23年 25粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值