我有数据库表,其中包含邮政编码,长/纬度数据,地区,城市等位置详细信息。 我正在使用此数据来显示我的Web应用程序中的用户位置。现在我想根据距离对用户搜索到的地点进行排序,如最近的地方。如何计算用户当前位置与他搜索的位置之间的距离,然后按距离对结果进行排序。按距离排序搜索结果
-1
A
回答
1
i just have this function for calculate distance between two latitude,longitude, pleaes have a look if its helpful to you.
function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
return dist
}
1
如果你确实有longitude
和latitude
数据,你可以用这些计算来排序搜索结果。
实施例的数据:
- 正在执行搜索的用户具有(经度/纬度):51.993073,5.952852
- 用户1(经度/纬度):52.893073,5.952852
- 用户2(经度/纬度):60.993073,5.952852
您可以清楚地看到“用户1”比执行搜索的用户更接近“用户2”(参见经度)。
注意:你需要一个公式来计算这个,检查JDev
的答案。
相关问题
- 1. Facebook地点:按距离排列搜索结果
- 2. 如何根据距离排序搜索结果,使用textsearch搜索API位置
- 3. FetchXML - GeoCode距离按距离搜索
- 4. 按距离排序
- 5. Symfony2,学说搜索和距离排序
- 6. Rails的5:搜索按关键字和按距离排序
- 7. 按meta_key排序搜索结果
- 8. wordpress按日期排序搜索结果
- 9. SQL搜索按距离
- 10. Lucene.Net排序距离点的结果
- 11. 排序结果的距离从JavaScript
- 12. 排序Lucene搜索结果
- 13. Hibernate搜索结果排序
- 14. 按距离排序上ElasticSearch
- 15. Android的排序按距离
- 16. tableview按距离排序swift
- 17. Algolia按ROUTE距离排序
- 18. Swift Firebase按距离排序
- 19. 如何从数据库按距离排序php结果
- 20. 搜索在距离
- 21. GeoDjango距离搜索
- 22. 按距离搜索限制地址
- 23. 搜索查看结果和排序列
- 24. 排序列表,搜索结果等
- 25. “重新排序”搜索结果
- 26. 对搜索结果进行排序sql
- 27. 排序geonear搜索结果与mongoid
- 28. NPM搜索结果排序异常
- 29. 的MongoDB:排序文本搜索结果
- 30. 排序数据库结果后搜索
如果您在Google中仔细搜索(http://www.zipcodeworld.com/samples/distance.java.html)以计算距离,有方法示例。 – Crazenezz
@antyrat:感谢这个不错的激励链接。 :) –