我必须在屏幕上显示大量标签而不重叠。标签的位置应尽可能接近他们描述的特征。这些特征可以是屏幕上的点,线或多边形(想象各种地图)。 我必须满足在我的申请下列要求:如何避免重叠(重叠)标签?
- 标签必须被定位,以避免overposting(重叠)与其他标签
- 标签必须被定位,以避免与其它的特征重叠(多边形和线段)
- 用于标签最佳位置是上方和功能右侧它们描述
- 下方和右边是少可接受
- 至少可接受的位置向左
我需要想出一个方法来做到这一点。
在我刚开始试图随意做这件事之前,我希望这里有人可能已经这样做了,并且能够给我一些建议,从哪里开始。
基本上,与标签,我可以使用边界框来比较他们彼此。虽然我不知道这样做的好方法。在他们标记的线段和多边形屏幕上,我真的不知道我应该怎么做才能避免重叠。我希望在避免标签本身重叠的情况下不需要更多的努力。
如果我只需要处理与其他标签重叠的标签,我认为排斥会起作用。但是如果我在一半的屏幕上绘制了一条线段,我不知道如何避免与使用排斥技术的线段重叠。
我使用的语言是ActionScript 3和Flex框架。我不相信Flex有像Java Spring那样的布局管理器类可以为我做这个工作。
无论如何,链接或建议将受到欢迎。我可以允许一些暴力行为;否则我不知道我能做到这一点。谢谢!
PS我相信这个问题的技术术语是“overposting”。
我可以问为什么你需要这样做? – 2011-05-18 14:03:52
当然。这是一张地图。可视区域是动态的。地图要素的位置是唯一提供的数据。但是必须显示标签来描述这些特征(特征可能是点,线或多边形)。显示标签的规则如上所述。 – jpwrunyan 2011-05-18 23:51:39
您是否真的有那么多标签需要避免重叠?似乎太多的信息在屏幕上显示。这就像说当你在谷歌地图上搜索,它不会添加标记,但信息气泡,以及所有他们... – 2011-05-19 03:26:26