重新排列彼此靠得太近的点
Rearrange Points that are too near to each other
我的情况是,我在静态地图图像上动态定位一堆图标,每个图标都通过CSS绝对定位。现在经常发生的情况是,两个甚至多个点彼此靠得太近,因此图标重叠,不再可区分。
我正在寻找一种算法来找到这些"彼此太近"的点,然后以一种不再相互重叠的方式展开它们的图标。
我正在考虑径向扩散,例如找到所有太近的点的平均中间点,然后相对于该点展开它们。
对于这样的问题,您是否知道任何模式?
提前非常感谢。
以下是一些可能解决您问题的解决方案:
-
使用最近点对问题的解决方案来查找彼此最近的两个图标。 如果根据您的定义,最接近的一对"太近",您可以将它们彼此分开并重复此过程。
-
使用 k-d 树或 R 树等空间数据结构来存储所有点。 然后,您可以执行快速最近邻搜索,以查找彼此靠近的点并将其分开。
-
使用力导向布局算法查找全局最小化某些能量函数的点的布局。 像Fruchterman-Reingold这样的算法非常简单地编码并产生良好的结果。
希望这有帮助!
相关文章:
- 如何删除多行HTML排列中的空白
- 重新排列HTML元素的顺序并更改内容
- 如何使用排列运算符来获取具有命名参数的函数的所有参数
- 从数组中删除重复条目,并在javascript中按顺序排列
- 使用CSS从下到上排列元素
- 我可以't在Divs中获得3个twitter小部件,以便并排排列
- Javascript从数组中随机选择并按字母顺序排列
- 如何在php中按元素按字母顺序排列json文件
- Javascript/jQuery:如何从数组的项中获取排列
- 如何在方向更改时重新调整/排列布局(Apache Cordova)
- 有没有比在本例中使用matchMedia更聪明的方法来重新排列页面元素
- 如何根据 js 中每个单词的第 n 个字母按字母顺序排列列表
- 响应式列表,可在浏览器缩小时重新排列
- Javascript将生日按数组顺序排列
- 比较两个JSON数组并重新排列新的JSON数组格式
- 允许用户在HTML页面上重新排列排列的图像
- 阵列排列排列
- Javascript为jquery选择器重新排列数组
- 砌体重新排列,同时仍然调整大小
- 允许用户重新排列 Django 管理站点中的条目,以及如何存储新的自定义顺序以在页面刷新中幸存下来