在sql spatial中获取相交的行

时间:2013-05-31 20:36:03

标签: sql-server spatial

我正在使用Entity Framework 5.0和sql server几何类型。 我试图找一个点,找到与该点的缓冲区相交的线,并满足某些属性要求。这可能吗?

我知道STIntersect方法,但这些方法似乎可以作为两个特征之间的比较。我有一个线数据集和一个点。所以我不知道我能得到多少结果。

1 个答案:

答案 0 :(得分:1)

您可以使用STBuffer几何方法获取点周围的区域并将其存储在变量中(或任何位置!)。从那里,您可以使用STIntersects来查明您的线路。像这样:

DECLARE @g geometry, @l geometry;
SELECT @g = geometry::STGeomFromText('POINT(0 0)', 0),
@l = geometry::STGeomFromText('LINESTRING(0 1, 4 0)', 0);

SELECT @g, @l, @g.STBuffer(1), @l.STIntersects(@g.STBuffer(1));

此外,如果你正在做地理空间的话,我对使用正确数据类型(地理与几何)的标准警告也是适用的。