我有位置存储在数据库(SQL-server)中,它们的位置被声明为地理位置,另一列声明它的半径。
给出地理(或经度/纬度)作为参数我希望得到半径与参数半径(一个常数值)相交的位置。
有关如何解决此问题的任何信息表示赞赏。
答案 0 :(得分:0)
首先请注意,当且仅当半径之和大于两点之间的距离时,半径才会相互拦截。
我不熟悉语法,但你想要这样的东西 - 我正在使用Transact SQL地理数据类型的STDistance函数。
SELECT * FROM TABLE
WHERE TABLE.RADIUS + @radius >= @geog.STDistance(TABLE.GEOGRAPHY);