【发布时间】:2018-08-04 05:11:50
【问题描述】:
我有一张充满与 GPS 坐标对应的标记的地图,表示为 PostgreSQL + PostGIS 数据库表,GPS 列使用“地理”类型。
如果你愿意的话,想象一下,在这些点的顶部有一个半透明的正方形,对应于 1x1 英里,以中心为基础,经常相互交叉。
我正在尝试确定此类“正方形”的最小数量及其 GPS 坐标,以便它们“覆盖”所有距离最近边界至少 25 米的标记。
如果它更容易,这些“正方形”的位置不必与任何标记的位置匹配。
这样做的目的是尝试显着减少对“待售房屋”服务的 API 请求数量,因为大多数位置彼此靠近,并且 API 占用 1x1 平方英里的“边界框”作为每次调用的输入。如果我能先弄清楚这些假想的“正方形”的去向,那么在基本相同的区域多次调用 API 可能会调用 1 或 2 次,这将是非常浪费的。
我感觉这被认为是一个“已知、常见且已解决”的问题,但到目前为止,我还无法弄清楚如何去做。
【问题讨论】:
-
把问题转过来:最小的正方形数是你想要的。创建一个完全对齐、不重叠的正方形网格,覆盖您想要的区域,然后使用它来进行 API 调用。
-
不清楚您的 API 应该如何工作。想象一下,你在服务器上有一个解决这个问题的方法,客户端如何在事先不知道所有位置的情况下知道要请求哪些方格?我认为你不能比@jsanalytics 建议的一般问题做得更好。如果您的问题更具体 - 提供更多详细信息(例如您想象的 API 签名及其在问题已经解决的情况下客户端的使用)
-
我完全不懂你们的cmets。你读过我的问题吗?我认为这很明显/暗示这必须是自动化的?地图上的标记会随着时间的推移而变化,这不是手动可以完成的。
-
没有人说手动操作...你做到了...! :)
-
回复前请阅读。