YouTube | Facebook | X(Twitter) | RSS

Python を使用した高度なフィールド演算を ArcObjects から実行する方法

2016/9/1 (木)

''' <summary>
''' Pythonを使用した高度なフィールド演算をArcObjectsから実行する方法
''' </summary>
''' <param name="Table"></param>
''' <param name="Field"></param>
''' <param name="Expression"></param>
''' <param name="CodeBlock"></param>
''' <returns></returns>
''' <remarks></remarks>
Private Function CalculateField(ByVal Table As Object, ByVal Field As String, ByExpression As String, ByVal CodeBlock As String) As IGeoProcessorResult2
    ''例
    'Table = "C:\Temp\GDB.gdb\Table"
    'Table = pFeatureClass
    'Field = "TheField"
    'Expression = "calEnvelopeXMax(!Shape!)"
    'CodeBlock = _
    '    "def calEnvelopeXMax(Shape):" & vbNewLine & _
    '    "  return Shape.extent.XMax"
 
    Dim pGP As IGeoProcessor = New GeoProcessor
    Dim pVariantArray As IVariantArray = New VarArray
    pVariantArray.Add(Table)                            'in_table
    pVariantArray.Add(Field)                            'field
    pVariantArray.Add(Expression)                       'expression
    pVariantArray.Add("PYTHON_9.3")                     'expression_type
    pVariantArray.Add(CodeBlock)                        'code_block
 
    Dim pGeoprocessorResult As IGeoProcessorResult2 = Nothing
    Try
        pGeoprocessorResult = pGP.Execute("CalculateField_Management", pVariantA, Nothing)
        Return pGeoprocessorResult
    Catch ex As Exception
        Return pGeoprocessorResult
    End Try
 
End Function
  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

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