📄 module1.bas
字号:
Attribute VB_Name = "Module1"
Option Explicit
Public m_pApp As IApplication
Public pmxdoc As IMxDocument
Public pmap As IMap
Sub AddRasterLayer(sFileName As IRasterDataset)
'sFileName: the filename of the raster dataset
'sPath: the directory where the raster dataset resides
'Create a raster layer
Dim pRasterLy As IRasterLayer
Set pRasterLy = New RasterLayer
'This is only one of the three ways to create a RasterLayer object.
'If there is already a Raster or RasterDataset object, then
' method CreateFromDataset or CreateFromRaster can be used.
pRasterLy.CreateFromDataset sFileName
'下面的话在类模块中已经定义过了,在整理只要引用就可以了
' Dim pMxDoc As IMxDocument
'Set pMxDoc = ThisDocument
'Set pmap = m_pDoc.FocusMap
pmap.AddLayer pRasterLy
pmxdoc.ActiveView.Refresh
End Sub
Private Function GetName(sPath As String, iOption As Integer) As String
Dim pos As Long
pos = InStrRev(sPath, "\")
Dim fname As String
fname = Right(sPath, (Len(sPath) - pos))
Dim pName As String
pName = Left(sPath, pos - 1)
If iOption = 0 Then
GetName = pName
Else
GetName = fname
End If
End Function
Public Function GetRasterFromSDE(sServer As String, sInstance As String, _
sDB As String, sUser As String, sPassword As String, sSDERaster As String) As IRasterDataset
' sServer,sInstance,sDB,sUser,sPasswd: ArcSDE connection info
' sSDERaster: the ArcSDE raster dataset name
Dim pSDEWs As IWorkspaceName
Dim pSDEPropertySet As IPropertySet
Dim pSDERasterDataset As IRasterDataset
Dim pDsName As IDatasetName
Dim pName As IName
Dim sQualifiedName As String
' Get connection propertyset
Set pSDEPropertySet = New PropertySet
With pSDEPropertySet
.SetProperty "Server", sServer
.SetProperty "Instance", sInstance
.SetProperty "Database", sDB
.SetProperty "User", sUser
.SetProperty "Password", sPassword
.SetProperty "Version", "SDE.DEFAULT"
End With
' Get workspacename
Set pSDEWs = New WorkspaceName
pSDEWs.ConnectionProperties = pSDEPropertySet
pSDEWs.WorkspaceFactoryProgID = "esricore.sdeworkspacefactory"
' Get qualified ArcSDE raster name
'if Len(sDB) > 0 Then
' sQualifiedName = sDB + "." + sUser + "." + sSDERaster
'Else
sQualifiedName = sUser + "." + sSDERaster
'End If
' Get raster dataset name
Set pDsName = New RasterDatasetName
pDsName.Name = sQualifiedName
Set pDsName.WorkspaceName = pSDEWs
Set pName = pDsName
' Open ArcSDE raster dataset
Set pSDERasterDataset = pName.Open
' Cleanup
Set GetRasterFromSDE = pSDERasterDataset
Set pSDEWs = Nothing
Set pSDERasterDataset = Nothing
Set pSDEPropertySet = Nothing
Set pName = Nothing
Set pDsName = Nothing
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -