我有一个地图点的数据库,我想限制显示一次最多显示50个点。当用户放大时,可能会显示更多的点。如何过滤空间数据
目前,我只是随机抽取结果集。这不是很好,因为可能有空白区域,当放大时突然显示一个点。
我的下一个想法是我可以创建一个10x5网格,并迭代结果。如果网格中的某个位置是空的,我会显示一个点。这解决了以前的问题,但也不能让用户了解集中区域的位置。而且,如果用户决定缩小到整个世界,这是非常缓慢的。
现在,我没有使用任何空间算法来排序数据。我的计划是先让它正常工作,然后快速完成。在RTress,kd-trees和quad-trees中稍微阅读一下,我找不到任何能帮助我选择样本的“智能”子集的东西。似乎应该有某种广度优先搜索能够很容易地解决这个问题。
我建议你搜索术语聚类算法,许多空间库实现它或有一些例子来实现它,例如http://openlayers.org/dev/examples/strategy-cluster-threshold.html – phipex 2014-08-25 19:39:27