ラスター ファイルからレイヤーを追加

 2016/9/1 (木)    

'パス・ファイル設定
Dim strPath As String
Dim strFile As String
strPath = "D:\Workspace\_Hobby\GPS2\Photo"
strFile = "P1200586.JPG"
 
'ラスタ ワークスペースへアクセス
Dim pWorkspaceFactory As IWorkspaceFactory
Set pWorkspaceFactory = New RasterWorkspaceFactory
 
Dim pRasterWorkspace As IRasterWorkspace
Set pRasterWorkspace = pWorkspaceFactory.OpenFromFile(strPath, Application.hWnd)
 
'ファイルの実体を取得
Dim pRasterDataset As IRasterDataset
Set pRasterDataset = pRasterWorkspace.OpenRasterDataset(strFile)
 
'QI
Dim pRasterBandCollection As IRasterBandCollection
Set pRasterBandCollection = pRasterDataset
 
 
'各バンドを取得(単一バンドの際は)
Dim pRasterBand() As IRasterBand
ReDim pRasterBand(pRasterBandCollection.Count - 1)
 
Dim i As Integer
For i = 0 To pRasterBandCollection.Count - 1
    Set pRasterBand(i) = pRasterBandCollection.Item(i)
Next i
 
'ラスタ レイヤの作成
Dim pRasterLayer As IRasterLayer
Set pRasterLayer = New RasterLayer
 
pRasterLayer.Name = strFile
 
pRasterLayer.CreateFromDataset pRasterDataset           '単一バンド・マルチバンドで追加
pRasterLayer.CreateFromDataset pRasterBand(0)           'マルチバンド内の単一バンドを追加
pRasterLayer.CreateFromFilePath strPath & "\" & strFile 'ファイルパス名で追加
 
'レイヤの追加処理
Dim pMxDocument As IMxDocument
Set pMxDocument = ThisDocument
pMxDocument.FocusMap.AddLayer pRasterLayer

Copyright© WINGFIELD since1981 , 2018 All Rights Reserved.