所以我有一个多边形表示一个矩形边界框,用一公里的单位系统覆盖一个lat / lng坐标的地理位置。
用户不希望应用程序找到边界框内的所有匹配对象+距离任何边缘外10公里。在框中查找对象很好,但是如何在指定的公里数范围内将它扩展到所有4个边?
更新:
使用以下解决方案,并提供以下观察结果: 要使边界框展开,需要使用负数。紫色的盒子在缓冲之后。绿色框是原始边界框。红色框是原始视口。
我相信SQL中的结果也是错误的方向,因为它在伦敦等地找到结果。也许是EF中的一个错误,因为我必须反转lat和lng值才能让Google地图以正确的方式绘制这个多边形。
答案 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 );