3

我正在使用 PHP 开发约会应用程序:我的应用程序有一个搜索页面,可以在距离某人位置一定距离内搜索合适的用户配置文件(需要指定要搜索的英里/公里数)。

我理解实现这一点的逻辑(参考:Get Nearest places on Google Maps, using MySQL spatial data),只是不确定我在哪里可以获得存储来自世界各地的每个位置的地理位置的数据库。这是免费提供的吗?如果可用,也有兴趣查看高级版本。

还关心查询搜索速度。在如此庞大的数据库中进行搜索会花费一些开销,解决此问题的最佳方法是什么?

任何建议高度赞赏。

最好的问候, 塞尼尔

4

1 回答 1

1

听起来很简单……你向用户询问他的地址,然后像这样向谷歌地图 API 请求经度和纬度

http://maps.googleapis.com/maps/api/geocode/json?address=San+Stefano+1+Sofia&sensor=false

并将它们写入数据库。

当用户搜索附近的人时

编辑(不会是一个圆圈,但它会完成这项工作):

SELECT * FROM `users` AS u
WHERE u.lat IS BETWEEN {$my_lat-100} AND {$my_lat+100}
AND u.alt IS BETWEEN {$my_alt-100} AND {$my_lat+100}

就像你提到的帖子一样。

于 2011-04-05T13:45:17.403 回答