我正在使用CakePHP / mysql来构建我的应用程序,并且我正在尝试获取用户提供的地址周围给定英里范围内的城市列表。到目前为止,我有一个包含long / lat的数据库中所有美国城市的列表。我还使用CakePHP插件来获取插入数据库的所有地址的long / lat。
现在我该如何做最后一部分?我是google maps api的新用户,但看起来我每天查询的查询数量有限制。我能想到的唯一方法是检查地址的距离并将其与数据库中的每个城市进行比较,如果它在给定的半径内,则选择它们。这似乎是数据库密集型的,我会一次性通过我的查询配额。
有什么想法吗?
答案 0 :(得分:0)
听起来您正在尝试确定给定点(城市)是否位于以特定纬度/经度为中心的圆圈内。这是一个similar question。
在每个城市上运行一个循环,看它是否满足以下条件:
if((x-center_x) 2 +(y-center_y) 2 < = radius 2 )
如果这个太慢,你可以把它变成基于对纬度/经度进行舍入的查找。预先计算的值越多,就越接近准确。