我有时会制作地图册以显示兴趣点。使用常规网格创建页面的第一步:
我不喜欢该解决方案,因为a)有些页面上的单点(例如第25页)位于边缘,并且b)太多的页面。
第一个问题很容易使用代码来解决,-将页面范围的矩形移动到相关点范围的中心:
我仍然不喜欢它,因为页面数保持不变,所以看起来非常拥挤。请记住,它们最终都是多份报告!的实际A3纸页。
因此,我编写了减少页数的代码。在此示例中,从45到34。
我不确定这是否可以达到最佳结果,
什么是最好的策略(伪代码,出版物,Python库),请通过点排序以最小化给定大小的矩形以捕获所有点的数量?当然,有人在游戏理论,军事艺术或捕鱼业中发现了它
这是原始问题的更新:
这显示了所需的实际范围和页面大小:
放大显示164页中的10页:
矩形大小只要保持在限制范围内即可更改,即可以较小。
2
在我看来,常规网格是最佳选择。地图读者期待这样的事情,因为他们已经习惯了。我认为其他选择比较拥挤,令人困惑。当然,有优化的算法可以满足您的需求,但是我认为您的听众不会欣赏它们。但是+1是因为我感谢您正在尝试做的事情。最后,减少页数的一种方法是更改缩放比例。
—
Fezter
我大都同意Fezter。在某些情况下,非连续的地图册会占据一席之地,我很想知道答案(即使您要共享也可以查看当前代码)。例如,一本足迹书,您希望每个足迹都在其自己的地图上并且不关心显示其他足迹(尽管您可能仍希望使用较小比例的单个地图,以相对位置显示所有足迹)。只是看着你的示例图像,我认为在这种情况下,你会希望页面之间的连续覆盖,即使这意味着演员,除非该点具有内在的分组特性。
—
克里斯·W
@Fezter,当页面大小与总范围相当时,常规网格有效,此处和比例更改都不是这种情况
—
FelixIP
@ MichaelMiles-Stimson,我使用Avenue完成的操作在Python中是可行的。之所以使用前者,是因为在几何游戏中前者仍然优越。选择点,找到最近的曼哈顿距离邻居,创建多点,获取范围。如果超出范围则退出。已从原始列表中删除分组,其余部分继续进行。我认为排序顺序很重要,因此尝试更改。差别不大...
—
FelixIP
是的,它在Python中花费了大量精力才是可行的。在处理几何时,我更喜欢C#中的ArcObjects。正如克里斯所说,他们看上去已经非常微不足道了,为什么不坚持自己所拥有的并称之为完成。
—
Michael Stimson