0
ポイントがポリゴン内にあるかどうかを判断しようとしています。戻ってきた結果は、ポイントが境界内にあるかどうかにかかわらず常に1を返すように見えます。SQL Geography Intersectは常に1を返します
DECLARE @point GEOGRAPHY = GEOGRAPHY::Point(54.2225,-4.5366, 4326)
DECLARE @polygon GEOGRAPHY = GEOGRAPHY::STGeomFromText('POLYGON((54.2826 -4.4420, 54.2904 -4.6564, 54.0467 -4.7031, 54.2826 -4.4420))', 4326)
SELECT @polygon.STIntersects(@point), @point.STIntersects(@polygon)
私はあなたが古典的な問題を抱えているローカル
答えをありがとう - それは多くの意味があります。私は現在次のコードを使用していますが、戻り値はまだ '0'です 'DECLARE @point GEOGRAPHY = GEOGRAPHY :: Point(54.1826、-4.5420,4326)--INSIDE --DECLARE @point GEOGRAPHY = GEOGRAPHY :: Point(57.1826、-3.5420、4326) - 外部 DECLARE @polygon GEOGRAPHY = GEOGRAPHY :: STGeomFromText( 'POLYGON((54.2826-4.4420,54.2904-4.6564,54.0467-4.7031,54.2826-4.4420))、4326 ) if @ polygon.EnvelopeAngle()= 180 \t @polygon = @ polygon.ReorientObject(); SELECT @ polygon.STContains(@point) ' – Braydie
これは大好きです:' POINT() 'メソッドは、あなたがポリゴンのために用意しているWKTとは逆の引数をとります!つまり、定義したように、緯度と経度を切り替えました。 'Select @ polygon.STPointN(1)。[Lat]、@point。[Lat]' –
ああ、私は決してそれを見つけられませんでした!再度、感謝します!私はポイントのctorで私のcoordsの順序を逆転したが、まだゼロになっているように見える...私の脳は今少しあいまいですが、私は正しいとは思わない.. ..? – Braydie