【问题标题】:Determine minimum number of "invisible squares" to cover all markers on a map?确定覆盖地图上所有标记的“不可见方块”的最小数量?
【发布时间】:2018-08-04 05:11:50
【问题描述】:

我有一张充满与 GPS 坐标对应的标记的地图,表示为 PostgreSQL + PostGIS 数据库表,GPS 列使用“地理”类型。

如果你愿意的话,想象一下,在这些点的顶部有一个半透明的正方形,对应于 1x1 英里,以中心为基础,经常相互交叉。

我正在尝试确定此类“正方形”的最小数量及其 GPS 坐标,以便它们“覆盖”所有距离最近边界至少 25 米的标记。

如果它更容易,这些“正方形”的位置不必与任何标记的位置匹配。

这样做的目的是尝试显着减少对“待售房屋”服务的 API 请求数量,因为大多数位置彼此靠近,并且 API 占用 1x1 平方英里的“边界框”作为每次调用的输入。如果我能先弄清楚这些假想的“正方形”的去向,那么在基本相同的区域多次调用 API 可能会调用 1 或 2 次,这将是非常浪费的。

我感觉这被认为是一个“已知、常见且已解决”的问题,但到目前为止,我还无法弄清楚如何去做。

【问题讨论】:

  • 把问题转过来:最小的正方形数是你想要的。创建一个完全对齐、不重叠的正方形网格,覆盖您想要的区域,然后使用它来进行 API 调用。
  • 不清楚您的 API 应该如何工作。想象一下,你在服务器上有一个解决这个问题的方法,客户端如何在事先不知道所有位置的情况下知道要请求哪些方格?我认为你不能比@jsanalytics 建议的一般问题做得更好。如果您的问题更具体 - 提供更多详细信息(例如您想象的 API 签名及其在问题已经解决的情况下客户端的使用)
  • 我完全不懂你们的cmets。你读过我的问题吗?我认为这很明显/暗示这必须是自动化的?地图上的标记会随着时间的推移而变化,这不是手动可以完成的。
  • 没有人说手动操作...你做到了...! :)
  • 回复前请阅读。

标签: math mapping postgis


【解决方案1】:

抱歉,您似乎不知道自己在做什么,只是在此处和在 PostGIS irc-channel 中表现得很粗鲁。

您没有提供有关您的 api 的信息。 什么在创建您的地图? 是 wms 服务还是什么?

大多数人会做的是使用切片缓存设置地图服务。然后地图服务将为您要显示的每个房屋(或多个房屋)挑选所需的瓷砖。

将准备好或动态创建图块。但它们会被缓存以备下次使用。

所以,我认为您应该阅读以下内容 地图服务器 马普尼克 地图缓存 大约 地理服务器

这不是一个完整的列表,但可能会给你一些关于你想要什么的想法

【讨论】:

    猜你喜欢
    • 2015-12-27
    • 2013-10-18
    • 2015-09-23
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 2016-04-26
    相关资源
    最近更新 更多