|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。明天我们来会商几个没有太年夜联系关系的内容,假如在这几个成绩方面有人有本人共同的看法,或已晓得了这方面的手艺,那末还请您在批评中提出来,供人人切磋,上面我们就来切磋一下吧。
1、这几天忙着测试和修正GIS体系,发明了一些Bug的同时也有了新的需求,不但改动了界面作风和结构并且代码也少有变更,舆图变更最年夜,必要到场栅格图(太可骇了,一幅栅格图居然有1.3G),怎样加载呢?由于此次的GIS体系是B/S布局的,并且功效也不小,除栅格图外另有良多层的矢量图,而且供应图层数据和数据库数据的互查功效,以是十分忧虑加载和显现栅格图时会十分的慢,大概形成服务器逝世机,可是明天发明已往仿佛有些“庸人自扰”,栅格图加载和显现仍是能够乐成的。详细内容以下:
1、想懂得栅格图是不是能加载,必要懂得ArcIMS的事情道理,这方面的常识我们在本系列漫笔的前几篇漫笔中也有会商过,上面再复杂申明一下:MapNet控件是解读ArcIMS回传得ArcXML文档,并经由过程假造路径来加载ArcIMS依据哀求所发生的图片。ArcIMS图形服务能够发生的图片范例有*.JPG、*.JPEG、*.PNG-8bit、*.PNG-24bit、*.GIF(必要特别的序列号或注册文件)。
2、也恰是由于有这类事情道理,固然栅格图的整幅图文件很年夜,可是ArcIMS会否将本身来处置天生的图片文件巨细,其实不会发生一个上G的图片文件在B/S程序和收集中传送呢。经由自己的实验证实ArcIMS的确把持了传送文件的巨细,再到场了栅格图后,图片文件并没有设想的年夜,以是也就不必往切割栅格图文件了,这使自己很乐意。(<!--此处写有栅格图的图片文件的巨细,最小和最年夜文件巨细-->,图片巨细仅供参考)
2、另有一个成绩是MapNet控件的成绩,MapNet控件有一个往取得图层数据的函数myIL.Recordset(myISQ2,true,false,myIGF),可是此函数最多加载的数据为2000条,最初天生数据集DataSet,那末这就意味着此DataSet的第0张表最多有2000条数据,可是MapNet控件又给我们供应了一个工具的属性myISQ2.Where,来查询所必要的图层上某个或某些元素,这个属性中可使用Sql语句,上面是有关的代码片段:
以下为援用的内容:
1
usingSystem;
2
usingSystem.Collections;
3
usingSystem.ComponentModel;
4
usingSystem.Data;
5
usingSystem.Drawing;
6
usingSystem.Web;
7
usingSystem.Web.SessionState;
8
usingSystem.Web.UI;
9
usingSystem.Web.UI.WebControls;
10
usingSystem.Web.UI.HtmlControls;
11
usingGongAnSys.Class;
12
usingStudioAT.IMS;
13
usingStudioAT;
14
usingSystem.Xml;
15
16
……
17
18
privatevoidMapNet1_Load(objectsender,System.EventArgse)
19
{
20
IMapNetmyIMapNet=MapNet1;
21
ICollectionLayersmyICL=myIMapNet.CollectionLayers;
22
IGetFeaturesmyIGF=null;
23
ISimpleMarkerSymbolmyISMS=newSimpleMarkerSymbolProperty();
24
IMapNetAcetateObjectsmyIMNAO=(IMapNetAcetateObjects)myIMapNet;
25
myIMNAO.Clear();
26
IObjectAcetateLayermyIOAL;
27
IPointmyIP1;
28
try
29
{
30
ILayermyIL=(ILayer)myICL.FindById(Session["LayerID"].ToString());
31
ISpatialQuery2myISQ2=newSpatialQuery();
32
stringColumnsName="GIS_ID";
33
myISQ2.Where=ColumnsName+"="+Session["GIS_ID"].ToString()+"";
34
DataSetds=myIL.Recordset(myISQ2,true,false,myIGF);//依据图层读取数据
35
intdscount=ds.Tables[0].Rows.Count;
36
……
37
}
38
catch
39
{
40
……
41
}
42
}
43
44
……
45
46
一个很大的类库。应用程序之所以难以跨平台,在于直接调用了特定平台的接口,而一个巨大的类库,就能极大地减少应用程序对平台的依赖。 |
|