亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#+MO實現一個道路編輯軟件(剛開始)

2020-01-24 03:49:24
字體:
來源:轉載
供稿:網友
//**********************************************************

//******主窗口程序

//********************************************************

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace IRND_DPT
{
    public partial class frmMain : Form
    {
        IRND_DPT.layerVariable pubLayerVariable = new layerVariable ();
        public frmMain()
        {
            InitializeComponent();
        }
        //添加圖層
        private void tlbAddLayer_Click(object sender, EventArgs e)
        {
            IRND_DPT.OpenFile AddFile = new OpenFile();
            AddFile.OpenShapeFiles(CD1,axMap1 );

            object refMap = (object)this.axMap1;
            bool refTrue = true;
            short refShort = 0;
            axlegend1.setMapSource(ref refMap);
            axlegend1.ShowAllLegend();
            axlegend1.LoadLegend(ref refTrue);
            axlegend1.set_Active(ref refShort, true);
            axMap1.Refresh();
            axlegend1.Refresh();

            //AddFile(CD1, axMap1);
        }
        //刪除圖層
        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            if (pubLayerVariable.MapLayerIndex >= 0)
            {
                for (int i = 0; i <= axMap1.Layers.Count - 1; i++)
                {
                    axMap1.Layers.Remove(pubLayerVariable.MapLayerIndex);
                    break;
                }
                bool refTrue = true;
                axMap1.Refresh();
                axlegend1.LoadLegend(ref refTrue);
            }

        }
        private void axlegend1_AfterSetLayerVisible(object sender,AxSampleLegendControl.__legend_AfterSetLayerVisibleEvent e)
        {
            axMap1.Refresh();            
        }

        private void axlegend1_LayerDblClick(object sender, AxSampleLegendControl.__legend_LayerDblClickEvent e)
        {

        }

        private void axlegend1_MouseDownEvent(object sender, AxSampleLegendControl.__legend_MouseDownEvent e)
        {

            if (e.index >= 0)
            {
                MapObjects2.MapLayer layer= (MapObjects2.MapLayer )axMap1.Layers.Item(e.index );
                pubLayerVariable.MapLayerName = layer.Name;
                pubLayerVariable.MapLayerIndex = e.index;                
            }
            axMap1.TrackingLayer.Refresh(true, axMap1.Extent);
        }
        //放大
        private void tlb_ZoomIn_Click(object sender, EventArgs e)
        {
            axMap1.MousePointer = MapObjects2.MousePointerConstants.moZoomIn;
        }
        //縮小
        private void tlb_ZoomOut_Click(object sender, EventArgs e)
        {
            axMap1.MousePointer = MapObjects2.MousePointerConstants.moZoomOut;
        }
        //漫游
        private void tlb_Pan_Click(object sender, EventArgs e)
        {
            axMap1.MousePointer = MapObjects2.MousePointerConstants.moPan;
        }
        //全圖
        private void tbl_Full_Click(object sender, EventArgs e)
        {
            axMap1.Extent = axMap1.FullExtent;
            axMap1.MousePointer = MapObjects2.MousePointerConstants.moArrow;
        }
        //逐漸放大
        private void tbl_SmallIn_Click(object sender, EventArgs e)
        {
            MapObjects2.Rectangle r = axMap1.Extent;
            r.ScaleRectangle(0.9);
            axMap1.Extent = r;
        }
        //逐漸縮小
        private void tbl_SmallOut_Click(object sender, EventArgs e)
        {
            MapObjects2.Rectangle r = axMap1.Extent;
            r.ScaleRectangle(1.1);
            axMap1.Extent = r;
        }
        //選擇查詢
        private void tbl_Identify_Click(object sender, EventArgs e)
        {
            axMap1.MousePointer = MapObjects2.MousePointerConstants.moIdentify;
        }
        //屬性瀏覽
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            if (pubLayerVariable.MapLayerIndex >= 0 & pubLayerVariable.MapLayerName != null)
            {
                MapObjects2.MapLayer lyr = (MapObjects2.MapLayer )axMap1.Layers.Item(pubLayerVariable.MapLayerName);
                IRND_DPT.frmBrowseAttr frmBrowset = new frmBrowseAttr();                
                frmBrowset.IniListview(lyr);
                frmBrowset.ShowDialog(this); 
            }
        }
        //地圖響應事件
        private void axMap1_MouseDownEvent(object sends, AxMapObjects2._DMapEvents_MouseDownEvent e)
        {
            MapObjects2.Rectangle rect;
            MapObjects2.Point curp;
            MapObjects2.MapLayer lyr;
            MapObjects2.Recordset rest;

            switch (axMap1.MousePointer)
            {
                //放大                    
                case MapObjects2.MousePointerConstants.moZoomIn:
                {                    
                    rect = axMap1.TrackRectangle();
                    if (rect.Width == 0 || rect.Height == 0)
                    {
                        rect = axMap1.Extent;
                        rect.ScaleRectangle(0.5);
                    }
                    axMap1.Extent = rect;
                    break;
                }
                //縮小
                case MapObjects2.MousePointerConstants.moZoomOut:
                {
                    MapObjects2.Rectangle Tempr;
                    Tempr = axMap1.Extent;
                    rect = axMap1.TrackRectangle();
                    double NewSR;
                    if (rect.Width != 0 || rect.Height != 0)
                    {
                        if (axMap1.Extent.Width / rect.Width  > axMap1.Extent.Height / rect.Height)
                        {
                            NewSR = axMap1.Extent.Height / rect.Height;
                        }
                        else
                        {
                            NewSR = axMap1.Extent.Width / rect.Width;
                        }
                        Tempr.ScaleRectangle(NewSR);
                    }
                    else 
                    {
                        Tempr.ScaleRectangle(2.0);
                    }
                    axMap1.Extent = Tempr;
                    break;
                }
                //漫游
                case MapObjects2.MousePointerConstants.moPan:
                {
                    axMap1.Pan();
                    break;
                }
                //選擇查詢
            case MapObjects2.MousePointerConstants.moIdentify:
                {
                    if (pubLayerVariable.MapLayerIndex >= 0 && pubLayerVariable.MapLayerName != "")
                    {
                        rect = axMap1.TrackRectangle();
                        lyr = (MapObjects2.MapLayer)axMap1.Layers.Item(pubLayerVariable.MapLayerIndex);
                        if (rect.Width == 0)
                        {
                            curp = axMap1.ToMapPoint(e.x, e.y);
                            rest = lyr.SearchByDistance(curp, (double)axMap1.ToMapDistance((float)Screen.PrimaryScreen.WorkingArea.X * 5), "");
                        }
                        else
                        {
                            rest = lyr.SearchShape(rect, MapObjects2.SearchMethodConstants.moAreaIntersect, "");
                        }
                        if (rest.EOF!=true)
                        {
                            axMap1.FlashShape(rest.Fields.Item("shape").Value, 2);
                            IRND_DPT.frmIdentify FunctionClass = new frmIdentify();
                            ////FunctionClass.Close();  
                            FunctionClass.CurRecordSet(rest);
                            FunctionClass.IniTvFeat(rest, lyr.Name);
                            FunctionClass.IniLvwAttr(rest);
                            FunctionClass.Show(this);
                        }
                    }
                    break;
                }
            }
        }


        ////////
        ///////////////////////////////////////////////////////////////////////////////////////////////
    }
}

//*************************************************

//********屬性查詢

//************************************************

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace IRND_DPT
{
    public partial class frmIdentify : Form
    {
        MapObjects2.Recordset mrs;        

        public frmIdentify()
        {
            InitializeComponent();
        }
        private void frmIdentify_Load(object sender, System.EventArgs e)
        {
            lvwAttr.View = View.Details; 
            lvwAttr.Columns.Add("字段",50,HorizontalAlignment.Left );
            lvwAttr.Columns.Add ("值",50,HorizontalAlignment.Center );

        }

        //


        private void tvFeat_NodeMouseClick(object sender, System.Windows.Forms.TreeNodeMouseClickEventArgs e)
        {
            string ID;
            ListViewItem Item;

            //if (e.Node.Parent == null) { return; }
            lvwAttr.Items.Clear();
            ID = e.Node.Text;
            mrs.MoveFirst();
            while (mrs.EOF != true)
            {
                if (ID == mrs.Fields.Item("FeatureID").ValueAsString)
                {
                    for (short fld = 1; fld < mrs.TableDesc.FieldCount; fld++)
                    {                        
                        Item = lvwAttr.Items.Add(mrs.TableDesc.get_FieldName(fld));
                        Item.SubItems.Add(mrs.Fields.Item(Item.Text).ValueAsString);
                    }
                    lvwAttr.Refresh();   
                    break;
                }
                mrs.MoveNext();
            }     
        }

        public void CurRecordSet(MapObjects2.Recordset vNewValue)
        {
            mrs = vNewValue;
        }
        public void IniLvwAttr(MapObjects2.Recordset rst)
        {
            TreeNode n=null ;
            ListViewItem Item;
            string ID;

            lvwAttr.Items.Clear();
            if (tvFeat.Nodes.Count >= 2)
            {
                int i = 0;
                foreach (TreeNode tn in tvFeat.Nodes)
                {                    
                    i=i+1;
                    if (i == 2) 
                    { 
                        n = tn;
                        break;
                    }
                }              

                if (n.Text != null)
                {
                    rst.MoveFirst();                    
                    ID = rst.Fields.Item("FeatureID").ValueAsString;                    
                    while (rst.EOF != true)
                    {
                        if (ID == n.Text)
                        {
                            for (short fld = 1; fld < rst.TableDesc.FieldCount; fld++)
                            {
                                Item = lvwAttr.Items.Add(rst.TableDesc.get_FieldName(fld));
                                Item.SubItems.Add(rst.Fields.Item(Item.Text).ValueAsString);
                            }
                            lvwAttr.Refresh();
                            break;
                        }
                    }
                }
            }

        }
        //將選擇的記錄集加入到樹型控件中進行顯示
        public void IniTvFeat(MapObjects2.Recordset moRs_in, string lyrName_in)
        {
            TreeNode n;            
            string ID;
            if (moRs_in.EOF != true)
            {
                moRs_in.MoveFirst();
                tvFeat.Nodes.Clear();
                n = tvFeat.Nodes.Add(lyrName_in);
                n=n.Parent;
                while (moRs_in.EOF != true)
                {             
                    ID = moRs_in.Fields.Item("FeatureID").ValueAsString;                    
                    n= tvFeat.Nodes.Add(ID);
                    moRs_in.MoveNext(); 
                }                  
            }
        }


        ///////zuihou////////////////////////////////////////////////////////////////////////////
    }
}

//*************************************************************

//************加載圖層函數

//*************************************************************

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace IRND_DPT
{
    class OpenFile
    {   
        //功能說明:
        //    從公共對話框中提取文件名,然后調用不同的子模塊處理不同的文件加入圖層的問題(支持打開多個文件)
        public void  OpenShapeFiles(OpenFileDialog comopenfile,AxMapObjects2.AxMap map)
        {
            try
            {
                string strShape, strCov, strCAD, strVPF, strImage, strMilImage;


                //將過濾器設置為可支持的文件
                strShape = "ESRI ShapeFiles(*.shp)|*.shp";
                strCov = "ESRI Coverages(*.adf,*.tat,*.pat,*.rat)|aat.adf;pat.adf;nat.adf;txt.adf;*.tat;*.pat;*.rat";
                strCAD = "AutoCAD File (*.dwg,*.dxf)|*.dwg;*.dxf";
                strImage ="All Image(*.bmp,*.dib,*.tif,*.jpg,*.jff,*.bil,*.bip,*.bsq,*.gis,*.lan,*.rlc,*.sid,*.sun,*.rs,*.ras,*.svf,*.img,*.gif)|*.bmp,*.dib,*.tif,*.jpg,*.jff,*.bil,*.bip,*.bsq,*.gis,*.lan,*.rlc,*.sid,*.sun,*.rs,*.ras,*.svf,*.img,*.gif";

                comopenfile.CheckFileExists = true;
                //設置過濾
                comopenfile.Filter = strShape + "|" + strCov + "|" + strCAD + "|" + strImage ;
                comopenfile.Title = "添加圖層";
                //允許選擇多個文件,并允許長文件名
                comopenfile.Multiselect = true;
                if (comopenfile.ShowDialog() == DialogResult.OK)
                {

                    foreach (string strFilename in comopenfile.FileNames)
                    {
                        string sPath = strFilename.Substring(0, strFilename.LastIndexOf("http://") + 1);
                        string sFile = strFilename.Substring(strFilename.LastIndexOf("http://") + 1, strFilename.Length - strFilename.LastIndexOf("http://") - 1);
                        string nametype = sFile.Substring(sFile.LastIndexOf(".") + 1, sFile.Length - sFile.LastIndexOf(".") - 1);
                        open_file(sPath, sFile, nametype, map);
                    }
                }
            }
            catch
            {
                MessageBox.Show("圖層添加有錯!");
            }         
        }
        //功能說明:
        //    測試文件類型,一便調用不同的子模塊.處理不同圖層加入的問題
        private void open_file(string Path,string filename,string filetype,AxMapObjects2.AxMap mapobject)
        {
            string LayerName = filename.Substring(0, filename.LastIndexOf("."));
            switch (filetype)
            {
                case "shp":
                    shpAdd(Path, filename, mapobject, LayerName, true);
                    break;

            }
        }
        //功能說明:
        //添加shape格式的文件
        public void   shpAdd(string databasepath, string filename,AxMapObjects2.AxMap mapobject, string LayerName, bool Hide)
        { 
            MapObjects2.DataConnection dCon=new MapObjects2.DataConnection() ;
           // MapObjects2.GeoDataset gSet=new MapObjects2.GeoDataset ();
            MapObjects2.MapLayer newLayer = new MapObjects2.MapLayer();     
            long i=0;

            try
            {
                dCon.Database = databasepath;
                if (dCon.Connect())
                {
                    MapObjects2.GeoDataset gSet = dCon.FindGeoDataset(filename);
                    if (gSet == null)
                    {

                        return ;
                    }
                    else
                    { 
                        //查看當前是否有重復的圖層名,以確保所有的圖層名都是唯一的
                        if (FindMapLayerName(mapobject,LayerName)==true )
                        {
                            string tempstr = LayerName;
                            while (FindMapLayerName(mapobject, tempstr + "-" + i)==true )
                            {
                                i++;
                            }
                            LayerName = LayerName + "-" + i;
                        }
                        newLayer.GeoDataset = gSet;

                        if (Hide)
                        {
                            newLayer.Visible = true;
                        }
                        else
                        {
                            newLayer.Visible = false; 
                        }
                        //使用默認顏色和樣式設置圖層
                        switch (newLayer.shapeType)
                        { 
                            case MapObjects2.ShapeTypeConstants.moShapeTypePoint :
                                newLayer.Symbol.Color=11513775;
                                newLayer.Symbol.Size=5;
                                break;
                            case MapObjects2.ShapeTypeConstants .moShapeTypeLine :
                                newLayer.Symbol.Color = 11513775;
                                newLayer.Symbol.Size = 1;
                                break;
                            case MapObjects2.ShapeTypeConstants.moShapeTypePolygon :
                                newLayer.Symbol.SymbolType = 0;
                                newLayer.Symbol.Style = 8;
                                newLayer.Symbol.Color = 12566463;
                                newLayer.Symbol.Outline = true;
                                newLayer.Symbol.OutlineColor = (int)MapObjects2.ColorConstants.moBlack;
                                break;
                        }
                        mapobject.Layers.Add (newLayer);
                        newLayer.Name = LayerName;
                        newLayer.Tag=databasepath + filename ;                        

                    }

                }
            }
            catch
            { 
               // MessageBox("加載圖層出錯!");
            }
        }
        //功能說明:
        //    查找map中的圖層AxMapObjects2.AxMap mapobject,string LayerName 
        public bool FindMapLayerName(AxMapObjects2.AxMap mapobject, string LayerName)
        {    

            for (int i=0;i<mapobject.Layers.Count ;i++)
            {
                if (mapobject.Layers.Item(i).ToString() ==LayerName )
                {
                    return true;

                }
            }     
           return false ;

        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本一本久久a久久精品综合小说| 中文字幕日韩在线观看| 久久精品免费电影| 欧美日韩国产成人高清视频| 97在线观看视频国产| 一区二区三区国产在线观看| 国产精品久久视频| 久久精品国产视频| 久久视频在线直播| 欧美极品欧美精品欧美视频| 97欧美精品一区二区三区| 久久99久久99精品免观看粉嫩| 欧美性高潮床叫视频| 91po在线观看91精品国产性色| 亚洲最大的成人网| 日韩av综合中文字幕| 69久久夜色精品国产69| 欧美精品一区三区| 亚洲精品成人久久电影| 国产一区二区三区四区福利| 久久国产精品久久久久久| 欧美日韩精品中文字幕| 日韩成人av一区| 日韩理论片久久| 欧美一区二区.| 亚洲综合中文字幕在线| 97精品免费视频| 亚洲欧美日韩精品久久| 国产精品久久久久久久久久小说| 国产精品jizz在线观看麻豆| 亚洲美女性生活视频| www.久久久久久.com| 欧美俄罗斯乱妇| 欧美激情在线狂野欧美精品| 午夜精品久久久久久久99热| 亚洲护士老师的毛茸茸最新章节| 久久天天躁狠狠躁夜夜躁2014| 91久久久久久久一区二区| 国产91精品网站| 少妇av一区二区三区| 久久精品亚洲热| 色悠久久久久综合先锋影音下载| 亚洲大胆人体av| 国产成人在线一区二区| 亚洲亚裔videos黑人hd| 高潮白浆女日韩av免费看| 亚洲国产精品视频在线观看| 最近免费中文字幕视频2019| 亚洲国产精品99久久| 91在线观看免费高清完整版在线观看| 日韩亚洲在线观看| 欧美成人在线免费| 欧洲亚洲免费视频| 日韩av中文字幕在线| 亚洲护士老师的毛茸茸最新章节| 欧美一级视频在线观看| 夜夜狂射影院欧美极品| 欧美精品激情blacked18| 欧美国产在线电影| 精品偷拍各种wc美女嘘嘘| 91麻豆国产精品| 日韩一区二区欧美| 韩国19禁主播vip福利视频| 7m精品福利视频导航| 欧美高清一级大片| 久久久久久久久久久av| 国产日韩欧美黄色| 国产精品美女久久久久久免费| 欧美一级淫片播放口| 国产美女高潮久久白浆| 亚洲一区中文字幕在线观看| 欧美黑人性生活视频| 久久久精品视频在线观看| 亚洲日本中文字幕免费在线不卡| 日韩精品在线观看网站| 欧美天天综合色影久久精品| 中文字幕在线视频日韩| 久久精品国产久精国产思思| 久久久久亚洲精品成人网小说| 欧美激情亚洲激情| 国产精品视频xxx| 亚洲性视频网址| 美女福利精品视频| 国自产精品手机在线观看视频| 奇米成人av国产一区二区三区| 国产日韩欧美中文在线播放| 亚洲国产精品嫩草影院久久| 成人国产精品久久久久久亚洲| 亚洲国产婷婷香蕉久久久久久| 国产精品私拍pans大尺度在线| 国产午夜精品一区理论片飘花| 最新中文字幕亚洲| 国产视频精品在线| 欧美激情成人在线视频| xvideos成人免费中文版| 国产视频精品va久久久久久| 欧美网站在线观看| 久久久亚洲国产| 国产精品日韩久久久久| 日韩美女在线观看| 国产97在线|日韩| 亚洲精品自拍第一页| 亚洲va欧美va国产综合久久| 成人免费直播live| 91色p视频在线| 成人伊人精品色xxxx视频| 久久久久在线观看| 欧美专区福利在线| 亚洲精品电影网在线观看| 国产精品爽爽ⅴa在线观看| 国产精品久久久久久久久久ktv| 91热福利电影| 久久婷婷国产麻豆91天堂| 国产精品大陆在线观看| 日本午夜在线亚洲.国产| 国产欧美日韩高清| 欧美成年人在线观看| 亚洲永久在线观看| 欧美色视频日本高清在线观看| 久久夜精品va视频免费观看| 亚洲成年人在线播放| 自拍偷拍免费精品| 草民午夜欧美限制a级福利片| 久久影院资源站| 日韩av在线资源| 成人性生交大片免费看视频直播| 国产成人在线一区| 亚洲视频精品在线| 美日韩丰满少妇在线观看| 精品久久久精品| 亚洲第一男人天堂| 久久夜精品香蕉| 成人免费观看a| 美女999久久久精品视频| 亚洲自拍偷拍第一页| 国产精品美乳一区二区免费| 成人免费黄色网| www.日韩欧美| 在线观看亚洲区| 亚洲精品久久久久中文字幕二区| 日韩美女免费视频| 精品国产老师黑色丝袜高跟鞋| 欧美有码在线观看| 性欧美亚洲xxxx乳在线观看| 98视频在线噜噜噜国产| 91av在线视频观看| www.xxxx欧美| 欧美成人精品在线视频| 欧美成人免费一级人片100| 日韩av资源在线播放| 日韩一中文字幕| 久久99国产综合精品女同| 亚洲美女精品久久| 日韩美女视频免费看| 日韩在线观看免费高清完整版| 性色av一区二区三区红粉影视| 亚洲激情成人网| 国产亚洲日本欧美韩国| 秋霞午夜一区二区| 国内精品久久久久久影视8| 亚洲欧美日韩精品久久奇米色影视| 精品国产一区二区三区久久| 日韩电影中文字幕在线观看| 亚洲色无码播放|