使用sql判断一个点的半径是不是与另一点的半径相交

Posted

技术标签:

【中文标题】使用sql判断一个点的半径是不是与另一点的半径相交【英文标题】:Use sql to find out if the radius of one point intersects the radius of another point使用sql判断一个点的半径是否与另一点的半径相交 【发布时间】:2015-02-18 09:32:21 【问题描述】:

我已经将位置存储在数据库(SQL 服务器)中,它们的位置被声明为地理,另一列声明它的半径。 将地理(或经度/纬度)作为参数我想获得半径与参数半径相交的位置(一个常数值)作为回报。

感谢任何有关如何解决此问题的信息。

【问题讨论】:

Finding a geography point within a range of another - SQL Server 的可能重复项 【参考方案1】:

首先请注意,当且仅当半径之和大于两点之间的距离时,半径才会相互交叉。

我对语法不太熟悉,但您想要这样的东西 - 我正在使用 Transact SQL 地理数据类型的 STDistance 函数。

SELECT * FROM TABLE
WHERE TABLE.RADIUS + @radius >= @geog.STDistance(TABLE.GEOGRAPHY);

【讨论】:

以上是关于使用sql判断一个点的半径是不是与另一点的半径相交的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB:如何确定 GeoJson LineString 和具有半径的点的交集

查找具有重叠地理点的半径的地理点

如何在一个点的半径内显示邮政编码的结果

BigQuery SQL / GIS:扩展半径直到计数大于/等于“N”

检查一个 geohash 是不是与另一个 geohash 相交

1068.球的半径和体积