GIS开发随笔--GIS技术的一点理解和MapNet控件试验

今天我们来讨论几个没有太大关联的内容,如果在这几个问题方面有人有自己独特的见解,或已经知道了这方面的技术,那么还请您在评论中提出来,供大家探讨,下面我们就来探讨一下吧。

一、这几天忙着测试和修改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确实控制了传送文件的大小,再加入了栅格图后,图片文件并没有想象的大,所以也就不用去切割栅格图文件了,这使本人很高兴。(<!--此处写有栅格图的图片文件的大小,最小和最大文件大小-->,图片大小仅供参考)

二、还有一个问题是MapNet控件的问题,MapNet控件有一个去获得图层数据的函数myIL.Recordset(myISQ2, true, false, myIGF),但是此函数最多加载的数据为2000条,最后生成数据集DataSet,那么这就意味着此DataSet的第0张表最多有2000条数据,但是MapNet控件又给我们提供了一个对象的属性myISQ2.Where,来查询所需要的图层上某个或某些元素,这个属性中可以使用Sql语句,下面是有关的代码片断:

以下为引用的内容:
1开发随笔--GIS技术的一点理解和MapNet控件试验-gis耐压试验">using System;
 2using System.Collections;
 3using System.ComponentModel;
 4using System.Data;
 5using System.Drawing;
 6using System.Web;
 7using System.Web.SessionState;
 8using System.Web.UI;
 9using System.Web.UI.WebControls;
10using System.Web.UI.HtmlControls;
11using GongAnSys.Class;
12using StudioAT.IMS;
13using StudioAT;
14using System.Xml;
15
16……
17
18        private void MapNet1_Load(object sender, System.EventArgs e)
19        {
20            IMapNet myIMapNet = MapNet1;
21                ICollectionLayers myICL = myIMapNet.CollectionLayers;
22                IGetFeatures myIGF = null;
23                ISimpleMarkerSymbol myISMS = new SimpleMarkerSymbolProperty();
24                IMapNetAcetateObjects myIMNAO = (IMapNetAcetateObjects)myIMapNet;
25                myIMNAO.Clear();
26                IObjectAcetateLayer myIOAL;
27                IPoint myIP1;
28                try
29                {
30                    ILayer myIL = (ILayer)myICL.FindById (Session["LayerID"].ToString());
31                    ISpatialQuery2 myISQ2 = new SpatialQuery();
32                    string ColumnsName = "GIS_ID";
33                    myISQ2.Where = ColumnsName + " = '" + Session["GIS_ID"].ToString() + "'";
34                    DataSet ds = myIL.Recordset(myISQ2, true, false, myIGF);//根据图层读取数据
35                    int dscount = ds.Tables[0].Rows.Count;
36……
37}
38                catch
39                               {
40……
41                }
42        }
43
44……
45
46
时间: 2024-08-07 07:15:30

GIS开发随笔--GIS技术的一点理解和MapNet控件试验的相关文章

ios开发-如何改变一个视图控制器中除一个控件变灰

问题描述 如何改变一个视图控制器中除一个控件变灰 就像图片一样,当选择器触发时,其余控件色变成灰色怎么实现?求大神开发-如何改变一个视图控制器中除一个控件变灰-ios 添加子视图控制器">

.NET快速开发实践之应用IExtenderProvider实现对象与UI控件的绑定

         现在企业级的信息系统应用开发之中,数据层采用了ORM,解放了之前开发最大工作量的核对SQL语句,我到现在还曾经记得在2002年实医院管理信息系统时对齐一个插入数据的SQL语言搞的我头大,从那之后就能不能把这样的东西换个方式,之后搞.NET有了ORM,对齐SQL语句的事终于解放了,但是界面上的UI与ORM对象之间的数据交互避免不了,把数据实体的值显示在UI控件上或者把UI控件的值更新到数据对象,我们不得不这样去写:          取实体的值并显示在界面: private vo

swing开发图形界面工具配置(可自由拖控件上去)

swing开发图形界面工具,eclipse swing图形化操作界面工具配置 1.有一个小功能要有一个界面,之前知道有一个 图形化界面的(就是可以往上面拖控件布局的工具)JBuilder,今天上午就下了一个(1.6GB)好不容易下载完了,最新版本的(没找到老版本的,记得老版本的特好用)安装好之后发现没有swing拖控件的组件 ,还要去下载GUI等等插件(而且还是试用版).太无语JBuilder,还付费 ,果断给卸载了 卸载JBuilder后就不能用图形化界面的功能了吗?答案是有. 2. 中午吃饭

仿酷狗音乐播放器开发日志二十——换肤功能背景图片控件的制作(附源码)

转载请说明原出处,谢谢~~           <仿酷狗音乐播放器开发日志二十>里做了换肤功能的一部分,今天完成其他的部分.酷狗的换肤窗口里的背景图可以让用户选择来换图,原酷狗的背景图的小图标,有normal.hover.down等多种状态,鼠标移动上去便会发生变化.如图        当鼠标经过时会有个黑色图片覆盖,边框变为浅蓝色.并且在他上面显示出作者的一些信息.要实现这个效果应该另外开发一个控件来支持动态的信息展示效果.我把这个小控件的开发过程和源码发一下,给学习做duilib控件的新手

一起谈.NET技术,用优秀.NET界面控件 打造新潮界面效果

一直以来,做.NET共享小软件的界面一般采用IrisSkin这个比较不错的皮肤控件来美化界面效果,方便易用,界面效果也还可以.该控件开发应用比较方便,拖动控件到主界面,然后初始化地方添加一下代码即可: string skinFile = ConfigurationManager.AppSettings["SkinFile"];this.skinEngine1.SkinFile = Path.Combine(Application.StartupPath, skinFile); 主界面初

Windows 8开发入门(八) Windows 8 中Slider控件和ToggleSwitch控件

一:Silder控件是滑块控件,在Silverlight中也存在,其主要用于音量调节,亮度调节,色彩调节,温度 计等. 主要属性: FlowDirection:从左向右滑动或者从右向左滑动 Minimum:最小值 Maximum:最大值 Orientation:排列方向,垂直排列或者水平排列 TickFrequency:在 Slider长度允许的条件下,每个刻度之间的值 TickPlacement:刻度显示位置,在Slider上面或者下面 或者Slider里面 主要事件:ValueChanged

数据绑定技术—将DataSet绑定到DataGrid控件

private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { DataSet myDS = new DataSet(); DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("列号", typeof(Int32))); dt.Columns.Add(new DataColumn(&quo

数据绑定技术—将DataTable绑定到DataGrid控件

void Page_Load(object sender, System.EventArgs e) { if(!IsPostBack) { // 创建 DataTable 对象 DataTable dt = new DataTable(); DataRow dr; // 创建 DataTable 中的 DataColumn 列 dt.Columns.Add(new DataColumn("ID", typeof(System.Int32))); dt.Columns.Add(new D

数据绑定技术—将ArrayList绑定到ListBox控件

void Page_Load(Object Sender, EventArgs E) { if (!Page.IsPostBack) { ArrayList values = new ArrayList(); values.Add ("北京"); values.Add ("上海"); values.Add ("广州"); values.Add ("深圳"); values.Add ("天津"); value