2

私はこの2つのジオメトリを持っています:

StreamGeometry geo1 = Geometry.Parse("M590202.895,5958727.621L590280.305,5958747.961L590337.012,5958762.785L590337.172,5958763.234L590337.412,5958763.914L590280.065,5958748.931L590241.24,5958738.726L590202.576,5958728.98z");

このように見える

ジオ1

StreamGeometry geo2 = Geometry.Parse("M590241.24,5958738.726L590280.195,5958748.551L590337.172,5958763.234L590337.412,5958763.914L590280.065,5958748.931L590241.24,5958738.726z");

次のようになります。 ジオ2

GIS システムでこれらのオブジェクトを見ると、右上隅にgeo2完全に含まれています。geo1

両方のジオメトリを一緒に

両方の交点を取得すると

PathGeometry intersection = PathGeometry.Combine(geo1, geo2, GeometryCombineMode.Intersect, null);

私は得る

{F1M590241,25;5958738,5L590280,1875;5958748,5 590332,3125;5958762 590337;5958763 590337,1875;5958763 590337,4375;5958764 590280,0625;5958749 590241,25;5958738,5z}

これは非常に奇妙に見えます:

ここに画像の説明を入力

詳細には、イライラする矛盾があります。たとえば、右端の赤いマークのintersectionジオメトリは、私が期待していたものとはまったく異なります。

右上隅の不一致

Combineさまざまな許容値で試しましたが、結果に影響はありませんでした。

ここで何がうまくいかないのですか?

*更新* @Sinatrが想定していたようにジオメトリを閉じ、最初のものの左側の部分を省略して単純化しました。どちらも結果には影響しません。

4

1 に答える 1

0

この問題についてマイクロソフトと連絡を取り合っています。ここでの問題は、WPFGeometryオブジェクトが視覚化のために設計されていることです。そのため、ここで行ったように非常に大きな座標を処理することはできません。推奨される方法は、SqlGeometryを使用することです。そこでは良い結果が得られています。

于 2015-06-16T07:38:56.850 に答える