YouTube | Facebook | Twitter  Feed

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

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

関連記事

  • この記事を書いた人

羽田 康祐

Esri認定インストラクター、GIS上級技術者、測量士補、潜水士。GISy / GISc とその関連分野である地理学・地図学について日々の出来事で学んだ記憶を記録するためにブログを書いています。行動原理は伊達と酔狂。好きな地形は圏谷。好きな地図投影法はパースクインカンシャル図法。呉市生まれ広島市出身。GIS を使った自己紹介はこちら

-プログラミング, ArcGIS
-,

© 2020 WINGFIELD since1981