【问题标题】:Geospatial search: varying radius receptors and fixed event point地理空间搜索:可变半径受体和固定事件点
【发布时间】:2016-06-29 04:11:45
【问题描述】:

问题的根源:

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

我想以线性时间计算所有具有包含事件点的接收区域的受体。

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

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

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

【问题讨论】:

    标签: search coordinates geospatial spatial-index


    【解决方案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)
    

    希望对你有用。

    【讨论】:

    • 似乎 ms sql 实现了我需要的东西:空间索引和曲面细分。我缺少的是具体条款。
    猜你喜欢
    • 2019-10-25
    • 2013-02-23
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 2015-01-12
    相关资源
    最近更新 更多