반응형
특정 코드 예제를 요청하기 전에 다음과 같은 의사 코드를 쿼리 할 수 있는지 묻고 싶었습니다.
위도 / 경도 =-특정 위도 / 경도 지점의 x 마일 이내-
그게 가능합니까? 아니면 몇 가지 농구를 뛰어 넘어야합니까? 권장 할 수있는 모든 좋은 접근 방식이 좋습니다!
해결 방법
Haversine 공식을 검색해야하지만 좋은 시작은 다음과 같습니다.
첫 번째 URL에서 인용 :
다음은 37, -122 좌표에서 25 마일 반경 내에서 가장 가까운 20 개 위치를 찾는 SQL 문입니다. 해당 행의 위도 / 경도와 대상 위도 / 경도를 기반으로 거리를 계산 한 다음 거리 값이 25 미만인 행만 요청하고 전체 쿼리를 거리별로 정렬하고 결과를 20 개로 제한합니다. 마일 대신 킬로미터로 검색하려면 3959를 6371로 바꿉니다.
SELECT
id,
( 3959
* acos( cos( radians(37) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians(-122) )
+ sin( radians(37) )
* sin( radians( lat ) )
)
)
AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;
참조 페이지 https://stackoverflow.com/questions/4687312
반응형
'MySql' 카테고리의 다른 글
MySQL에서 숫자로 varchar 필드 정렬 (0) | 2020.10.23 |
---|---|
MySQL에서 제외하는 대안 (0) | 2020.10.23 |
MySQL-DESC 별 Order by 그룹화 (0) | 2020.10.23 |
MySQL SQL로 성경을 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2020.10.23 |
MySQLi를 찾을 수 없음 Dockerized PHP (0) | 2020.10.23 |
댓글