• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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.

    龙游县| 杭锦后旗| 阳朔县| 尼玛县| 焉耆| 米林县| 南京市| 伊川县| 茶陵县| 荔浦县| 阳江市| 开平市| 五莲县| 垦利县| 图们市| 普宁市| 郴州市| 台前县| 东乌珠穆沁旗| 长宁区| 阿鲁科尔沁旗| 丹阳市| 桃园县| 布尔津县| 八宿县| 禄丰县| 高青县| 昆明市| 洞头县| 墨脱县| 沁水县| 田东县| 金坛市| 水城县| 卓资县| 遵义县| 云霄县| 辽阳市| 新丰县| 定边县| 晋中市|