2011-04-05 26 views
3

我工作在PHP中的约会应用: 我的应用程序有一个人的位置的一定距离内搜索合适的用户配置文件的搜索页面(需指定没有英里/。公里搜索)。找到我的城市的X英里内的人

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

也关注查询搜索速度。在这样庞大的数据库中搜索会花费一些开销,那么解决这个问题的最好方法是什么?

任何建议高度赞赏。

+1

你需要有你要搜索的数据。在您的应用中的含义,您的用户配置文件需要更新地理数据。 – Khez 2011-04-05 13:22:06

+0

看到问题的答案2283689和98449.他们在哪里可以找到地理编码信息。需要注意的是免费的商业版本(谷歌,雅虎,微软)都具有一些字符串在其许可协议,如必须配合使用地图显示和不能存储用于其他目的的结果。这可能仍然可以满足您的需求(我认为其中的一些可以将数据存储在地图中使用,但请确认特定的许可条款)。您需要为每个条目存储经纬度,而不是每次重新查看。 – ViennaMike 2011-04-05 13:47:04

回答

1

听起来很简单...你问用户他的地址,然后

最好的问候, Seniel要求谷歌地图API的经度和纬度这样

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

并把它们写在数据库中。

当周围的人

编辑用户searchest(不会是一个圆,但它会做的工作):

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} 

像你提到的帖子。

+0

继续使用该选择查询... – fazo 2011-04-05 13:50:54

相关问题