반응형
MariaDB : 두 점 사이의 거리(km)를 계산합니다.
mariaDB에서 두 점 사이의 거리를 대략적으로 잡으려고 합니다.
이 SQL을 사용합니다.
SELECT st_distance(POINT(50.6333,3.0667),p) from p
다음과 같은 결과를 출력합니다.
0
1.9128040446888426
8.103248262271125
mariaDB는 SRID를 처리하지 않는 것 같습니다.이 값을 km로 변환하는 방법이 있습니까? (110을 곱하는 것이 매우 올바른 것 같습니다.)
저의 목표는 sin, cos, atan 등의 수학을 다루는 것을 피하는 것이며 대략적인 결과는 괜찮습니다.
st_distance에 의해 반환되는 결과는 킬로미터가 아니라 분입니다.d = 40.075km의 적도 둘레의 경우, 2분 간의 거리는 d / 360 = 111,319km이다.
위도 사이의 거리는 일정하지만, 적도에서 극점까지의 경도 사이의 거리는 지속적으로 감소합니다.당신의 예에 따르면, 한 위치에서 지점은 경도 사이의 거리가 약 70km인 프랑스 어딘가에 있을 것입니다.
Haversine 공식을 사용하지 않기 때문에 피타고라스 정리를 사용하여 보다 정확한 결과를 얻을 수도 있습니다.
# Distance between Eiffel tower and Lille
SELECT ST_DISTANCE(GeomFromText("Point(50.6333 3.0669)"), GeomFromText("Point(48.853. 2.348)")) * 111.38;
-> 213.84627307672486
select sqrt(pow((50.63333 - 48.853) * 111.38,2) + pow((3.0669 - 2.348) * 70, 2));
->204.57903071304386
ST_DISTANCE는 평지 지지자를 위해 설계되었습니다.
ST_DISTANCE_SPIRE는 5.7 현재 InnoDB에서 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/58889637/mariadb-calculate-distance-between-2-points-in-km
반응형
'programing' 카테고리의 다른 글
| LAN에서 Debian 9(Stretch)의 MariaDB 10.1.23에 접속 (0) | 2022.09.25 |
|---|---|
| 소수점 두 자리 숫자 표시 (0) | 2022.09.25 |
| Java의 enum에서 ==를 사용해도 됩니까? (0) | 2022.09.25 |
| Laravel 메일: 보기 대신 문자열 전달 (0) | 2022.09.25 |
| 타이프스크립트 내보내기 vs. 기본 내보내기 (0) | 2022.09.25 |