D3中的最近邻搜索

9

我已经在Javascript中实现了一个2维的k-d树在GitHub上查看),并且我正在与D3一起使用它进行最近邻搜索。

我发现D3中有一个四叉树实现,但是API文档很少,Google搜索也无果。如果可能的话,我宁愿使用一个经过充分验证的库而不是自己重新发明轮子。

如何使用D3的四叉树执行最近邻搜索?对于最近邻,我的意思是:

  • 用二维点填充四叉树
  • 查找四叉树中离一个新点最近的点,该点不一定存在于四叉树中

纯粹出于好奇,你在使用JS K-D树做什么? - Sajjan Sarkar
@Sajjan 我在一个<svg>中有<circle>,当鼠标移动时,最靠近鼠标位置的圆圈会被突出显示。这非常流畅,并且可以很好地缩放,因为在二维K-D树中进行最近邻搜索的时间复杂度是O(log n)。 - Jacob Marble
太棒了!如果您的代码不是专有或私人的,能否分享一下呢?我认为我可以从中学到很多东西。 - Sajjan Sarkar
@SajjanSarkar添加了一个链接到我的问题内容,请享受! - Jacob Marble
1个回答

6

刷选演示实际上并没有找到最近的邻居,而是找到包含在给定矩形中的四叉树点。(尝试刷选一个空矩形,并不一定访问其最近的邻居。)

我派生了一个示例,可以高效地找到四叉树中任意点的最近邻居-请参见http://bl.ocks.org/patricksurry/6478178


Leaflet.js地图上是否可以使用纬度和经度进行最近邻搜索? - gkuhu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接