地理空间搜索:不同半径的受体和固定事件点

时间:2016-03-14 07:57:17

标签: search coordinates geospatial spatial-index

问题所在:

  • 在地球上给定一点我们称之为“事件点”
  • 在地球上给出一定数量的其他点,我们称之为“受体”
  • 鉴于任何受体周围都有一个圆形区域,半径可变,我们称之为“接收区域”
  • 假设接收区域的半径可以以一组离散的大小[1,10,20,50,100,200]英里而变化

我想在线性时间内计算所有具有包含事件点的接收区域的接收器。

由于群集似乎是一种解决方案,我想知道各种解决方案,如MongoDB GeoSpatial,Postgree GIS,Mysql Geospatial和其他DBMS如何处理这个问题。

他们是否在内部使用群集?

无论如何: 对于这个问题,哪个是最好的“开箱即用”解决方案?

1 个答案:

答案 0 :(得分:1)

您的答案是什么?最佳解决方案是什么?'问题是"这取决于"。

对于SQL Server,空间数据功能的一个很好的概述是https://msdn.microsoft.com/en-us/library/bb933790.aspx

与您的问题相关的是空间索引:https://msdn.microsoft.com/en-us/library/bb895265.aspx

对于给出的示例,一个粗略的想法是为您的Receptors和EventPoint存储地理类型,然后在where子句中使用STContains函数。 https://msdn.microsoft.com/en-us/library/ff929274.aspx

某些伪SQL可能是:

DECLARE EventPoint Geography = ...
SELECT * FROM Receptors R WHERE R.Receptor.STContains(EventPoint)

希望这是有用的。