gisempire1111
路人甲
路人甲
  • 注册日期2004-11-08
  • 发帖数8
  • QQ
  • 铜币125枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2461回复:3

AE和AO中添加栅格数据的代码!

楼主#
更多 发布于:2007-12-26 14:06
<TABLE cellSpacing=0 width="98%" align=center>

<TR>
<TD colSpan=6>内容摘要</TD></TR>
<TR>
<TD>这个文档显示怎么样使用IRaster::CreateFromDataset方法来添加一个JPEG图像到ArcMap中。</TD></TR>
<TR>
<TD colSpan=6>过程描述</TD></TR>
<TR>
<TD>1 打开ArcMap, 并打开Visual Basic Editor.<BR>2 在工程浏览窗口,展开Project.mxt,选择ArcMap Objects>ThisDocument,右键并选择浏览代码。<BR>在工程的ThisDocument代码模块中的代码将仅仅在现在的地图文档中使用。如果想存储你的代码在你的所有的地图文档中,那么使用Normal.mxt中的ThisDocument代码模块。<BR>3 粘贴下面的代码到代码模块中:<BR>Public Sub AddRasterLayer()<BR><BR>Dim pMxDocument As IMxDocument<BR>Dim pMap As IMap<BR>Dim pLayer As IRasterLayer<BR>Dim pWF As IWorkspaceFactory<BR>Dim pWs As IWorkspace<BR>Dim pFW As IRasterWorkspace<BR>Dim pDataset As IDataset<BR>Dim pRDataset As IRasterDataset<BR><BR>Set pWF = New RasterWorkspaceFactory<BR><BR>' 输入图像文件的路径<BR>Set pWs = pWF.OpenFromFile("C:Images", 0)<BR><BR>' QI<BR>Set pFW = pWs<BR>' 输入图像文件的名字<BR>Set pRDataset = pFW.OpenRasterDataset("seb1.jpg")<BR><BR>' 创建数据集<BR>Dim pRLayer As IRasterLayer<BR>Set pRLayer = New RasterLayer<BR>pRLayer.CreateFromDataset pRDataset<BR><BR>'添加栅格图层到地图中<BR>Set pMxDocument = ThisDocument<BR>Set pMap = pMxDocument.FocusMap<BR>pMxDocument.AddLayer pRLayer<BR><BR>End Sub<BR><BR>4 关闭Visual Basic Editor并运行测试。</TD></TR></TABLE>
喜欢0 评分0
gisempire1111
路人甲
路人甲
  • 注册日期2004-11-08
  • 发帖数8
  • QQ
  • 铜币125枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-12-26 14:12
<P>Private Sub Menu_files_r_Click()<BR>    ' 创建数据集<BR>    Dim RDataset As IRasterDataset<BR>    Dim pRLayer As IRasterLayer<BR>    Set pRLayer = New RasterLayer<BR>    <BR>    With frmmain.CommonDialog1<BR>        .FileName = ""<BR>        .Filter = "EMF(*.emf)|*.emf|EPS(*.eps)|*.eps|AI(*.ai)|*.ai|PDF(*.pdf)|*.pdf|SVG(*.svg)|*.svg|BMP(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg|PNG(*.png)|*.png|TIFF(*.tif)|*.tif|GIF(*.gif)|*.gif"<BR>        .ShowOpen<BR>        If Not .FileName = "" Then<BR>            '从数据集中创建栅格图层<BR>            Set RDataset = AddRasterLayer(Left(.FileName, Len(.FileName) - Len(.FileTitle) - 1), .FileTitle)<BR>            pRLayer.CreateFromDataset RDataset<BR>            '添加栅格图层到地图中<BR>            frmmain.MapControl1.AddLayer pRLayer<BR>            shp_Title = .FileTitle<BR>            shp_Name = .FileName<BR>        End If<BR>    End With<BR>End Sub</P>
<P><BR>Public Function AddRasterLayer(sDir As String, sFileName As String) As IRasterDataset<BR>'添加栅格数据到mapcontrol控件中,还没有完善。。。<BR>    ' sPath: 输入图像文件的路径<BR>    ' sFileName: name of the raster dataset<BR>On Error GoTo ErrorHandler<BR>    ' 创建栅格工作空间<BR>    Dim pWF As IWorkspaceFactory<BR>    Dim pWs As IWorkspace<BR>    Dim pFW As IRasterWorkspace<BR>    Dim pDataset As IDataset<BR>    Dim pRDataset As IRasterDataset<BR>    <BR>    Set pWF = New RasterWorkspaceFactory<BR>    ' 输入图像文件的路径<BR>    Set pWs = pWF.OpenFromFile(sDir, 0)<BR>    ' QI<BR>    Set pFW = pWs<BR>    ' 输入图像文件的名字<BR>    Set pRDataset = pFW.OpenRasterDataset(sFileName)<BR>    Set AddRasterLayer = pRDataset<BR>    ' 释放内存<BR>    Set pRDataset = Nothing<BR>    Set pDataset = Nothing<BR>    Set pFW = Nothing<BR>    Set pWs = Nothing<BR>    Set pWF = Nothing<BR>    Exit Function<BR>ErrorHandler:<BR>    Set AddRasterLayer = Nothing<BR>End Function</P>
举报 回复(0) 喜欢(0)     评分
quzongshun
路人甲
路人甲
  • 注册日期2007-10-15
  • 发帖数9
  • QQ
  • 铜币115枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-01-08 15:17
我支持你哦 谢谢
举报 回复(0) 喜欢(0)     评分
dabao1983
路人甲
路人甲
  • 注册日期2009-06-07
  • 发帖数3
  • QQ
  • 铜币115枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2009-12-16 19:50
<P>支持</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部