나는 우편 번호, 위도/경도 데이터, 지역, 도시 등 위치 세부 정보가있는 db 테이블이 있습니다. 이 데이터를 사용하여 웹 응용 프로그램의 사용자 위치를 표시하고 있습니다. 이제 가장 가까운 장소와 같이 거리에 따라 사용자가 검색 한 장소를 정렬하고 싶습니다. 현재 사용자와 그가 검색 한 장소 사이의 거리를 계산 한 다음 거리별로 결과를 정렬하는 방법은 무엇입니까? 당신이 실제로 longitude
및 latitude
데이터가있는 경우거리 별 검색 결과 정렬
-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
, 당신은 당신의 검색 결과를 정렬하는 것과 계산할 수 있습니다.
데이터 예 :
- 검색을 수행하는 사용자 갖는다 (위도/경도) : 51.993073, 5.952852
- 사용자 1 (경도/위도) 52.893073, 5.952852
- 사용자 2 (위도/경도) : 60.993073, 5.952852
"사용자 1"이 "사용자 2"(위도 참조)보다 검색을 수행하는 사용자에 더 가깝다는 것을 분명히 알 수 있습니다.
참고 : 이것을 계산하려면 수식이 필요합니다. JDev
의 답을 확인하십시오.
관련 문제
- 1. Solr : 거리 별 결과 나열
- 2. SQL에서 거리 별 검색
- 3. FetchXML - GeoCode 거리 별 거리 검색
- 4. 정렬 목록, 검색 결과 등
- 5. Xcode 정렬 사용자 위치까지의 거리 별 연결
- 6. 현재 위치에서 거리 별 표보기 정렬
- 7. lucene 검색 결과 정렬
- 8. SQL에서 검색 결과 정렬
- 9. Postgresql 쿼리 - 하위 쿼리 결과 별 정렬
- 10. 카탈로그 결과 위치 별 정렬 내용으로
- 11. Solr 함수 별 정렬 - 예상치 못한 결과
- 12. Near 쿼리에서 거리 "dis"결과 검색
- 13. PHP 검색 제안의 결과 정렬
- 14. Sharepoint : 필드 별 검색 결과 제한
- 15. 날짜별로 단어 검색 정렬 검색 결과
- 16. 사용자 별 결과 확장 가능 전체 텍스트 검색
- 17. 지리상 거리 검색 MYSQL
- 18. 거리 정렬 문제
- 19. 다른 필드별로 Lucene 검색 결과 정렬
- 20. 일치하는 수로 검색 결과 배열을 정렬 하시겠습니까?
- 21. 전체 텍스트 검색 쿼리에서 결과 정렬 방법
- 22. 다중 값 패싯 검색 결과 정렬
- 23. SOLR - 어떤 기본이없는 검색 결과 정렬
- 24. Solr -면 개수에 따라 검색 결과 정렬
- 25. $ in에 MongoDB의 결과 정렬?
- 26. 정렬 결과 정렬 MySQL
- 27. 날짜별로 정렬 결과 정렬
- 28. 아크 별 Topological 정렬
- 29. XML의 속성 별 정렬
- 30. 속성 별 정렬 arraylist
Google에서 거리를 계산하기 위해 [검색] (http://www.zipcodeworld.com/samples/distance.java.html)을 신중하게 선택하는 방법이 있습니다. – Crazenezz
@antyrat :이 멋진 동기 부여 링크에 감사드립니다. :) –