【问题标题】:K-Nearest Neighbors and MySql Geographical IndexK-Nearest Neighbors 和 MySql 地理索引
【发布时间】:2012-03-20 19:39:15
【问题描述】:

我在 mySql 数据库中有一组地理标记图片。您可以将 my Pictures 表视为:

create table `Pictures` (

location Point NOT NULL, 
timeCreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

SPATIAL INDEX(location)

)ENGINE= MyISAM DEFAULT CHARSET=utf8;

我打算根据图片的位置执行 K-Nearest Neighbor 算法。比如说,如果K=10,则选择地理上距离用户位置最近的10张图片。

感谢您的建议。

【问题讨论】:

  • 那里有什么限制吗?比如是一组固定的图片还是添加和删除的图片?
  • @Tim 图片由手机用户持续添加。
  • 您专门询问了 KNN。选择的答案 - 一个 hversine 公式与它无关。如果您想要最近的点,则必须完善您的问题。不好意思,我不确定你在问什么,我认为这可能会让正在寻找 KNN 的人感到困惑。

标签: mysql nearest-neighbor gis


【解决方案1】:

看看下面的链接。我相信它解决了与仅使用 MySQL 查询相同的问题(如果您的问题是找到离用户位置最近的 10 张图片)。

MySQL Great Circle Distance (Haversine formula)

我希望这可以帮助您解决问题。

【讨论】:

  • 使用半正弦公式意味着您必须计算所有点的距离。即使您只需要 10 个最近的点。
  • @ Jim Thio:我同意您需要考虑我发布的链接来计算所有点的距离。您能否为这个问题提供一个更好的工作解决方案?
  • 我的 sql 似乎没有。我正在搬到 mongodb。您可以通过先在小矩形中搜索来模拟它。如果 mysql 有一个命令可以这样做,那对我来说就足够了。
【解决方案2】:

不支持 KNN。

到目前为止,更恰当和准确的回答是neither MySQL nor MariaDB support KNN。虽然 PostGIS 是 PostgreSQL 的免费空间扩展。

【讨论】:

    猜你喜欢
    • 2021-06-12
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2021-12-16
    • 2016-03-28
    • 2018-04-14
    • 2020-07-16
    相关资源
    最近更新 更多