今天我们来讨论几个没有太大关联的内容,如果在这几个问题方面有人有自己独特的见解,或已经知道了这方面的技术,那么还请您在评论中提出来,供大家探讨,下面我们就来探讨一下吧。
一、这几天忙着测试和修改GIS系统,发现了一些Bug的同时也有了新的需求,不仅改变了界面风格和布局而且代码也少有变化,地图变化最大,需要加入栅格图(太可怕了,一幅栅格图竟然有1.3G),如何加载呢?因为这次的GIS系统是B/S结构的,而且功能也不小,除了栅格图外还有很多层的矢量图,并且提供图层数据和数据库数据的互查功能,所以非常担心加载和显示栅格图时会非常的慢,或者造成服务器死机,但是今天发现过去好像有些“杞人忧天”,栅格图加载和显示还是可以成功的。具体内容如下:
1、想了解栅格图是否能加载,需要了解ArcIMS的工作原理,这方面的知识我们在本系列随笔的前几篇随笔中也有讨论过,下面再简单说明一下:Ma et控件是解读ArcIMS回传得ArcXML文档,并通过虚拟路径来加载ArcIMS根据请求所产生的图片。ArcIMS图形服务可以产生的图片类型有*.JPG、*.JPEG、*. G-8bit、*. G-24bit、*.GIF(需要特殊的序列号或注册文件)。
2、也正是因为有这种工作原理,虽然栅格图的整幅图文件很大,但是ArcIMS会否将自身来处理生成的图片文件大小,并不会产生一个上G的图片文件在B/S程序和网络中传送呢。经过本人的试验证明ArcIMS确实控制了传送文件的大小,再加入了栅格图后,图片文件并没有想象的大,所以也就不用去切割栅格图文件了,这使本人很高兴。(<!--此处写有栅格图的图片文件的大小,最小和最大文件大小-->,图片大小仅供参考)
二、还有一个问题是Ma et控件的问题,Ma et控件有一个去获得图层数据的函数myIL.Recordset(myISQ2, true, false, myIGF),但是此函数最多加载的数据为2000条,最后生成数据集DataSet,那么这就意味着此DataSet的第0张表最多有2000条数据,但是Ma et控件又给我们提供了一个对象的属性myISQ2.Where,来查询所需要的图层上某个或某些元素,这个属性中可以使用Sql语句,下面是有关的代码片断:
using ystem;
2
using ystem.Collectio
3
using ystem.ComponentModel;
4
using ystem.Data;
5
using ystem.Drawing;
6
using ystem.We
7
using ystem.Web.Se io tate;
8
using ystem.Web.UI;
9
using ystem.Web.UI.WebControl
10
using ystem.Web.UI.HtmlControl
11
using GongA ys.Cla
12
using tudioAT.IM
13
using tudioAT;
14
using ystem.Xml;
15
16
&helli helli
17
18
rivate void Ma et1_Load(object ender, ystem.EventArg e)
19
< an style="COLOR: #000000">{
20
IMa et myIMa et = Ma et1;
21
ICollectionLayer myICL = myIMa et.CollectionLayer
22
IGetFeature myIGF = ull;
23
ISimpleMarkerSymbol myISM = ew impleMarkerSymbolProperty();
24
IMa etAcetateObject myIMNAO = (IMa etAcetateObjects)myIMa et;
25
myIMNAO.Clear();
26
IObjectAcetateLayer myIOAL;
27
IPoint myIP1;
28
try
29
< an style="COLOR: #000000">{
30
ILayer myIL = (ILayer)myICL.FindById (Se ion["LayerID"].ToString());
31
I atialQuery2 myISQ2 = ew atialQuery();
32
tring Colum ame = quot;GIS_ID"
33
myISQ2.Where = Colum ame + quot = '" + e ion["GIS_ID"].ToString() + quot;'"
34
DataSet d = myIL.Recordset(myISQ2, true, false, myIGF);//根据图层读取数据
35
int dscount = ds.Tables[0].Rows.Count;
36
&helli helli
37
} an>
38
catch
39
< an style="COLOR: #000000">{
40
&helli helli
41
} an>
42
} an>
43
44
&helli helli
45
46
相关文章
[错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]
RSS订阅
已有