我应该在地图上显示一组标记以指示附近的兴趣点。这些标记将通过单击打开公共聊天室,因此我认为用户在进入该房间之前应该看到有关每个标记的简短地址信息,而无需单击标记。但是,如果我在这个意义上更改标记图标,一些标记可能会发生冲突,如下所示:
我想要做的是显示尽可能多的没有碰撞的标记,并用一个非常小的标记(如点)替换这些碰撞的图标(并且没有地址信息):
我通过执行 x 轴扫描算法来检测碰撞来获得这个结果,但不幸的是,如果一个标记在用户滚动地图后停止碰撞,或者它从屏幕上存在,或者另一个标记进入屏幕并开始与其他标记发生碰撞,或者用户滚动到一个全新的区域,.. 这个算法应该在每一个回合一次又一次地执行。为了消除大多数碰撞标记,我使用了 maps-utils 标记聚类,但我需要一种更艰苦的方法来克服这个问题。我考虑实现四叉树,但我不确定它是否是最好的方法。有什么建议吗?
例子: