我是ROR和谷歌地图的新手。我需要在Google地图中放置一些标记(在数据库中有纬度和经度)。
问题是我需要选择一些随机距离的点。
简而言之,我需要选择位置并将其放置在地图中,地图必须与每个点保持100米的距离。
如果位置在任何其他点的100米范围内,则可以忽略它。我需要从数据库中获得10分。
有什么方法吗?
答案 0 :(得分:1)
假设您需要从数据库中找到距离数据库中所有其他点至少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米之外,则将该点添加到数组中。
对于距离公式,请以代码形式查看半正式公式 here。
由于您未在问题中指定语言,我将允许您将其翻译成您需要的任何语言。这只是伪代码,因为没有提供足够的细节来用实际代码回答你的问题。
另外,如果我误解了你的问题,你可以用某种方式调整这个算法。它只是提供一些想法。