3

マップ上にXレイヤーがあり、選択したレイヤー(1回に2つ)を交差させて、結果のフィーチャに色を付ける必要があります。

このコードを機能させようとしています

// get first feature (index 0)
ESRI.ArcGIS.ADF.Web.Geometry.Geometry adfFeature =
                m_firstLayer.GeometryFromRow(m_firstLayer.Rows[0]) 
as ESRI.ArcGIS.ADF.Web.Geometry.Geometry;

// THE FOLLOWING LINE RETURNS NULL
ESRI.ArcGIS.Geometry.IGeometry featureInterface = 
    adfFeature as ESRI.ArcGIS.Geometry.IGeometry;

ESRI.ArcGIS.Geometry.ITopologicalOperator topoOp = 
    adfFeature as ESRI.ArcGIS.Geometry.ITopologicalOperator;

ADF GeometryオブジェクトでIGeometryインターフェイスを使用するにはどうすればよいですか?

2つのレイヤー間でフィーチャを交差させるサンプルを実際に見つけることができません。また、空間結合が単なるArcGISデスクトップ関数であるのは残念です。確かに、それらを使用できます。

4

1 に答える 1

1

IGeometry を直接使用しているとは思いません。ただし、特殊なタイプ (ポイント、ポリライン、ポリゴン) がわかっている場合は、 ArcObject に変換できます(「Web ADF から ArcGIS Server ArcObjects へ」の箇条書きを参照)。

自分のサブタイプをテストし、ESRI.ArcGIS.ADF.Web.Geometry.Geometry adfFeatureそれに応じて変換を行うことができます。

ちなみに、「as」キャストはサイレントに失敗する可能性があるため (単に を返すだけnull)、絶対に使用しないことをお勧めします。代わりに私は提案します:

ESRI.ArcGIS.Geometry.IGeometry featureInterface = 
    (ESRI.ArcGIS.Geometry.IGeometry)adfFeature;

その後、問題が発生するとすぐに問題が表示されます。

于 2011-08-03T11:30:51.123 に答える