阅读:2271回复:5
求助:用c#怎么添加一个图层到axmapcontrol
<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> |
|
1楼#
发布于:2007-09-07 09:40
<P>实例里面的代码是VBA的代码,有几个对象在C#里面是用不成的,如ThisDocument等,而且添加图层的时候建议不要用GxDialog对象,自己写一个Open对话框,直接用MapControl的Add函数添加图层就可以了。</P>
|
|
2楼#
发布于:2007-09-10 11:30
<P>首先谢谢指导,我考虑过这种方法,但是要做成象Arcmap里面添加*.lyr文件一样的功能,找不到.shp格式的文件。这怎么办啊?</P>
|
|
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> |
|
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> |
|
5楼#
发布于:2007-09-21 12:09
<P>但是在对话框中找不到.lyr格式的文件啊?删格数据文件由好多格式组成的。咋整呢</P>
|
|