/*
* 有关说明:
* 其中专题地图是在SuperMap中做好的.
* 要想读取各个数据源的数据,也是很简单就能做到的,在SuperMap的帮助文件中有,
* 这里是在SuperMap的DeskPro中做好的"专题地图".
* 其他的变量名称都是自己定义的,基本不用说明.
* 有什么不明白的地方,欢迎留言!
*/
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;
}