C#-ArcEngine 添加图层文件的小问题
C#-ArcEngine添加图层文件的小问题:如下是一段添加lyr文件的代码,运行是,lyr的文件能显示在打开对话框中,但真正打开后在MapContral空间中不显示任何...
C#-ArcEngine 添加图层文件的小问题:
如下是一段添加lyr文件的代码,运行是,lyr的文件能显示在打开对话框中,但真正打开后在MapContral空间中不显示任何内容,左侧的TocContral中显示图层的名字,但是有叹号。 请问这是图层的路径问题吗?是绝对路径?顺便请大侠检查一下代码是否有误。
openFileDialog1.Filter = "lyr文件(*.lyr)|*.lyr";
openFileDialog1.InitialDirectory = @"C:\Program Files\ARCGIS\GIS-Data";
openFileDialog1.Multiselect = false;
DialogResult pDialogResult = openFileDialog1.ShowDialog();
if (pDialogResult != DialogResult.OK)
return;
string pFileName = openFileDialog1.FileName;
axMapControl1.AddLayerFromFile(pFileName);
axMapControl1.ActiveView.Refresh(); 展开
如下是一段添加lyr文件的代码,运行是,lyr的文件能显示在打开对话框中,但真正打开后在MapContral空间中不显示任何内容,左侧的TocContral中显示图层的名字,但是有叹号。 请问这是图层的路径问题吗?是绝对路径?顺便请大侠检查一下代码是否有误。
openFileDialog1.Filter = "lyr文件(*.lyr)|*.lyr";
openFileDialog1.InitialDirectory = @"C:\Program Files\ARCGIS\GIS-Data";
openFileDialog1.Multiselect = false;
DialogResult pDialogResult = openFileDialog1.ShowDialog();
if (pDialogResult != DialogResult.OK)
return;
string pFileName = openFileDialog1.FileName;
axMapControl1.AddLayerFromFile(pFileName);
axMapControl1.ActiveView.Refresh(); 展开
展开全部
*.lyr文件 和 *.mxd 文件类似,相当于一个小的工程文件。是用来存储图层相关信息的,而不存储图层本身的内容,它通过存储图层的绝对路径或相对路径来获取图层。在打开 *.lyr 文件时,程序通过 绝对路径或相对路径来 寻找图层并加载到 axMapControl 控件中,同时也将上次保存的相关图层信息(如:上次你保存颜色等。如果直接打开 *.shp 文件 系统会随机生成颜色和其它信息)加载进去。这样会有一个弊端,那就是如果你改变了 图层的 路径,文件打开就会出错。
而出现在MapContral控件中不显示任何内容,但左侧的TocContral中显示图层的名字,但是有叹号的原因是:
在MapContral控件中不显示任何内容,是由于无法找到图层自然无法加载
图层,也就不会显示内容,存储的
图层信息(关于显示图层 或 图层
修饰信息)自然也就无效了。
左侧的TocContral中显示图层的名字,是因为 *.lyr文件 的确存在,它存储
图层的相关信息(如:图层名称等)
所以,自然会在左侧的 TocContral
中显示图层的名字。
有叹号,是因为无法寻找到 图层 导致 FeatureClass 属性为 空(null)
也就是说图层不存在,接下对图层的任何操作(如:添加了一条
记录 Feature ,或删除 一条记录 等)都会出错!
所以说该状况的出现是由于 路径 问题引起的。你可以在 ArcMap 中,找到
原图层,重新 保存为 *.lyr文件 即可。
而出现在MapContral控件中不显示任何内容,但左侧的TocContral中显示图层的名字,但是有叹号的原因是:
在MapContral控件中不显示任何内容,是由于无法找到图层自然无法加载
图层,也就不会显示内容,存储的
图层信息(关于显示图层 或 图层
修饰信息)自然也就无效了。
左侧的TocContral中显示图层的名字,是因为 *.lyr文件 的确存在,它存储
图层的相关信息(如:图层名称等)
所以,自然会在左侧的 TocContral
中显示图层的名字。
有叹号,是因为无法寻找到 图层 导致 FeatureClass 属性为 空(null)
也就是说图层不存在,接下对图层的任何操作(如:添加了一条
记录 Feature ,或删除 一条记录 等)都会出错!
所以说该状况的出现是由于 路径 问题引起的。你可以在 ArcMap 中,找到
原图层,重新 保存为 *.lyr文件 即可。
展开全部
这个叹号问题和arcmap中的叹号应该是一样的,你先仔细检查下文件的绝对路径是否正确,如果不是的话就得看看你的文件投影是否一致了,
看了下提问者,才发现早上给你回答过 哈哈
看了下提问者,才发现早上给你回答过 哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ICommand pCommand;
pCommand = new ESRI.ArcGIS.Controls.ControlsAddDataCommandClass();
pCommand.OnCreate(axMapControl1.Object);
pCommand.OnClick();
pCommand = new ESRI.ArcGIS.Controls.ControlsAddDataCommandClass();
pCommand.OnCreate(axMapControl1.Object);
pCommand.OnClick();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询