首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> GIS 专区 -> 文章内容 退出登录 用户管理
栏目导航
· VC++专区 · V B 专区
· GIS 专区 · PDA 专区
· 其他编程 · 网站开发类
· 数据库类 · 软件应用
· 网络安全 · 论文专区
· 综合资讯
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· Mapbasic参考手册索...
· MapX应用开发中文讲...
相关文章
· ArcGIS在菜单中调用...
· [图文] Server Java开发--B...
· ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· [图文] ArcGIS Server Java...
· ArcGIS Server Java...
· ArcGIS Server Java...
· [图文] ArcGIS Server Java...
· ArcGIS Server Java...
ArcGIS Server Java讲座----利用Ajax得到当前地图的比例尺(服务器端)
作者:不详  来源:vscodes.com整理  发布时间:2007-6-26 17:26:52  发布人:Polaris

减小字体 增大字体

现在我们进入实战阶段,看看我们怎么可以在服务器端得到当前地图的范围,这个代码中你将学到如何从faces Context里面得到当前form中的控件,以及如何利用ESRI提高的工具,简化我们响应AJAX请求的过程:


UIComponent form = facesContext.getViewRoot().findComponent((String) paramMap.get(FORMID));
首先我们得到页面上的form,form是一个container,通过它我们可以得到form中的其它组件,比如我们的地图控件:





<a:map id="Map0" value="#{mapContext.webMap}" width="600" height="600"  />  


我们可以用下面的方法得到这个MapcontrolWebMap


    MapControl mc = (MapControl) form.findComponent((String) paramMap.get(MAPID));
  WebMap wm = mc.getWebMap();



得到了这个WebMap,哈哈,可以得到Everything了,因为你可以从WebMap中得到WebContext。这个时候,想得到那个比例尺,是再简单也不过的事情了,用下面的代码即可:


wm.getMapScale();


得到了比例尺了,接下去怎么办呢?把它返回到客户端,我们的Ajax客户端认的是XML的流,咋办呢?最笨的办法当然是是一个一个String的组装成XML,然后调用ResponseWrite写回到客户端,比如下面的代码:


public String toXml() {
    StringBuffer xml = new StringBuffer();
    xml.append("<?xml version=\"1.0\"?>\n");
    xml.append(“<scale>”);
    xml.append(“<value>100</value>”);
   xml.append("</scale>\n");
    return xml.toString();
  }


生成了XML代码,然后用下面的代码把结果返回给客户端:


Response res=(Response)externalContext.getResponse();
res.setContentType("application/xml");
res.getWriter().write(scaleXml);


当然,各位看官想来都是JAVA高手,对于这样的写法实在感觉不舒服,正待想办法用标准的XML工具来写时,你会发现,ESRI已经为您想到了,写好了几个工具类来供你调用了。我们来看看怎么用这些工具:
用下面的代码创建一个标准的XML文档:


Document doc = XMLUtil.newDocument();


用下面的代码新建一个element


Element responseElement = XMLUtil.createElement(doc, "response", null, null);


用下面的代码将我们的比例尺数据写到刚才新建的Element里面:


XMLUtil.createElement("scale", String.valueOf(wm.getMapScale()), responseElement);


然后用下面的语句将XML文档写入到客户端:


AJAXUtil.writeResponse(facesContext, doc);


很可惜的是,ESRI这些类的代码是不公开的,不过你可以猜一猜,这些方法里面到底发生了什么事情。
OK,皮球又被提到了客户端了,我们下一个讲座来看看,如何解析服务器端返回的XML文档,并且更新页面上的输入框。

End of《ArcGIS Server Java讲座----利用Ajax得到当前地图的比例尺(服务器端)》

[] [返回上一页] [打 印] [收 藏]
 
∷相关“ArcGIS Server Java讲座----利用Ajax得到当前地图的比例尺(服务器端)”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.