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

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

楼主#
更多 发布于:2007-12-26 14:06
内容摘要
这个文档显示怎么样使用IRaster::CreateFromDataset方法来添加一个JPEG图像到ArcMap中。
过程描述
1 打开ArcMap, 并打开Visual Basic Editor.
2 在工程浏览窗口,展开Project.mxt,选择ArcMap Objects>ThisDocument,右键并选择浏览代码。
在工程的ThisDocument代码模块中的代码将仅仅在现在的地图文档中使用。如果想存储你的代码在你的所有的地图文档中,那么使用Normal.mxt中的ThisDocument代码模块。
3 粘贴下面的代码到代码模块中:
Public Sub AddRasterLayer()

Dim pMxDocument As IMxDocument
Dim pMap As IMap
Dim pLayer As IRasterLayer
Dim pWF As IWorkspaceFactory
Dim pWs As IWorkspace
Dim pFW As IRasterWorkspace
Dim pDataset As IDataset
Dim pRDataset As IRasterDataset

Set pWF = New RasterWorkspaceFactory

' 输入图像文件的路径
Set pWs = pWF.OpenFromFile("C:Images", 0)

' QI
Set pFW = pWs
' 输入图像文件的名字
Set pRDataset = pFW.OpenRasterDataset("seb1.jpg")

' 创建数据集
Dim pRLayer As IRasterLayer
Set pRLayer = New RasterLayer
pRLayer.CreateFromDataset pRDataset

'添加栅格图层到地图中
Set pMxDocument = ThisDocument
Set pMap = pMxDocument.FocusMap
pMxDocument.AddLayer pRLayer

End Sub

4 关闭Visual Basic Editor并运行测试。
喜欢0 评分0
默认头像
路人甲
路人甲
  • 注册日期2009-06-07
  • 发帖数3
  • QQ
  • 铜币115枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-12-16 19:50

支持

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2007-10-15
  • 发帖数9
  • QQ
  • 铜币115枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-01-08 15:17
我支持你哦 谢谢
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-11-08
  • 发帖数8
  • QQ
  • 铜币125枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-12-26 14:12

Private Sub Menu_files_r_Click()
   ' 创建数据集
   Dim RDataset As IRasterDataset
   Dim pRLayer As IRasterLayer
   Set pRLayer = New RasterLayer
   
   With frmmain.CommonDialog1
       .FileName = ""
       .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"
       .ShowOpen
       If Not .FileName = "" Then
           '从数据集中创建栅格图层
           Set RDataset = AddRasterLayer(Left(.FileName, Len(.FileName) - Len(.FileTitle) - 1), .FileTitle)
           pRLayer.CreateFromDataset RDataset
           '添加栅格图层到地图中
           frmmain.MapControl1.AddLayer pRLayer
           shp_Title = .FileTitle
           shp_Name = .FileName
       End If
   End With
End Sub


Public Function AddRasterLayer(sDir As String, sFileName As String) As IRasterDataset
'添加栅格数据到mapcontrol控件中,还没有完善。。。
   ' sPath: 输入图像文件的路径
   ' sFileName: name of the raster dataset
On Error GoTo ErrorHandler
   ' 创建栅格工作空间
   Dim pWF As IWorkspaceFactory
   Dim pWs As IWorkspace
   Dim pFW As IRasterWorkspace
   Dim pDataset As IDataset
   Dim pRDataset As IRasterDataset
   
   Set pWF = New RasterWorkspaceFactory
   ' 输入图像文件的路径
   Set pWs = pWF.OpenFromFile(sDir, 0)
   ' QI
   Set pFW = pWs
   ' 输入图像文件的名字
   Set pRDataset = pFW.OpenRasterDataset(sFileName)
   Set AddRasterLayer = pRDataset
   ' 释放内存
   Set pRDataset = Nothing
   Set pDataset = Nothing
   Set pFW = Nothing
   Set pWs = Nothing
   Set pWF = Nothing
   Exit Function
ErrorHandler:
   Set AddRasterLayer = Nothing
End Function

举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部