分享
 
 
 

arcims开发经验总结(4) (arcIMS 客户端 连接器的选择)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

客户端选择。

就IMS来说提供了 HTML Viewer Java Standard Viewer Java Custom Viewer

Java Standard Viewer,Java Custom Viewer功能差不多。 对于程序员、中国客户来说。Java

Standard Viewer基本不用。典型的胖客户端,Image 和Feature MapServices 都要下载APPLET,客户端还要装jre。随着微软IE对applet的抵制 和 Arcgis Server(远程数据分析,Feature MapServices的替代)成熟,估计这种胖客户端没什么大用了,至少我觉得在中国是这样的。就我接触的webgis项目中,applet的应用不是很多,政府部门更是因为安全性,很少用。(http://www.668map.com/)用applet,但是假如我们对于大数据量的gis应用,有还多业务查询、分析。估计把数据放到缓冲中的做法就悬了。还有假如我要加遥感应用,数据量大的更是可怕。 我个人对Java Viewer前景不是看好。

HTML Viewer:DHTML和JavaScript 实现。随着web程序的流行,dhtml,javascript,css的成熟(对不同浏览器有统一标准就完美了,不过客户端IE就现在还是老大)。arcgis server的客户端也是html view(没办法.net,j2ee还是以浏览器为主要客户端的)。另外html是如此的轻便,页面是可以如此的漂亮,扩展,维护也不用编译什么的。虽然不支持Feature MapService,但Feature MapService的应用可以由arcgis server实现。

连接器选择。

.NET Link 、ActiveX 、AppServerLink 、ColdFusion 、General、Java 、Servlet 、WMS

思想就是把ArcXML封装了,再向ArcIMS发送请求,客户端展示。下面以arcIMS提供了例子探讨一下Servlet Connector ,javaconnector。请自行配置htmlview和javasconnector的例子。

Servlet Connector:修改viewer.htm,使jsForm.htm 可以在页面中看到。(<FRAMESET ROWS="30,*,30,50"—)

jsForm.htm加载地图前代码

......

function passXML() {

}

......

加载地图后代码

......

function passXML() {

var XMLResponse='<?xml version="1.0" encoding="UTF-8"?><ARCXML

version="1.1"><RESPONSE><IMAGE><ENVELOPE minx="116.325273231549" miny="39.9126536248245"

maxx="116.741417757427" maxy="40.08" /><OUTPUT url="http://zhangkj:8080/Output/txzy_ZHANGKJ188425841.jpg" /></IMAGE></RESPONSE></ARCXML>';

parent.MapFrame.processXML(XMLResponse);

}

........

在aimsXML.js中看函数function htmlSendToServer(URLString,XMLRequest,theType)和function

processXML(theReplyIn) 一目了然了,htmlSendToServer把我们组合的arcXML发送到com.esri.esrimap.Esrimap?ServiceName,返回的XMLResponse由processXML显示出来。

核心代码就这些,你在javascript文件夹中的大部分js文件是 组合请求的arcXML字符串 和 解析从arcIMS返回的arcXML字符串。其他js文件是DHTML,参数,公有函数等。看上去挺吓人的。我个人觉得htmlview例子里的js代码可重用性很高。但必须很熟悉这些代码,函数。和其他连接器比较,htmlview可以说是最简单的了。 熟悉html,熟悉javascript,有arcXML文档,这就够了。

剩下的是用 javascript构造不同的arcXML,请求arcIms, 用dhtml,javascript显示返回arcXML.

(大家可以看一下jspForm.jsp,用com.esri.aims.mtier.io.ConnectionProxy类来请求IMS服务。和上面的流程差不多。http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.gateway&p=16&pf=217上面讲的都不错,从更深的角度讲了各个连接)

javaconnector:把arcXML文档用java对象封装起来。组合arcXML的工作由纯面向对象的java语言来做,

com.esri.aims.mtier.io.ConnectionProxy对象请求ims服务器,返回java对象的响应。servlet connector 是字符串,而java connector是java对象。这样java语言的优势,java对象的可操作性,易用性,方便性就显露出来拉。javaconnector对arcIMS服务动态增加等。

Map map=new Map();

map.initMap(mapCon,750,false,false,false,false);

map.setHeight(500);

map.setWidth(400);

map.refresh();

String url=map.getMapOutput().getURL();

Map对象封装ArcXML,map.refresh() 请求IMS服务。 请求完了Map对象包括响应的内容。(其实map.initMap也触发了一次请求 GET_SERVERINFO。javaconnector的类库设计的有问题。)

servlet connector 和 javaconnector比较

一、性能

servlet connector: 用户下载javascript文件。组合arcXML在客户端执行。如果用户机器不是太慢的话,性能应该是最好的,服务器压力也小。据说ims 群集安装,系统配置的好的话,可以支持几百万用户。

javaconnector:比不上servlet connector。1、java对象的封装,在服务器端运行。(不过可忽略)2、Map对象建立的性能损耗。map.initMap(),map.refresh()都要触发请求ims。操作一次地图 新建一个map对

象的做法是不可能的。有两个解决 把map对象放到Session中 和 map对象池。 把map对象放到Session,用户多的时候,web服务器压力很大,多用户时不可行。 map对象池 ,map对象的 钝化,激活(EJB的提法)操作复杂。因为不同用户当前操作状态不一样(在arcgis9 server中,状态保存是个值得研究的地方)。 运用javaconnector 性能问题得考虑。 (个人觉得javaconnector类库建立的有问题,用反编译工具看,代码设计有改进的地方,可以解决map对象初始化问题)。

二、功能:

servlet connector: arcXML的所有功能。 问题在 组合arcXML和显示响应的arcXML的环节上。 因为这些用javascript实现。有一定局限性。 比如,我要把 响应arcXML 的查询结果排序。实现起来费事。(arcXML查询不支持order by ).不可以对ims服务操作。

javaconnector:arcXML的所有功能。可以用java语言的优势处理很多问题。比如前面排序。动态图层、与遥感影象图的叠加实现起来都比较方便。还可以结合arcSDE的java接口处理原数据。

待续.....

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有