0

我正在开发一款 iOS 游戏,玩家的村庄会显示在大型王国地图上。每个村庄在该地图上都有 ax,y 位置,每个村庄都作为对象存储在服务器 (Parse.com) 上的数据库中。

我想要做的就是把当前玩家村庄周围的所有村庄都拉下来。通常这很简单,因为您只使用最短距离算法,但要使用它,我需要下载数据库中的所有村庄,然后对每个村庄运行算法,然后根据与玩家的距离对它们进行排序,这并不是一种快速/有效的方式。那么有没有人知道一种更精致/更有效的方式来完成上述操作?能够在对数据库的查询中实际上拉下当前玩家周围的村庄,可以说用一块石头杀死 2 只鸟,但我看不到任何方法,这将是很棒的。我怀疑答案可能在于在数据库中存储有关村庄位置的更多信息,

有任何想法吗?

我会留下这个问题,因为我仍然对如何用基本数学来做这件事感兴趣,曼哈顿距离方法应该没问题,但对于使用 Parse.com 的任何人来说,也许可以使用 geoPoints 吗?这是一个疯狂的想法,但我会尝试一下。

4

1 回答 1

1

您可以通过查询与约束 X - D < x 和 x < X + D 和 Y - D < y 和 y < Y + D.

然后,您可以根据需要在客户端上根据欧几里德距离进行进一步过滤。

于 2013-09-17T16:00:10.963 回答