1

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

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

4

1 回答 1

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));

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

于 2013-05-31T21:40:28.417 回答