ジオメトリデータをジオメトリに変換したくないので、STIntersectでtrueを返します。ここでポリゴン内のSQLジオメトリポイントがSTIntersectでtrueを返さない(しかし、ジオメトリを使用してtrueを返す)
は、SQLのコードされています(0)、しかし、私が使用している場合
DECLARE @point GEOGRAPHY = GEOGRAPHY::Point(1, 1, 4326)
DECLARE @polygon GEOGRAPHY = GEOGRAPHY::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 4326)
SELECT @polygon.STIntersects(@point), @point.STIntersects(@polygon)
次はfalseを返しますが:それはtrueを返す
DECLARE @point GEOMETRY = GEOMETRY::Point(1, 1, 4326)
DECLARE @polygon GEOMETRY = GEOMETRY::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 4326)
SELECT @polygon.STIntersects(@point), @point.STIntersects(@polygon)
、私が行方不明です何かがあるのでしょうか?私が知っているのは、地理学は3D平面であり、ジオメトリはフラットマップですが、ポイントがポリゴンにある場合は、計算にアースを使用しています。
PS:それはこの作品のMicrosoft SQL Server 2012の
ありがとう、私のために働いた。 – MilkTea027
これは_left-hand_ルールを説明する素晴らしいブログエントリです:http://danielwertheim.se/2012/12/03/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position- no/ たとえば、ポイントがポリゴンのすべての行の_left_にある場合、そのポリゴンに_交差します。 – bounav
左のルールを説明する上のブログ記事のURLは、次のとおりです。http://danielwertheim.se/sqlgeography-in-sql-server-2012-polygon-must-start-on-correct-position-no/ – Daniel