본문으로 건너뛰기

random-location-generator

무료 랜덤 위치 생성기로 위도와 경도 좌표를 무작위로 만들어주는 도구다. 결과를 십진법 좌표로 보여주고 대화형 세계 지도 위에 핀으로 함께 표시해주며, 브라우저에서 클릭 한 번으로 앱 테스트나 지리 수업, 위치 기반 기능을 검증할 때 유용하게 활용할 수 있다.

랜덤 위치 생성기

로딩 계산기...
📚

문서화

무작위 위치 생성기는 무작위 지리 좌표 쌍인 위도와 경도를 생성하는 도구입니다. 각 결과는 외해부터 도시의 거리, 산 정상까지 지구 표면 어디에나 있을 수 있는 한 지점을 나타냅니다.

도구가 생성하는 것

클릭할 때마다 -90°에서 90° 사이의 위도 값 하나와 -180°에서 180° 사이의 경도 값 하나가 생성됩니다. 도구는 두 숫자를 십진법의 도 단위로 표시하며, 예를 들어 60.0000° N, 90.0000° W와 같이 나타내고, 간단한 세계 지도에 해당 지점을 표시합니다. 음의 위도는 지점이 적도 남쪽에 있음을 뜻하며, 음의 경도는 영국 그리니치를 지나는 본초 자오선의 서쪽에 있음을 뜻합니다.

무작위 위치 생성기 사용 방법

  1. Generate 버튼을 누릅니다.
  2. 버튼 아래에 표시된 좌표와 N/S 및 E/W 방향을 확인합니다.
  3. 세계 지도의 표식에서 해당 지점이 대략 어디에 있는지 확인합니다.
  4. Copy를 눌러 다른 곳에서 사용할 좌표를 복사합니다.
  5. 새 지점을 생성하려면 Generate를 다시 누릅니다. 이 작업은 횟수 제한 없이 반복할 수 있습니다.
  6. Reset을 눌러 결과를 지우고 다시 시작합니다.

좌표 계산 방법(공식)

경도는 간단합니다. 균등하게 선택되므로 -180°에서 180° 사이의 모든 값이 선택될 확률이 같습니다. 공식은 다음과 같습니다.

λ=v×360−180\lambda = v \times 360 - 180

여기서 λ는 도 단위의 경도이고 v는 0과 1 사이의 난수이다.

위도는 다르게 작동하며, 사람들이 자주 잘못 계산하는 부분도 바로 이것입니다. 사용하는 공식은 다음과 같습니다.

φ=arcsin⁡(2u−1)\varphi = \arcsin(2u - 1)

여기서 φ는 라디안에서 도 단위로 변환한 위도이고, u는 0과 1 사이의 별도 난수이며, 아크사인은 사인 함수의 역함수이다.

위도를 단순한 무작위 수로 선택하지 않는 이유

극지방 근처의 위도선은 짧습니다. 적도에 있는 위도선은 길어서 행성 둘레의 대부분을 감쌉니다. 위도를 -90에서 90 사이의 단순한 무작위 수로 선택하면 지구 표면에서 극지방의 위도선이 적도 부근의 위도선보다 훨씬 적은 면적을 차지하는데도 각 위도에 결과가 동일하게 배분됩니다. 그러면 극지방 근처에 지점이 지나치게 많이 몰립니다.

아크사인 공식은 이 문제를 해결합니다. 극에 얼마나 가까운지와 관계없이 지구 표면의 각 부분이 선택될 확률이 같도록 지점을 분산합니다. 이 개념을 구면 점 선택이라고 하며, 때로는 아르키메데스의 모자 상자 정리라고 부르는 규칙에서 비롯됩니다. 위도 띠의 표면적은 도 단위의 차이가 아니라 양쪽 경계의 사인값 차이에 따라 결정됩니다.

풀이 예시

생성기가 두 개의 무작위 수를 뽑는다고 가정해 보겠습니다. 위도에 u = 0.9330127, 경도에 v = 0.25를 사용합니다.

  • 위도 = arcsin(2 × 0.9330127 − 1) = arcsin(0.8660254) = 60°
  • 경도 = 0.25 × 360 − 180 = -90°

결과는 60.0000° N, 90.0000° W이며, 캐나다 북부의 허드슨만 근처에 있는 지점입니다.

코드 예시

동일한 두 단계는 어떤 프로그래밍 언어에서도 사용할 수 있습니다. 0에서 1 사이의 무작위 수 두 개를 뽑고, 첫 번째 수에 아크사인 공식을 적용해 위도를 구한 다음, 두 번째 수를 변환해 경도를 구합니다.

Python

1import random
2import math
3
4def generate_random_coordinates():
5    u = random.random()
6    v = random.random()
7    latitude = math.degrees(math.asin(2 * u - 1))
8    longitude = v * 360 - 180
9    return latitude, longitude
10

JavaScript

1function generateRandomCoordinates() {
2  const u = Math.random();
3  const v = Math.random();
4  const latitude = Math.asin(2 * u - 1) * (180 / Math.PI);
5  const longitude = v * 360 - 180;
6  return { latitude, longitude };
7}
8

아크사인 단계를 생략하고 위도를 random.uniform(-90, 90)로 선택하는 더 간단한 방식은 작성하기 쉽지만, 지구 표면 전체에 지점을 고르게 분산하는 대신 극지방 근처에 지점을 모이게 합니다.

일반적인 사용 사례

소프트웨어 개발자는 테스트 데이터를 직접 고르지 않고도 GPS 기능, 지도 렌더링, 위치 기반 앱을 테스트하기 위해 무작위 좌표를 사용합니다. 게임 디자이너는 이를 이용해 생성 지점이나 보물찾기 위치를 배치합니다. 교사는 학생들과 위도와 경도를 읽는 연습을 할 때 사용합니다. 연구자는 현장 연구를 위해 편향되지 않은 표본 위치를 선택하는 데 이를 사용합니다. 아크사인 방식은 지구의 특정 지역을 우선하지 않기 때문입니다.

자주 묻는 질문

좌표는 어떤 형식인가요?

십진수 도(DD) 형식입니다. 예를 들면 40.7128° N, 74.0060° W와 같습니다. 이 형식은 Google 지도 같은 대부분의 지도 서비스와 GPS 기기에서 사용됩니다.

무작위 좌표 중 상당수가 바다에 놓이는 이유?

물은 지구 표면의 약 71%를 차지하므로, 진정으로 무작위로 선택한 지점은 육지보다 바다에 놓일 가능성이 높습니다. 이는 예상되는 결과이며, 좌표가 고르게 분산되고 있음을 보여 주는 것이지 도구의 결함이 아닙니다.

한 국가나 대륙의 좌표만 생성할 수 있나요?

아니요. 이 도구는 지구 어디에서나 지점을 선택합니다. 특정 지역으로 결과를 제한하려면 생성 후 좌표를 추가로 필터링하거나, 경계 제한을 적용해 만든 도구가 필요합니다.

좌표는 얼마나 정확한가요?

각 값에는 소수점 이하 4자리가 있습니다. 위도의 경우 지구 어디에서나 약 11미터(36피트) 정밀도에 해당합니다. 경도에서도 동일한 4자리가 적도 근처에서는 약 11미터를 나타내지만, 극지방에 가까워질수록 경도선 사이의 간격이 좁아지므로 더 짧은 거리를 나타냅니다.

좌표는 실제 세계에서 유효한 위치인가요?

예. 모든 결과는 지구 표면 위의 수학적으로 유효한 지점이지만, 외해나 얼음 위 또는 주변에 정착지가 없는 다른 장소일 수 있습니다.

십진수 도를 도·분·초(DMS)로 변환하는 방법?

정수 부분을 도로 사용합니다. 소수 부분에 60을 곱해 분을 구합니다. 그 결과의 소수 부분에 다시 60을 곱해 초를 구합니다.