我正在尝试制定最有效的查询来获取给定点半径内的点。结果不必非常准确,因此我更喜欢速度而不是准确性。
我们尝试使用 where 子句比较使用 STDistance 的点的距离,如下所示(其中 @point 和 v.GeoPoint 是地理类型):
WHERE v.GeoPoint.STDistance(@point) <= @radius
还有一个使用类似于此的 STIntersects:
WHERE @point.STBuffer(@radius).STIntersects(v.GeoPoint) = 1
这些查询中的任何一个是首选还是我错过了其他功能?