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