Перейти до вмісту

random-location-generator

Миттєво генеруйте випадкові географічні координати. Безкоштовний генератор випадкових локацій створює дійсні значення широти та довготи з інтерактивною картою. Ідеально підходить для тестування додатків.

Генератор випадкових локацій

Калькулятор завантаження...
📚

Документація

Генератор випадкових координат — це інструмент, який створює випадкову пару географічних координат: широту й довготу. Кожен результат позначає точку, яка може опинитися будь-де на поверхні Землі — у відкритому океані, на міських вулицях або на гірських вершинах.

Що генерує інструмент

Кожне натискання створює одне значення широти в діапазоні від -90° до 90° і одне значення довготи в діапазоні від -180° до 180°. Інструмент показує обидва числа в десяткових градусах, наприклад 60,0000° пн. ш., 90,0000° зх. д., і позначає точку на простій карті світу. Від’ємна широта означає, що точка розташована на південь від екватора; від’ємна довгота — що вона розташована на захід від нульового меридіана, який проходить через Гринвіч у Великій Британії.

Як користуватися генератором випадкових місць

  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, а arcsin — обернена функція синуса.

Чому широта не вибирається як звичайне випадкове число

Коло широти поблизу полюсів коротке. Коло широти на екваторі довге й охоплює більшу частину планети. Якби широта вибиралася як звичайне випадкове число між -90 і 90, кожен градус широти отримував би однакову частку результатів, хоча полярні кола охоплюють значно меншу площу поверхні Землі, ніж екваторіальні кола. Через це поблизу полюсів накопичувалося б надто багато точок.

Формула арксинуса усуває цю проблему. Вона розподіляє точки так, щоб кожна ділянка поверхні Землі мала однакову ймовірність бути вибраною, незалежно від її відстані до полюса. Цю ідею називають вибором точок на сфері; вона випливає з правила, яке іноді називають теоремою Архімеда про капелюшну коробку: площа смуги широти залежить від різниці синусів її меж, а не від різниці в градусах.

Приклад обчислення

Припустімо, генератор вибирає два випадкові числа: u = 0,9330127 для широти та v = 0,25 для довготи.

  • широта = arcsin(2 × 0,9330127 − 1) = arcsin(0,8660254) = 60°
  • довгота = 0,25 × 360 − 180 = -90°

Результат: 60,0000° пн. ш., 90,0000° зх. д. — точка поблизу Гудзонової затоки на півночі Канади.

Приклад коду

Ці самі два кроки працюють у будь-якій мові програмування: виберіть два випадкові числа між 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° пн. ш., 74,0060° зх. д. Це формат, який використовує більшість картографічних сервісів, зокрема Google Maps, а також пристрої GPS.

Чому так багато випадкових координат припадає на океан?

Вода вкриває близько 71% поверхні Землі, тому справді випадкова точка з більшою ймовірністю потрапить в океан, ніж на суходіл. Це очікуваний результат, який підтверджує рівномірний розподіл координат, а не недолік інструмента.

Чи можна генерувати координати лише для однієї країни або континенту?

Ні. Цей інструмент вибирає точки будь-де на Землі. Щоб обмежити результати певним регіоном, після генерації потрібно додатково фільтрувати координати або використовувати інструмент із обмеженнями за межами.

Наскільки точні координати?

Кожне значення має 4 цифри після десяткового роздільника. Для широти це означає точність приблизно 11 метрів (36 футів) у будь-якій точці Землі. Для довготи ті самі 4 цифри охоплюють близько 11 метрів поблизу екватора; ближче до полюсів ця відстань зменшується, оскільки меридіани там сходяться.

Чи є ці координати дійсними місцями в реальному світі?

Так. Кожен результат є математично дійсною точкою на поверхні Землі, хоча вона може розташовуватися у відкритому океані, на льоду або в іншому місці, поблизу якого немає поселень.

Як перетворити десяткові градуси на градуси, хвилини й секунди (DMS)?

Цілу частину числа візьміть за градуси. Десяткову частину помножте на 60, щоб отримати хвилини. Десяткову частину отриманого результату знову помножте на 60, щоб отримати секунди.