您的位置:首页 > 其它

MapGIS 10入门程序,适合初学者

2014-08-25 15:43 134 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MapGIS.GeoMap;
using MapGIS.GeoDataBase;
using MapGIS.GeoObjects;
using MapGIS.GeoObjects.Geometry;
using MapGIS.GeoObjects.Info;

namespace WindowsFormsApplication6
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        MapGIS.UI.Controls.MapWorkSpaceTree mytree;
        private void Form2_Load(object sender, EventArgs e)
        {
            mytree = new MapGIS.UI.Controls.MapWorkSpaceTree();
            splitContainer1.Panel1.Controls.Add(mytree);
            mytree.Dock = DockStyle.Fill;
            timer1.Enabled = false;
        }

        private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "打开地图文档";
            ofd.Multiselect = false;
            ofd.Filter = "地图文档(*.mapx)|*.mapx";
            DialogResult dia = ofd.ShowDialog();
            if (dia == DialogResult.OK)
            {
                Document MapDoc = mytree.Document;
                MapDoc.Open(ofd.FileName);
                Map Mymap = MapDoc.GetMaps().GetMap(0);
                mapControl1.ActiveMap = Mymap;
                mapControl1.Restore();
            }
        }

        private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //初始化地图文档对象
            Document MapDoc = mytree.Document;
            //初始化地图对象
            Map myMap = new Map();
            myMap.Name = "不认真听讲的孩子学不好编程";
            if (MapDoc.Title == "")  //判断当前工作空间中是否打开地图
            {
                //地图文档名称
                MapDoc.Title = "呵呵";
                //新建地图文档
                MapDoc.New();
                //将初始化的地图添加到地图文档
                MapDoc.GetMaps().Append(myMap);
                //展开所有节点
                mytree.ExpandAll();
            }
            else
            {
                //添加地图到地图文档中
                MapDoc.GetMaps().Append(myMap);
                //地图显示视图置空
                mapControl1.ActiveMap = null;
            }
        }

        private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Document Doc = mytree.Document;
            Doc.Save();
        }

        private void 打开图层ToolStripMenuItem_Click(object sender, EventArgs e)
        {    
            Server GeoServer = new Server();    // 初始化服务器对象
            bool IsConn = GeoServer.Connect("MapGISLocal", "", "");  //链接服务器
            if (IsConn == false) return;    //判断服务器是否打开 
            DataBase GeoDB = GeoServer.OpenGDB("示例数据");  //打开地理数据库
            //初始化简单要素类,指向数据库中简单要素类型
            SFeatureCls Sf = GeoDB.GetXClass(XClsType.SFCls) as SFeatureCls; 
            bool IsSuccess = Sf.Open("海洋陆地", 1);  //打开简单要素
            if (IsSuccess == false) return;  //判断简单要素是否打开成功 
            Document doc = mytree.Document;  //初始化地图文档对象
            doc.Title = "学编程要多动脑多动手";  //地图文档的名称
            doc.New();  //新建地图文档  
            Map MyMap = new Map();   //初始化地图
            MyMap.Name = "学编程不要被代码,去理解逻辑关系";  
            VectorLayer Mylayer = new VectorLayer(VectorLayerType.SFclsLayer);  //初始化矢量图层  
            Mylayer.AttachData(Sf);  //绑定简单要素类给图层 
            Mylayer.Name = Sf.ClsName;   //将简单要素类的名称传给图层名称呢 
            MyMap.Append(Mylayer);//将图层添加到地图中 
            doc.GetMaps().Append(MyMap);   //将地图添加到地图文档中
            mapControl1.ActiveMap = MyMap; //显示地图  
            mapControl1.Restore();  //复位 
            mytree.ExpandAll();   //展开节点
        }

        private void 显示点ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Dot MyDot = new Dot();      //几何点对象
            MyDot.X = 0;
            MyDot.Y = 100;

            PntInfo DotInfo = new PntInfo();  //参数信息
            DotInfo.SymID = 34;   // 子图号
            DotInfo.Width = 100;     //点宽度
            DotInfo.Height = 100;     //点高度
            int[] Color = new int[3] { 6, 12, 255 };
            DotInfo.OutClr = Color;   //颜色

            mapControl1.Display.Begin();  //开始绘制
            mapControl1.Display.DispPoint(MyDot, DotInfo);   //绘制
            mapControl1.Display.End();        //结束绘制
        }
        Dots dots = null;
        PntInfo dotInfo = null;
        private void 显示轨迹ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            dots = new Dots();
            SFeatureCls sf = new SFeatureCls();
            sf.Open("gdbp://MapGisLocal/MapGIS大赛/sfcls/讨厌学编程");
            Map mymap = new Map();
            VectorLayer Mylayer = new VectorLayer(VectorLayerType.SFclsLayer);  //初始化矢量图层  
            Mylayer.AttachData(sf);  //绑定简单要素类给图层 
            Mylayer.Name = sf.ClsName;   //将简单要素类的名称传给图层名称呢 
            mymap.Append(Mylayer);
           Mylayer.State = LayerState.UnVisible;
            mapControl1.ActiveMap = mymap;
            mapControl1.Restore();
            GeoVarLine Myline = sf.GetGeometry(1) as GeoVarLine;
            dots = Myline.Get2Dots();
            dotInfo = new PntInfo();  //参数信息
            dotInfo.SymID = 34;   // 子图号
            dotInfo.Width = 10;     //点宽度
            dotInfo.Height = 10;     //点高度
            int[] Color = new int[3] { 6, 12, 255 };
            dotInfo.OutClr = Color;
            timer1.Enabled = true;
        }
        int index = 0;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (index < dots.Count)
            {
                Dot tempDot = dots.GetItem(index);
                mapControl1.Display.Begin();  //开始绘制
                mapControl1.Display.DispPoint(tempDot, dotInfo);   //绘制
                mapControl1.Display.End(); 
            }
            index++;
        }
    }
}
工程文件下载地址:<a target=_blank href="http://download.csdn.net/detail/wujianyouhun/7815779" target="_blank">点击下载</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: