我有一个名字,邮政编码和愿意旅行的距离的csv文件。网络用户将输入他们的邮政编码和他们愿意搜索的距离的英里半径。我正在寻找与该搜索相匹配的csv文件中的人名。我不太熟悉地理定位搜索或当前可用的免费技术(例如谷歌地图)。该网站是用PHP编程的,并使用jquery。我不想要地图,只需要名称的数组或树。有关如何设置的任何建议吗?
CSV示例
"1","John Smith","ZipCode-12345","TravelDistance-30"
解决方案
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) )
* cos(弧度(lng) - 弧度(-122))+ sin(弧度(37))* sin(弧度( lat))))AS距离FROM标记 距离< 25按距离排序 LIMIT 0,20;
答案 0 :(得分:3)
基本上,在这样的情况下,我会使用数据库和两个表:
cities
的一个表格(或zipcodes - 不确定这些是否与城市相对应);在那张桌子里,你有:
users
的一个表格
在尝试计算哪些用户接近给定用户时,您实际上会计算哪些城市接近您的用户所在的城市 - 并从中找出相应的用户。
要确定哪个城市接近给定的城市,我想您可以找到一些公式 - 例如,请参阅以下问题/答案:
请注意,在初始化城市/邮政编码数据库时,您必须找出每个城市的纬度和经度 - 我想您可以找到一些数据库,其中包含互联网上所有城市的坐标。
(另一种解决方案是向Google地图的地理编码服务发送请求 - 但如果我没记错的话,他们的服务条款就不允许这样做了)