0

Polyline と Point FeatureClass があります。以下のように、IPolyline5 の FromPoint と ToPoint の両方のポイント レイヤーにポイント フィーチャを作成します。

IFeature pointFeature1 = pointFeatureClass.CreateFeature ();
pointFeature1.Shape = polyline.FromPoint;
IFeature pointFeature2 = pointFeatureClass.CreateFeature ();
pointFeature2.Shape = polyline.ToPoint;

その後、次のような方法で始点ジオメトリと終点ジオメトリの両方を実行して、ポリライン フィーチャクラスから交差するすべてのポリライン フィーチャを見つけます。

ISpatialFilter filter = new SpatialFilter ();
filter.Geometry = pointGeometry;
filter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
IFeatureCursor cursor = lineFeatureClass.FeatureClass.Search (filter, false);

少なくとも、インターセクト フィルタは、2 つのポイントを取得したポリラインを検出する必要があります。奇妙なことに、FromPoint では機能しますが、ToPoint では機能しません。

どちらのフィーチャクラスも、同じ地理座標系と投影座標系を使用しています。

私は愚かなことをしているといいのですが、何がわからないのですか。

4

3 に答える 3

0

既存の機能から新しい機能を作成する場合は、直接参照ではなく、ShapeCopyを使用する必要があります。最初のブロックを次のように変更してみてください。

pointFeature1.Shape = polyline.FromPoint.ShapeCopy;
pointFeature2.Shape = polyline.ToPoint.ShapeCopy;
于 2012-02-08T09:19:11.917 に答える
0

ポイントを 0.001 バッファリングするだけで、esriSpatialRelIntersects と一貫して動作するようになりました。

于 2012-02-08T06:36:42.447 に答える