ghostcau
路人甲
路人甲
  • 注册日期2007-03-25
  • 发帖数37
  • QQ
  • 铜币276枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2271回复:5

求助:用c#怎么添加一个图层到axmapcontrol

楼主#
更多 发布于:2007-09-05 21:13
<P>有vb的例子</P><PRE><CODE><FONT color=#0000ff>Public Sub</FONT></CODE> AddLayerFileToMap()
  <CODE><FONT color=#0000ff>Dim</FONT></CODE> filePath <CODE><FONT color=#0000ff>As String</FONT></CODE>
  filePath = "D:\arcgis\arcexe83\ArcObjects Developer Kit\samples\data\USA\states.lyr"
  <CODE><FONT color=#0000ff>Dim</FONT></CODE> pGxLayer <CODE><FONT color=#0000ff>As</FONT></CODE> IGxLayer
  <CODE><FONT color=#0000ff>Dim</FONT></CODE> pGxFile <CODE><FONT color=#0000ff>As</FONT></CODE> IGxFile

  <CODE><FONT color=#0000ff>Set</FONT></CODE> pGxLayer = <CODE><FONT color=#0000ff>New</FONT></CODE> GxLayer
  <CODE><FONT color=#0000ff>Set</FONT></CODE> pGxFile = pGxLayer
  pGxFile.Path = filePath
  <CODE><FONT color=#0000ff>Dim</FONT></CODE> pMxDoc <CODE><FONT color=#0000ff>As</FONT></CODE> IMxDocument
  <CODE><FONT color=#0000ff>Set</FONT></CODE> pMxDoc = ThisDocument
  pMxDoc.FocusMap.AddLayer pGxLayer.Layer
<CODE><FONT color=#0000ff>End Sub</FONT></CODE>
</PRE>
<P>但是怎么转成C#呢?IGxLayer这些接口都没有啊?<BR></P>
喜欢0 评分0
cftao2008
路人甲
路人甲
  • 注册日期2005-03-09
  • 发帖数141
  • QQ
  • 铜币568枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-09-07 09:40
<P>实例里面的代码是VBA的代码,有几个对象在C#里面是用不成的,如ThisDocument等,而且添加图层的时候建议不要用GxDialog对象,自己写一个Open对话框,直接用MapControl的Add函数添加图层就可以了。</P>
举报 回复(0) 喜欢(0)     评分
ghostcau
路人甲
路人甲
  • 注册日期2007-03-25
  • 发帖数37
  • QQ
  • 铜币276枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-09-10 11:30
<P>首先谢谢指导,我考虑过这种方法,但是要做成象Arcmap里面添加*.lyr文件一样的功能,找不到.shp格式的文件。这怎么办啊?</P>
举报 回复(0) 喜欢(0)     评分
ghostcau
路人甲
路人甲
  • 注册日期2007-03-25
  • 发帖数37
  • QQ
  • 铜币276枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-09-10 12:08
<P><BR>代码如下:错误是无效指针,怎么修改啊?  </P>
<P>private void menuItem18_Click(object sender, System.EventArgs e)<BR>  {<BR>  <BR>   this.openFileDialog2=new System.Windows.Forms.OpenFileDialog();<BR>   openFileDialog2.Title="open datasets and layers";<BR>   openFileDialog2.Filter="datasets and layers(*.shp)|*.shp";<BR>   openFileDialog2.ShowDialog();<BR>   string sFilePath=openFileDialog2.FileName;<BR>   if(sFilePath=="")<BR>   {<BR>    return;<BR>   }<BR>   OpenDocument1((sFilePath));</P>
<P>  }<BR>  private void OpenDocument1(string sFilePath)<BR>  {<BR>   <BR>   axMapControl1.AddLayerFromFile(sFilePath,0);<BR>  }</P>
举报 回复(0) 喜欢(0)     评分
追风浪子
路人甲
路人甲
  • 注册日期2004-06-08
  • 发帖数166
  • QQ
  • 铜币782枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2007-09-19 10:52
<P>上面对话框选择的是shp文件,所以应该使用下面的函数</P>
<P>MapControl1.AddShapeFile "D:\Temp","roads.shp"</P>
<P>如果是lyr文件,用AddLayerFromFile 函数</P>
<P><FONT color=#008000>'Add layer at index 0</FONT><BR>MapControl1.AddLayerFromFile "C:\Temp\myLayer.lyr"<BR><FONT color=green>'Add layer at index 2</FONT><BR>MapControl1.AddLayerFromFile "C:\Temp\myLayer.lyr", 2</P>
举报 回复(0) 喜欢(0)     评分
ghostcau
路人甲
路人甲
  • 注册日期2007-03-25
  • 发帖数37
  • QQ
  • 铜币276枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2007-09-21 12:09
<P>但是在对话框中找不到.lyr格式的文件啊?删格数据文件由好多格式组成的。咋整呢</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部