SuperMap Object 读取SQL数据库中的地图

来源:互联网 发布:ubuntu kde kde 编辑:程序博客网 时间:2024/06/05 14:47
 

/*
          *
有关说明
:
          *
这是自己整理的一个链接SQL数据源打开SuperMap地图的函数
,
          *
其中专题地图是在SuperMap中做好的
.
          *
要想读取各个数据源的数据,也是很简单就能做到的,SuperMap的帮助文件中有
,
          *
这里我是在SuperMapDeskPro中做好的"专题地图
".
          *
其他的变量名称都是自己定义的,基本不用说明
.
          *
有什么不明白的地方,欢迎留言
!
          */

         private void Load_Map()
         {
             //
建立axSuperWorkspace SuperMap之间的联系

             axSuperMap.Connect(axSuperWorkspace.CtlHandle);
             //
数据源别名

             String strAlias;
             //
数据引擎类型

             SuperMapLib.seEngineType nEngineType;
             //
数据源绝对路径名

             String strDataSourceName;
             //
数据源对象,指向打开的数据源

             SuperMapLib.soDataSource objDataSource;
             //
数据源里的数据是否只读

             bool bReadOnly;
             //
是否加到最上面

             //bool bAddToHead;
             // int i; //
循环变量

             //
别名可以任意给,建议取成和数据源文件主名

             strAlias = "MyDataSource";
             //SuperMap
支持多种类型,此处为SQLServer类型

             nEngineType = SuperMapLib.seEngineType.sceSQLServer;
             //
远程数据库的地址和数据库名

             strDataSourceName = @"provider = SQLOLEDB;server = ServerName/ServiceName ;database = DataBaseName";
             string strPassword = "UID=UserName;pwd=PassWord";
             bReadOnly = true; //
不设为只读
             //
打开数据源
           
             string strDataSource = @"Provider = SQLOLEDB;Driver = SQL Server;SERVER = ServerName /ServiceName;Database =DataBaseName;Caption = MyMap;";
             axSuperWorkspace.Open(strDataSource, strPassword);
             objDataSource = axSuperWorkspace.OpenDataSourceEx(strDataSourceName, strAlias, nEngineType, bReadOnly, true, false, true, strPassword);

             if (objDataSource == null)
             {
                 MessageBox.Show("
地图信息打开失败,请与技术人员联系!", "打开数据源失败
");
                 return;
             }
             else
             {
                 //
在这里可以设置是打开DeskPro中设置好的专题地图,还是打开各个数据集,以及叠放次序

                 axSuperMap.OpenMap("
专题地图");
                 //
设置地图只显示省份

                 //
设置自动滚屏关闭
             }
             //
修改选中对象风格
             axSuperMap.selection.Style.PenColor = Convert.ToUInt32(ColorTranslator.ToOle(Color.FromArgb(100, 77, 0)));
             axSuperMap.selection.Style.PenWidth = 1;
             axSuperMap.selection.Style.PenStyle = 1;
             axSuperMap.selection.Style.BrushStyle = 5;
             axSuperMap.selection.Style.BrushBackTransparent = true;
             axSuperMap.selection.Style.BrushColor = Convert.ToUInt32(ColorTranslator.ToOle(Color.FromArgb(115, 69, 140)));
             axSuperMap.selection.Style.BrushBackColor = Convert.ToUInt32(ColorTranslator.ToOle(Color.FromArgb(239, 150, 255)));
             axSuperMap.selection.Style.BrushOpaqueRate = 20;
             //
刷新地图窗口

             axSuperMap.Refresh();
             objDataSource = null;
         }