>  기사  >  웹 프론트엔드  >  Javascript는 위도와 경도를 기준으로 두 장소 사이의 거리를 계산합니다.

Javascript는 위도와 경도를 기준으로 두 장소 사이의 거리를 계산합니다.

不言
不言원래의
2018-09-10 14:40:537968검색

JavaScript를 사용하여 두 장소 사이의 거리를 어떻게 계산하나요? 다음 기사에서는 경도와 위도를 통해 두 장소 사이의 거리를 계산하는 JavaScript를 소개할 것입니다.

최근 업무상 경도와 위도를 기준으로 두 장소 사이의 거리를 계산하는 방법을 인터넷에서 검색해 보니 기하학적인 방법이나 그림을 그리는 방법, 보조선을 잔뜩 만드는 방법, 그런 다음 추론을 증명하거나 아무 말도하지 않고 직접 공식을 공식화합니다. 이 기사에서는 이 거리를 구하는 이해하기 쉬운 방법을 소개합니다.

Idea

지구는 불규칙한 타원체로 계산을 단순화하기 위해 구로 간주합니다.
구면의 두 지점 사이의 최단 거리는 두 지점을 통과하는 대원의 작은 호의 길이입니다.

아이디어는 다음과 같습니다.

호 길이 ← 현 길이(두 점 사이의 거리) ← 두 점 좌표(직사각형 좌표) ← 위도 및 경도

계산

1 좌표 변환

을 가정합니다. 지구의 반지름은 $R$

지구의 중심을 E 0° N 0°에 연결한 선이 x축입니다

지구의 중심을 E 90° N 0°에 연결한 선이 y입니다 -axis

지구 중심과 E 0° N 90°를 연결한 선이 Z축입니다

지구 표면에 $A$ 점이 있고 경도는 $e$, 위도는 $n$, 단위는 라디안입니다

그러면 $A$의 좌표는 다음과 같이 표현할 수 있습니다.

$$ x = R cdot cos(n) cdot cos(e)\ y = R cdot cos(n) cdot sin(e)\ z = R cdot sin(n) $$

Code

const R = 6371
const {cos, sin, PI} = Math

let getPoint = (e, n) => {
    //首先将角度转为弧度
    e *= PI/180
    n *= PI/180
    reutrn {
        x: R*cos(n)*cos(e),
        y: R*cos(n)*sin(e),
        z: R*sin(n)
    }
}
2. 좌표를 기준으로 두 점 사이의 거리를 계산합니다

너무 간단하니 건너뛰세요

3 현 길이를 기준으로 호 길이를 구하세요

그림을 그릴 수 있습니다. 이해를 돕기 위해:

Javascript는 위도와 경도를 기준으로 두 장소 사이의 거리를 계산합니다.이제 우리는 현의 길이 $c$, 반경 $R$을 알고 호의 길이 $r$를 요구합니다.

이것은 매우 간단합니다. $∠alpha$의 크기를 찾으면 됩니다. 첫 번째:


$$ 알파 = 아크사인(c/2/R)\ r = 2알파 cdot R USD

위 내용은 Javascript는 위도와 경도를 기준으로 두 장소 사이의 거리를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.