2

アークマップ用のカスタムツールをVB.Netで作成しようとしています。しかし、ISelectionSetのSearch()メソッドに渡されるFeatureCursorに問題があります。

これが私のコードの一部です:

    Dim pSelSet As ISelectionSet = provFSel.SelectionSet
    Dim provCursor As IFeatureCursor
    pSelSet.Search(spatialFilter, True, provCursor)
    Dim provFeature As IFeature = provCursor.NextFeature

Search()内のprovCursorの下に青い波線が表示され、「変数'provCursor'は、値が割り当てられる前に参照によって渡されます。実行時にnull参照例外が発生する可能性があります。」私はもう試した

    Dim provCursor As IFeatureCursor = New FeatureCursor

ただし、New FeatureCursorの下の波線は、「'ESRI.ArcGIS.Geodatabase.FeatureCursorClass.Friend Sub New()'は、'Friend'であるため、このコンテキストではアクセスできません」と表示します。私も試しました

    Dim provCursor As IFeatureCursor = Nothing

しかし、成功しませんでした。

すべてのデバッグ試行で、Arcmapが次のエラーでクラッシュしました:タイプ「System.NullReferenceException」の最初のチャンスの例外がMicrosoft.VisualBasic.dllで発生しました

誰かが私のコードの何が問題なのかを理解するのを手伝ってもらえますか?助けていただければ幸いです。

-槍兵

上記のコードまたは以前のコードでエラーが発生したかどうかは実際にはわかりません。したがって、サブプロシージャのコンテンツ全体を投稿します。

    Dim pPoint As IPoint = pMxDoc.CurrentLocation
    Dim provFSel As IFeatureSelection = provinceLayer

    Dim pGeom As IGeometry = pPoint.Shape
    Dim spatialFilter As ISpatialFilter = New SpatialFilter

    With spatialFilter
        .Geometry = pGeom
        .SpatialRel = esriSpatialRelEnum.esriSpatialRelWithin
    End With


    Dim pSelSet As ISelectionSet = provFSel.SelectionSet
    Dim provCursor As IFeatureCursor
    pSelSet.Search(spatialFilter, True, provCursor)
    Dim provFeature As IFeature = provCursor.NextFeature
4

1 に答える 1

0

試す:

pSelSet.Search(spatialFilter, True, out provCursor)
于 2013-01-03T15:19:32.297 に答える