• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ArcGISEngine的二次開發(fā)功能實現(xiàn)

      2019-10-21 08:42:27姜琳琳
      寫真地理 2019年4期

      姜琳琳

      摘要:本文的主要內(nèi)容是通過VisualStudio2012平臺,利用C#對ArcEngine進行二次開發(fā),利用其相關(guān)組件,實現(xiàn)一個可進行地圖基本操作、基于空間位置的地圖點擊查詢、以及簡單的緩沖區(qū)分析等操作功能的實現(xiàn)。

      關(guān)鍵詞: Arcgis Engine;信息查詢

      引言

      隨著信息科學(xué)與GIS技術(shù)的飛速發(fā)展,GIS已由傳統(tǒng)GIS發(fā)展到目前普遍使用的組件式GIS(ComGIS)和網(wǎng)絡(luò)GIS(WebGIS)。組件式GIS的出現(xiàn)解決了傳統(tǒng)GIS所面臨的諸多問題,它是面向?qū)ο蠹夹g(shù)和構(gòu)件式軟件技術(shù)在GIS軟件開發(fā)中的應(yīng)用。本文使用ArcObjects下的一個子組件ArcEngine進行二次開發(fā)。

      1基礎(chǔ)功能實現(xiàn)

      1.1地圖瀏覽功能

      該功能主要包括縮小、全圖顯示、放大、漫游等。這主要是通過ArcEngine中所提供的ToolbarControl工具條控件進行實現(xiàn)的。也可以代碼實現(xiàn),如下:

      放大:

      ipEnv=axMapControl1.TrackRectangle();

      axMapControl1.Extent=ipEnv;

      縮小:

      ipEnv=axMapControl1.Extent;

      ipEnv.Expand(2,2,true);

      axMapControl1.Extent=ipEnv;

      平移:

      ipEnv=axMapControl1.Extent;

      axMapControl1.Pan();

      居中

      IEnvelopepEnv;

      IActiveViewpactive;

      pEnv=axMapControl1.Extent;

      pactive=axMapControl1.ActiveView;

      //居中點的位置

      pEnv.CenterAt(pactive.ScreenDisplay.DisplayTransformation.ToMapPoint(e.x,e.y));

      pactive.Extent=pEnv;

      //刷新

      pactive.Refresh();

      2信息查詢功能

      該項主要包括周邊影響分析、快速查詢和專題查詢等功能。

      2.1快速查詢實現(xiàn)核心代碼

      IFeatureLayer flyer = axMapControl1.get_Layer(0) as IFeatureLayer;

      IFeatureClass feclass = flyer.FeatureClass;

      IFeatureCursor cusro = feclass.Search(null, true);

      IFeature fea = cusro.NextFeature();

      int cnt=0;

      while (fea != null)

      {

      cnt = cnt + 1;

      fea = cusro.NextFeature();

      }

      2.2按照條件屬性進行查詢

      IFeatureLayer flyer = axMapControl1.get_Layer(0) as IFeatureLayer;

      IFeatureClass feclass = flyer.FeatureClass;

      IQueryFilter flter = new QueryFilterClass();

      flter.WhereClause = "KIND='1380'";

      IFeatureCursor cusro = feclass.Search(flter, true);

      IFeature fea=cusro.NextFeature();

      int cnt = 0;

      while (fea != null)

      {

      cnt = cnt + 1;

      fea = cusro.NextFeature();

      }

      3空間分析

      空間分析功能是ArcG1S的特點與核心之一。主要利用對象庫提供的接口實現(xiàn)諸如緩沖區(qū)分析、路網(wǎng)分析等空間分析功能。

      3.1緩沖區(qū)分析

      本程序采用ITopologicalOperator接口中的Buffer方法來創(chuàng)建緩沖區(qū),實現(xiàn)了對單個圖層內(nèi)全部要素進行緩沖區(qū)分析和對單個圖層內(nèi)某些選中的要素進行緩沖區(qū)分析兩大功能。新生成的緩沖面將會以淺黃色在地圖窗口中高亮顯示,并且系統(tǒng)還會計算出緩沖面的總面積。

      核心代碼:

      IGraphicsContainer graphicscont=axMapControl1.MapasIGraphicsContainer;

      IFeatureLayer felyer=axMapControl1.get_Layer(0)asIFeatureLayer;

      IFeatureCursor cursor=felyer.FeatureClass.Search(null,true);

      IFeature fea=cursor.NextFeature();

      IActiveView av=axMapControl1.MapasIActiveView;

      while(fea!=null)

      {

      ITopologicalOperator op=fea.ShapeCopyasITopologicalOperator;

      IGeometrybufferresult=op.Buffer(0.01);

      IElement ele=new PolygonElementClass();

      ele.Geometry=bufferresult;

      graphicscont.AddElement(ele,0);

      av.Refresh();

      fea=cursor.NextFeature();

      }

      4 結(jié)束語

      本文主要實現(xiàn)了作為一個地理信息系統(tǒng)最基礎(chǔ)的功能、信息查詢功能和空間分析功能。并結(jié)合比較核心的代碼片段,構(gòu)成本文的主要內(nèi)容。未來,隨著對ArcEngine組件技術(shù)的不斷深入,研究與探索,使其在社會經(jīng)濟統(tǒng)計、專題地圖制作、城市管網(wǎng)等諸多領(lǐng)域都有更廣泛的應(yīng)用。

      參考文獻:

      [1]王穆一雄.基于ArcEngine的可視化系統(tǒng)開發(fā)方法研究與應(yīng)用[D].蘭州交通大學(xué),2013.

      [2]金靖.基于ArcGIS Engine的地理信息系統(tǒng)二次開發(fā)原理和方法[J].測繪與空間地理信息,2012,35(03):46-49.

      富平县| 喀什市| 卓资县| 沂水县| 红河县| 武冈市| 江达县| 确山县| 弥勒县| 酉阳| 繁昌县| 本溪市| 通许县| 溧阳市| 申扎县| 龙泉市| 镇原县| 沙湾县| 荆门市| 广东省| 开江县| 百色市| 斗六市| 潼关县| 绵阳市| 连平县| 滨海县| 平陆县| 区。| 台山市| 淄博市| 嘉黎县| 河西区| 梁河县| 平舆县| 宜宾县| 涟水县| 巴林左旗| 信宜市| 江达县| 永胜县|