google 地图放置位置有一定距离

google map placing locations with some distance

我是 ROR 和 Google 地图的新手。我需要在 Google 地图中放置一些标记(在数据库中有纬度和经度)。

问题是我需要 select 一些具有随机距离的点。

简而言之,我需要 select 位置并将其放置在地图中,每个点必须有 100 米的距离。

如果该位置与任何其他点在100米范围内,则可以忽略。我需要从数据库中放置 10 个点。

有什么方法吗?

假设您需要从数据库中查找距离数据库中所有其他点至少 100 米的点:

这是一个相当简单的问题。可以将其可视化为一个 nxn 矩阵,点设置为行和列。在 Python 中,比较所有距离如下所示:

selected = []
for pt1 in pts:
  inRange = True
  for pt2 in pts:
    if pt1.distanceTo(pt2) < 100:
      inRange = False
      break
  if inRange:
    selected.append(pt1)

此函数遍历整个点列表。对于每个点,它检查从当前点到所有其他点的距离。如果所有其他点都在 100 米之外,它会将点添加到数组中。

距离公式见haversine公式 here代码形式

由于您没有在问题中指定语言,我会让您将其翻译成您需要的任何语言。这只是伪代码,因为没有提供足够的细节来用实际代码回答您的问题。

另外,如果我误解了你的问题,你可以通过某种方式调整这个算法。仅供参考。