如何根据用户的位置和搜索词进行搜索,并返回基于邻近度的结果? 时间:2016-11-16 作者:Erademus 我正在为邮局建立一个目录网站。我想让用户搜索最近的邮局,该邮局提供他们所需的服务。最好的方法是什么?最简单或最有效的方法是什么? 1 个回复 SO网友:jgraup 可以通过邮政编码查询数据库。那么您需要一种方法来利用Haversine formula 计算距离并按最短值排序。function getDistanceFromLatLonInKm(lat1,lon1,lat2,lon2) { var R = 6371; // Radius of the earth in km var dLat = deg2rad(lat2-lat1); // deg2rad below var dLon = deg2rad(lon2-lon1); var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon/2) * Math.sin(dLon/2); var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); var d = R * c; // Distance in km return d; } function deg2rad(deg) { return deg * (Math.PI/180) } 看看这些答案,看看有几种方法可以做到这一点。Post queries by latitude and longitude (SQL解决方案)How can I implement a location based (zip code) search in WordPress?Calculate distance between two latitude-longitude points? (Haversine formula) 文章导航