我不确定获得我所追求的最佳方式,所以我只会解释它的应用,希望比我更聪明的人知道我需要什么。邮政编码搜索
我跟在www.Autotrader.co.uk上的东西几乎相同,用户从该邮政编码(1英里/ 10英里/ 100英里等)输入完整的邮政编码和搜索区域(半径),以及那么只显示搜索区域内的结果。
我想知道这是如何实现的?
在此先感谢
我不确定获得我所追求的最佳方式,所以我只会解释它的应用,希望比我更聪明的人知道我需要什么。邮政编码搜索
我跟在www.Autotrader.co.uk上的东西几乎相同,用户从该邮政编码(1英里/ 10英里/ 100英里等)输入完整的邮政编码和搜索区域(半径),以及那么只显示搜索区域内的结果。
我想知道这是如何实现的?
在此先感谢
搜索按半径......这是比较容易通过应用经度和纬度,例如的偏移搜索经度和纬度的+/- 0.00001。但是采用这种方法,搜索区域将呈矩形。
Google Maps API可以为您提供帮助。
这里我将描述一种实现你的目标的方法: 首先,我会得到每个用户的经度和纬度。您可以使用Google Geocode API。 在存储用户数据的表格中添加两列经纬度。 然后,您可以计算用户之间的距离。这post描述你如何做到这一点。
首先,您需要将邮政编码转换为地理信息,然后有很多方法来计算两点之间的距离。所以基本上:
现在,如果您要在数据库中搜索以找出像Autotrader这样的相关点。预先计算所有结果并在有新的点出现时缓存它们。它将提供更快的服务并最大限度地减少服务器的负载。