GIS開發(fā)隨筆--GIS技術的一點理解和MapNet控件試驗_.Net教程
推薦:封裝stream,在讀寫stream時提供事件通知前陣子的工作涉及一些網(wǎng)絡編程,使用了面向流的方式做傳輸數(shù)據(jù)。在代碼過程中,遇到一個新需求就是要統(tǒng)計流量。其實最簡單的辦法就時在讀寫流的地方增加代碼,把功能增加上去就可以。但是我覺得
今天我們來討論幾個沒有太大關聯(lián)的內(nèi)容,如果在這幾個問題方面有人有自己獨特的見解,或已經(jīng)知道了這方面的技術,那么還請您在評論中提出來,供大家探討,下面我們就來探討一下吧。
一、這幾天忙著測試和修改GIS系統(tǒng),發(fā)現(xiàn)了一些Bug的同時也有了新的需求,不僅改變了界面風格和布局而且代碼也少有變化,地圖變化最大,需要加入柵格圖(太可怕了,一幅柵格圖竟然有1.3G),如何加載呢?因為這次的GIS系統(tǒng)是B/S結構的,而且功能也不小,除了柵格圖外還有很多層的矢量圖,并且提供圖層數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)的互查功能,所以非常擔心加載和顯示柵格圖時會非常的慢,或者造成服務器死機,但是今天發(fā)現(xiàn)過去好像有些“杞人憂天”,柵格圖加載和顯示還是可以成功的。具體內(nèi)容如下:
1、想了解柵格圖是否能加載,需要了解ArcIMS的工作原理,這方面的知識我們在本系列隨筆的前幾篇隨筆中也有討論過,下面再簡單說明一下:MapNet控件是解讀ArcIMS回傳得ArcXML文檔,并通過虛擬路徑來加載ArcIMS根據(jù)請求所產(chǎn)生的圖片。ArcIMS圖形服務可以產(chǎn)生的圖片類型有*.JPG、*.JPEG、*.PNG-8bit、*.PNG-24bit、*.GIF(需要特殊的序列號或注冊文件)。
2、也正是因為有這種工作原理,雖然柵格圖的整幅圖文件很大,但是ArcIMS會否將自身來處理生成的圖片文件大小,并不會產(chǎn)生一個上G的圖片文件在B/S程序和網(wǎng)絡中傳送呢。經(jīng)過本人的試驗證明ArcIMS確實控制了傳送文件的大小,再加入了柵格圖后,圖片文件并沒有想象的大,所以也就不用去切割柵格圖文件了,這使本人很高興。(<!--此處寫有柵格圖的圖片文件的大小,最小和最大文件大小-->,圖片大小僅供參考)
二、還有一個問題是MapNet控件的問題,MapNet控件有一個去獲得圖層數(shù)據(jù)的函數(shù)myIL.Recordset(myISQ2, true, false, myIGF),但是此函數(shù)最多加載的數(shù)據(jù)為2000條,最后生成數(shù)據(jù)集DataSet,那么這就意味著此DataSet的第0張表最多有2000條數(shù)據(jù),但是MapNet控件又給我們提供了一個對象的屬性myISQ2.Where,來查詢所需要的圖層上某個或某些元素,這個屬性中可以使用Sql語句,下面是有關的代碼片斷:
| 以下為引用的內(nèi)容: 1 using System;2 using System.Collections;3 using System.ComponentModel;4 using System.Data;5 using System.Drawing;6 using System.Web;7 using System.Web.SessionState;8 using System.Web.UI;9 using System.Web.UI.WebControls;10 using System.Web.UI.HtmlControls;11 using GongAnSys.Class;12 using StudioAT.IMS;13 using StudioAT;14 using 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 try29 ![]() {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);//根據(jù)圖層讀取數(shù)據(jù)35 int dscount = ds.Tables[0].Rows.Count;36 ……37 }38 catch39 ![]() {40 ……41 }42 }43 ![]() 44 ……45 ![]() 46 ![]() |
分享:實例開發(fā):ASP.NET創(chuàng)建網(wǎng)絡相冊在現(xiàn)在的數(shù)碼時代,我們會經(jīng)常拍攝一些相片以供留念,而隨著數(shù)碼照片的增多,往往需要很好地管理這些照片,以便更好地查閱留念�,F(xiàn)在網(wǎng)上有不少的電子相冊,都能很好的實現(xiàn)這些功能,那我們能否
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-GIS開發(fā)隨筆--GIS技術的一點理解和MapNet控件試驗
。



IMapNet myIMapNet 
}
}