2013-07-10 73 views
0

这个几何点如何与多边形不相交?我知道这个点存在于给定的多边形中。任何它返回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

你有没有尝试相交多边形,其位于的一个点边缘? Iam对结果感兴趣。 – gartenabfall

回答

2

我不熟悉SQL符号,所以我可能是大错特错,但我看你的X值似乎与纬度43N相关,与Y经度79W。但是,您的POINT条目可能会颠倒?

0

只是一个想法:一个点何时与一个多边形相交?如果它位于多边形的内部?不。只有它直接位于多边形的一条边上,对吗?
试试这个:将一个点与多边形相交,该多边形直接位于多边形的一个边上。如果它返回其他0然后你有你的答案。

0

点应该声明为:

SET @point = geometry::STGeomFromText('POINT (43.640056 -79.393967)', 4326) 

然后相交显示你期待的结果:1

相关问题