반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이클립스
- 낙짜쌤
- Java
- GIT
- vscode에서github연동
- eclipse github
- 이클립스 파일인코딩
- 확장프로그램
- Spring Legacy
- 낙자쌤
- Visual Studio Code
- MySQL
- 한국소프트웨어인재개발원
- Eclipse
- musthave
- #MySQL
- 윈도우10
- Github
- #php.ini
- extension
- jQuery
- Linux
- 리엑트
- vscode
- sql developer
- 낙자
- 노트패드
- oracle
- 오라클
- Windows10
Archives
- Today
- Total
자바강사 낙자쌤
MySQL에서 위도,경도 활용하여 거리 계산하기 본문
728x90
반응형
지도상에 한 지점을 표시하기 위해 위도와 경도가 사용됩니다.
우리는 이 정보를 통해 지점 사이의 거리를 구할 수 있습니다.
일반적으로 내 위치를 기반으로 반경 몇키로 이내의 시설물의 정보를 지도상에 표시하게 됩니다.
MySQL에 다음과 같이 지하철의 정보를 저장하고 있는 테이블이 있습니다.
테이블명 : tb_subway
station | latitude | longitude |
영등포역 | 37.5157702 | 126.9052383 |
신도림역 | 37.5088141 | 126.8890174 |
대림역 | 37.4925085 | 126.8927728 |
신촌역 | 37.5551399 | 126.9347011 |
여의도역 | 37.5215737 | 126.9221228 |
거리를 구하기 위한 쿼리문은 다음과 같습니다.
: 나의 위도, 경도를 기반으로 2Km 이내의 지하철역 select 하기
SELECT station , ( 6371 * acos ( cos ( radians(나의경도) ) * cos( radians( latitude ) ) * cos( radians( longitude) - radians(나의위도) ) + sin ( radians(나의경도) ) * sin( radians( latitude ) ) ) ) AS distance FROM tb_subway HAVING distance < 2 ORDER BY distance LIMIT 0 , 20; |
반경을 변경하고 싶다면 HAVING 절의 distance < 2 이 부분을 수정하면 됩니다.
지도상에서 두 지점사이의 거리를 구하는 하버사인 공식이라는것이 있는데, 이를 MySQL 쿼리문으로 변경하여 구현한 것입니다.
만약 궁금하다면 다음 링크로 들어가 보시기 바랍니다.
http://www.movable-type.co.uk/scripts/latlong.html?from=48.619,-120.412&to=48.59617,-120.4020
728x90
반응형
'Database' 카테고리의 다른 글
오라클 11g Express Edition 설치시 Checking for Oracle XE service instance failed 오류 해결하기 (0) | 2022.04.24 |
---|---|
[ SQL 디벨로퍼 설정 ] SQL Developer 코드편집기 구문 색상 (0) | 2022.04.24 |
[ SQL 디벨로퍼 설정 ] SQL Developer 폰트 설정 하기 (0) | 2022.04.24 |
오라클 랜덤하게 레코드 추출하기 - Oracle random select (0) | 2022.02.28 |