1
ST_IntersectsとLINESTRINGの縮退
PostGISには、(極を表す)LINESTRING Zオブジェクトの束があり、(POLYGONによって表される)エリア内にあるものを見つけたいと思います。この演習では、ポールがほぼ垂直であると想定して、エリアの境界と交差しないようにします。 問題は、ポールが正確に垂直になることがあるということです。 私がしたいこのクエリは成功しません: SELECT ST_Intersects(ST_GeomFromText('LINESTRING Z (544483.525 6849134.28 104.1098,544483.525 6849134.28 114.6)',28356), ST_GeomFromText('POLYGON((543907.636214323 6848710.84802846,543909.787417164 6849286.92923919,544869.040437688 6849283.30837091,544866.842236582 6848707.22673193,543907.636214323 6848710.84802846))',28356)); いくつかの亜種を調査して、これは成功します: SELECT ST_Intersects(ST_GeomFromText('POINT (544483.525 6849134.28)',28356), ST_GeomFromText('POLYGON((543907.636214323 6848710.84802846,543909.787417164 6849286.92923919,544869.040437688 6849283.30837091,544866.842236582 6848707.22673193,543907.636214323 6848710.84802846))',28356)); これは成功しません: SELECT ST_Intersects(ST_GeomFromText('LINESTRING (544483.525 6849134.28,544483.525 6849134.28)',28356), ST_GeomFromText('POLYGON((543907.636214323 6848710.84802846,543909.787417164 6849286.92923919,544869.040437688 6849283.30837091,544866.842236582 6848707.22673193,543907.636214323 6848710.84802846))',28356)); 3DIntersectsクエリを実行すると、成功します。 SELECT ST_3DIntersects(ST_GeomFromText('LINESTRING Z (544483.525 6849134.28 104.1098,544483.525 6849134.28 114.6)',28356), …