我正在处理一大堆存储位置的实体。它们显示在地图上。我正在尝试提出一种有效的方法,当从更高的位置查看时,将附近的实体分组到一个实体中。因此,例如,如果你非常高,当向下看时,你会看到一个实体代表一个区域中一组位置很近的实体。在足够接近的位置进行缩放会将该实体拆分为其包含的实体。
这样做有效吗?我考虑过根据高度将视图折叠起来,然后根据位置将实体拖放到网格框中,然后渲染框的点。我唯一担心的是,如果所有实体都在该框的右上角,则表示它们的实体可能位于中间而不是实体组的位置。
有什么想法或想法吗?
答案 0 :(得分:1)
如果您将实体预先分配到实体组中,或者某个“视野”中的所有实体都自动在“组”中,那么您可以使用以下内容为实体组分配“位置” “质心”算法,有效地纬度只是所有包含纬度的平均值,对于经度也是如此...对于两个维度,将em加起来除以计数......
如果您希望算法“创建”分组,那么当“两个候选组”中有两个候选组时,您需要指定一些业务规则来决定实体应该属于哪两个或更多个潜在组。查看“从你正在进行计算的高度。
答案 1 :(得分:1)
我认为植绒可以帮助在这里创建这些群体。因为看起来不同的实体想要相互聚集应该成为一个群体的一部分。
http://arxiv.org/abs/math?papernum=0502342
http://flashorbit.com/?page_id=40
计算鸡群时,“Boids”似乎在同一个街区。 http://www.red3d.com/cwr/boids/答案 2 :(得分:1)
我相信你要找的是一个“聚类算法”。有很多可用的。一个好的开始可能是K-means Algorithm。最终,虽然听起来你想要某种分层聚类算法。