Attribute VB_Name = "Module_Feature2Raster" Option Explicit '********************************************************************* ' 定義 :fncCreateRaster(valIndex As Integer, valFieldName As String, ' valCellSize As Double, valRasterFormat As String, ' valOutputFilePath As String, valOutputFilename As String) ' 概要 :フィーチャをラスタに変換(エクステンションライセンス不要) ' 第1引数 :IFeatureLayer 'フィーチャレイヤ ' 第2引数 :String 'フィールド名 ' 第3引数 :Double '出力セルサイズ ' 第4引数 :String '出力ファイルパス ' 第5引数 :String '出力ファイル名 ' 第6引数 :String Optional '出力フォーマット(オプション) ' 戻り値 :IRasterLayer 'ラスタレイヤ ' 更新履歴 :2006/01/11 新規作成 '********************************************************************* Function fncCreateRaster(pFeatureLayer As IFeatureLayer, valFieldName As String, _ valCellSize As Double, valOutputFilePath As String, valOutputFileName As String, _ Optional valRasterFormat As String) As IRasterLayer '出力フォーマットが指定されていない場合はESRI GRIDで出力 If valRasterFormat = "" Then valRasterFormat = "GRID" End If 'フィーチャクラスの取得 Dim pFeatureClass As IFeatureClass Set pFeatureClass = pFeatureLayer.FeatureClass 'フィーチャクラスディスクリプタの作成 Dim pFeatCDr As IFeatureClassDescriptor Set pFeatCDr = New FeatureClassDescriptor pFeatCDr.Create pFeatureClass, Nothing, valFieldName 'ConversionOpオブジェクトの作成 Dim pConvOp As IConversionOp Set pConvOp = New RasterConversionOp '出力ラスタセルサイズの設定 Dim pRAEnv As IRasterAnalysisEnvironment Set pRAEnv = pConvOp pRAEnv.SetCellSize esriRasterEnvValue, valCellSize Dim pWSF As IWorkspaceFactory Set pWSF = New RasterWorkspaceFactory Dim pRWS As IRasterWorkspace Set pRWS = pWSF.OpenFromFile(valOutputFilePath, 0) Dim pRasterDataset As IRasterDataset Set pRasterDataset = pConvOp.ToRasterDataset(pFeatCDr, valRasterFormat, pRWS, valOutputFileName) 'ラスタレイヤの追加 Dim pRaster As IRaster Set pRaster = pRasterDataset.CreateDefaultRaster Dim pRasterLayer As IRasterLayer Set pRasterLayer = New RasterLayer pRasterLayer.CreateFromRaster pRaster Set fncCreateRaster = pRasterLayer End Function
フィーチャをラスターに変換
2016/9/1 (木)