cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
阅读:3107回复:10

[求助]关于ims里面的Thematic Map有问题

楼主#
更多 发布于:2004-08-13 14:25
<b>[求助]关于ims里面的Thematic Map有问题
</b>
<P><A><b><!--- Thematic --->Thematic Map </b>
<P><b></b></P></A>


<P>Description:
<p>
<p>
<P>This sample viewer shows thematic rendering of layers and generating statistics on a field.
<p>
<p>
<P>Setup requirements:
<p>
<p>
<P>1.      Create an Image Service named demog from demog.axl </P>
<P>2.      In the browser, type in the URL to your host Web site \htmlviewer directory
(e.g. <a href="http://<arcims/" target="_blank" ><FONT color=#000000>http://<ArcIMS host>/website/htmlviewer). </FONT></A></P>
<P>3.      Click Thematic Map, and try out the Classify Layers tool and Field Statistics tools. </P>
<P>Web site files:
<p>
<p>
<P>The Thematic sample uses the following JavaScript files:
<p>
<p>
<P>·         All the files in the JavaScript Function Files list except, aimsBuffer.js, aimsPrint.js, and aimsSelect.js </P>
<P>·         AimsClassRender.js—functions that perform the classification and rendering of layers and field statistics. </P>
<P>·         AimsClassRenderParam.js—defines layers and fields for the rendering. In this sample, layers and fields are from data found in the provided \Data\SanFrancisco directory. If you experiment with other data layers, you need to update this file with the layers and fields from your data. </P>
<P>·         AimsClassRenderResource.js—text strings for interface. </P>
<P>·         MiniDHTML.js—defines the DHTML needed to position the graphics in the top frame of the custom graphic interface.</P>
<P>我在配了\Data\SanFrancisco里面的图层以后不统计的功能用不了</P>
<P>出现no layers are set up for interative classification 的成为有没人见过</P>
<P>可以顺利调整出来的请教一下做法,</P>
<P>谢谢</P>
喜欢0 评分0
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
1楼#
发布于:2004-08-13 14:31
<P></P>
<P>补图
</P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
2楼#
发布于:2004-08-13 14:32
<P>用过web做专题土的可以在这里讨论一下</P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
3楼#
发布于:2004-08-13 15:25
<P>晕</P><P>原来是demog.axl 配置问题</P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
4楼#
发布于:2004-08-13 18:09
<P>看提示就应该有点明了了,还在这里灌水水</P><P><FONT face=黑体>怎样在ArcIMS 3.1上实现专题图</FONT></P><P 25px" align=left><EM><b> </b></EM>在现实应用中,用户经常会需要用地理数据形成专题图。<FONT face=Arial>ArcIMS</FONT>用户会发现在用<FONT face=Arial>ArcIMS Author</FONT>定制地图服务时,并不能象在<FONT face=Arial>ArcMap</FONT>中那样通过定制图层属性实现专题地图,而是需要通过<FONT face=Arial>ArcIMS</FONT>的客户端的开发接口来实现。下面就以在<FONT face=Arial>ArcIMS</FONT>的<FONT face=Arial>HTML Viewer</FONT>中实现专题图为例阐述这个问题。</P><P 25px" align=left><FONT face=Arial>1</FONT>、<FONT face=Arial>HTML Viewer</FONT>的文件组织结构<img src="http://www.esrichina-bj.cn/library/chinanews/image/new10-19.gif">
通常情况下,用<FONT face=Arial>ArcIMS Designer</FONT>生成地图服务站点以后,会形成上面的目录结构。在虚拟目录的根目录下会有<FONT face=Arial>ArcIMSParam.js</FONT>以及大量的<FONT face=Arial>HTML</FONT>页面。同时还会生成两个子目录:<FONT face=Arial>JavaScript</FONT>和<FONT face=Arial>Images</FONT>。如果要做专题图,还需要手工将<FONT face=Arial>aimsClassRenderParam.js</FONT>放在此根目录下,在<FONT face=Arial>JavaScript</FONT>目录下添加<FONT face=Arial>aimsClassRender.js</FONT>。</P><P 25px" align=left><FONT face=Arial>ArcIMSParam.js</FONT>文件包含大量的配置参数,可以通过调整里面的参数改变<FONT face=Arial>Viewer</FONT>的外观,例如<FONT face=Arial>OverView</FONT>窗口的位置,是否显示层信息,是否显示图例,是否显示指北针,指北针的形状等等。<FONT face=Arial>HTML</FONT>页面包含了页面元素在浏览器中显示的信息。<FONT face=Arial>JavaScript</FONT>目录下是<FONT face=Arial>HTML Viewer</FONT>的<FONT face=Arial>JavaScript</FONT>类库。类库中包含了大量的<FONT face=Arial>JavaScript</FONT>函数,<FONT face=Arial>HTML Viewer</FONT>就是通过这些函数和后台服务器进行交互的。 </P><P 25px" align=left><FONT face=Arial>2</FONT>、 开发步骤
(<FONT face=Arial>1</FONT>)用一种网页开发工具在<FONT face=Arial>Viewer.htm</FONT>中加一个新框架<FONT face=Arial>FieldlistFrame</FONT>。如下图所示:</P><P 25px" align=center><img src="http://www.esrichina-bj.cn/library/chinanews/image/new10-20.gif"></P><P 25px" align=left>在<FONT face=Arial>FieldlistFrame.htm</FONT>中动态加入当前活跃图层的字段名以及几个功能按钮。字段名主要用来选择要做专题图的字段,功能按钮主要用来触发一些特定的功能,如生成饼图,生成直方图,显示图例等。</P><P 25px" align=left>(<FONT face=Arial>2</FONT>)在<FONT face=Arial>Viewer.htm</FONT>中定义<FONT face=Arial>FieldVisible</FONT>数组,并初始化。
<FONT face=Arial>var FieldVisible=new Array(); //define a new array and initialize it.
for (var i=0;i<100;i++)
{
FieldVisible=0;
}
FieldVisible</FONT>保存了哪些字段用来做专题图,这样在刷新地图时字段信息不会被刷新。 </P><P 25px" align=left>(<FONT face=Arial>3</FONT>)设置当前活动层,并更新<FONT face=Arial>FieldlistFrame</FONT>中显示的字段信息。
在<FONT face=Arial>toc.htm</FONT>中,更改<FONT face=Arial>setActiveLayer()</FONT>函数,每次设置完当前活动层后,重新载入<FONT face=Arial>FieldlistFrame</FONT>中的内容
<FONT face=Arial>parent.FieldlistFrame.location.reload(); //refresh the content of FieldlistFrame.</FONT></P><P 25px" align=left>这样,就保证了每次更改当前活动层时,当前字段值也会随着刷新。 </P><P 25px" align=left>(<FONT face=Arial>4</FONT>)在<FONT face=Arial>MapFrame.htm</FONT>中,在适当的位置加入如下两行:
<FONT face=Arial><SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" SRC="javascript/aimsClassRender.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" SRC="aimsClassRenderParam.js"></SCRIPT> </FONT></P><P 25px" align=left>这样,当<FONT face=Arial>MapFrame.htm</FONT>被加入到浏览器中时,上面两个<FONT face=Arial>JavaScript</FONT>文件中的函数就被载入到当前页面中。<FONT face=Arial>AimsClassRender.js</FONT>中定义了一些做专题图时要用到的函数,<FONT face=Arial>aimsClassRenderParam.js</FONT>中定义了一些做专题图时要用到的参数,开发人员可以自己定义所需要的参数。 </P><P 25px" align=left>(<FONT face=Arial>5</FONT>)设置<FONT face=Arial>aimsClassRenderParam.js</FONT>文件。
<FONT face=Arial>AimsClassRenderParam.js</FONT>文件需要用户根据实际情况手工编辑。
这里用的数据是<FONT face=Arial>ArcIMS</FONT>带的教学数据(<FONT face=Arial>d:\Program Files\ESRI\ArcIMS3.1\Samples\Viewers\Data\SanFrancisco</FONT>)。</P><P 25px" align=left>在<FONT face=Arial>aimsClassRenderParam.js</FONT>中存放了一些做专题图时要用到的参数,如图层的名称。 </P><P 25px" align=left>(<FONT face=Arial>6</FONT>)在<FONT face=Arial>aimsClassRender.js</FONT>中加如两个函数:
<FONT face=Arial>function startChart_Bar()</FONT>和<FONT face=Arial>function startChart_Pie()
</FONT>在这两个函数中设置<FONT face=Arial>ClassRenderString[ActiveLayerIndex]</FONT>,使之等于一个<FONT face=Arial>ArcXML</FONT>字符串,这个字符串决定了地图的表现方法(分类,直方图,饼图等等)。然后调用系统提供的函数<FONT face=Arial>sendMapXML()</FONT>就可以向服务器发送<FONT face=Arial>XML</FONT>指令,并在客户端显示查询结果。 </P><P 25px" align=left>(<FONT face=Arial>7</FONT>)最终效果如下: </P><P 25px" align=center><img src="http://www.esrichina-bj.cn/library/chinanews/image/new10-21.gif"></P><P 25px" align=left><FONT face=Arial>3.</FONT>总结:
<FONT face=Arial>HTML Viewer</FONT>通过<FONT face=Arial>sendMapXML()</FONT>函数向空间服务器发出请求,在此过程中会触发<FONT face=Arial>writeXML()</FONT>和<FONT face=Arial>sendToServer()</FONT>函数。开发的关键就是以<FONT face=Arial>writeXML()</FONT>为线索,找出要客户化的地图元素,用程序生成相应的<FONT face=Arial>ArcXML</FONT>代码,然后调用<FONT face=Arial>sendMapXML()</FONT>函数向服务器发请求。返回的<FONT face=Arial>ArcXML</FONT>由<FONT face=Arial>processXML()</FONT>函数处理,用户不用更改此函数,就可以得到查询结果。 </P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
5楼#
发布于:2004-08-13 18:12
<P>ArcIMS中HTML方式中单值图标专题图实现思路</P><P>就象天气预报那样,在每个城市边上放一个图标形象的显示天气状况。在这里只说明一下思路,如果你有相应的编程基础就应该明白是怎么回事了:)</P><P>实现这个专题图的关键是要利用标记VALUEMAPRENDERER和RASTERMARKERSYMBOL,具体的语法参考ArcIMS自带的帮助ArcXML_Guide。</P><P>首先,需要在添加一个全局的boolean变量,以便区分是不是进行这种方式的图层渲染。然后需要构建一个这样的函数(其中有些参数可能需要你自己修改一下)。</P><P>function addThemeLayer(){
 var selString ='<LAYER type="featureclass" name="ThemeMap" visible="true">\n';
 //selString +='<DATASET fromlayer="' + ActiveLayer + '" />\n';
 selString +='<DATASET fromlayer="' + LayerID[aimsThemeLayer] + '" />\n';
 selString +='<VALUEMAPRENDERER RASTERMARKERSYMBOL lookupfield="' + UniqueFieldName + '">\n';
 selString +='  <EXACT value="19" label="19">\n';
// selString +='    <SIMPLEMARKERSYMBOL color="23,188,196" type="cross" width="10" />\n';
 selString +='    <RASTERMARKERSYMBOL shadow="0,0,0" overlap="true" url="http://YourHost/website/TestIt/images/Image1.jpg" image="D:\ArcIMS\Website\TestIt\images/image1.jpg" />\n';
 selString +='  </EXACT>\n';
//以此类推    。。。。
 selString +='</VALUEMAPRENDERER>\n';
 selString +='</LAYER>\n';
 return selString;
}</P><P>然后呢,把这个函数在aimsXML.js的WriteXML的合适位置引用,把生成的字符串一并传送到服务器。</P><P>其他就要做一些界面上参数设置和刷新地图的东东,就可以实现图标单值专题图了。</P>
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
6楼#
发布于:2004-08-13 19:17
<P>这个我看了</P><P>不过他最重要的的地方是函数是要自己写的</P><P>所以出了知道可以实现别的没什么用的 </P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
7楼#
发布于:2004-08-13 19:21
<P>esri-User Forums 上大多数的人是用改写alx 来实现的</P><P>不知道有没更加智能的方法,</P><P>arcims-sever可以用于的mxd的发布还没用过,</P><P>下个星期继续看看</P><P>最近在esri-User Forums 上看eng,很吃力哦</P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29655枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
8楼#
发布于:2004-08-13 19:32
<P>收到风-星期天还要加班</P><P>闷哦</P>
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
9楼#
发布于:2004-08-14 08:01
<P>哈哈,今天周六,偶也还在工作了,明天日终于可以休息啦。发布mxd我想只是方便了arcgis的数据直接发布到网上,函数还是要写写滴。发布后的例子里的脚本里有相关的函数,可以打开看看了,应该有点用。</P>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部