为什么这个几何点不与多边形相交?我知道这个点存在于给定的多边形中。它返回0的原因是什么?
DECLARE @point geometry
DECLARE @poly geometry
SET @point = geometry::STGeomFromText('POINT (-79.393967 43.640056)', 4326)
DECLARE @minY varchar(20) = N'-79.37776573850101'
DECLARE @maxY varchar(20) = N'-79.41055306149906'
DECLARE @minX varchar(20) = N'43.63590433545648'
DECLARE @maxX varchar(20) = N'43.64460037532088'
DECLARE @boundingRect varchar(250)
SET @boundingRect = 'POLYGON((' + @minX + ' ' + @minY + ', ' +
@maxX + ' ' + @minY + ', ' +
@maxX + ' ' + @maxY + ', ' +
@minX + ' ' + @maxY + ', ' +
@minX + ' ' + @minY + '))'
SET @poly = geometry::STGeomFromText(@boundingRect, 4326)
SELECT @point.STIntersects(@poly)
答案 0 :(得分:2)
我不熟悉这种SQL符号,所以我可能会偏离基础,但我看到你的X值似乎与纬度43N相关,Y与经度79W相关联。但是,您的POINT条目可能会颠倒过来吗?
答案 1 :(得分:0)
只是一个想法:一个点何时与多边形相交?如果它位于多边形内?不可以。只有它直接位于多边形的一个边缘上,对吗? 尝试此操作:将点与多边形相交,该多边形直接位于多边形的一条边上。如果它返回else,则返回0,你有答案。
答案 2 :(得分:0)
该点应声明为:
SET @point = geometry::STGeomFromText('POINT (43.640056 -79.393967)', 4326)
然后,Intersect会显示您期望的结果:1