DbGeography POLYGON - 增加x公里的尺寸

时间:2014-08-23 02:54:41

标签: sql-server entity-framework gis

所以我有一个多边形表示一个矩形边界框,用一公里的单位系统覆盖一个lat / lng坐标的地理位置。

用户不希望应用程序找到边界框内的所有匹配对象+距离任何边缘外10公里。在框中查找对象很好,但是如何在指定的公里数范围内将它扩展到所有4个边?

更新

使用以下解决方案,并提供以下观察结果: 要使边界框展开,需要使用负数。紫色的盒子在缓冲之后。绿色框是原始边界框。红色框是原始视口。

我相信SQL中的结果也是错误的方向,因为它在伦敦等地找到结果。也许是EF中的一个错误,因为我必须反转lat和lng值才能让Google地图以正确的方式绘制这个多边形。

enter image description here

1 个答案:

答案 0 :(得分:0)

看看STBuffer method。它会是这样的:

declare @g geography;
--set @g to your bounding box here
set @g = @g.STBuffer(10000);

select *
from dbo.yourTable
where @g.STContains( yourGeographyColumn );