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



IMapNet myIMapNet 
}
}