YouTube | Facebook | Twitter  Feed

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

関連記事

  • この記事を書いた人

羽田 康祐

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

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

© 2020 WINGFIELD since1981