random-location-generator
Генерирайте мигновено случайни географски координати. Безплатен генератор на случайни локации създава валидни стойности за ширина и дължина с интерактивна карта. Перфектен за тестване на приложения.
Генератор на случайни локации
Документация
Генераторът на случайни местоположения е инструмент, който създава случайна двойка географски координати: географска ширина и географска дължина. Всеки резултат обозначава точка, която може да се намира навсякъде по земната повърхност — от открития океан до градски улици и планински върхове.
Какво генерира инструментът
Всяко щракване създава една стойност за географската ширина между -90° и 90° и една стойност за географската дължина между -180° и 180°. Инструментът показва и двете числа в десетични градуси, например 60,0000° С, 90,0000° З, и обозначава точката върху опростена карта на света. Отрицателната географска ширина означава, че точката се намира на юг от екватора; отрицателната географска дължина означава, че се намира на запад от Гринуичкия меридиан — линията, която минава през Гринуич, Обединеното кралство.
Как се използва генераторът на случайни местоположения
- Натиснете бутона Генериране.
- Прочетете координатите, показани под бутона, с посоките С/Ю и И/З.
- Проверете маркера върху картата на света, за да видите приблизително къде се намира точката.
- Натиснете Копиране, за да копирате координатите за използване на друго място.
- Натиснете отново Генериране, за да създадете нова точка. Няма ограничение колко пъти може да се направи това.
- Натиснете Нулиране, за да изчистите резултата и да започнете отначало.
Как се изчисляват координатите (формула)
Географската дължина е проста: тя се избира равномерно, тоест всяка стойност между -180° и 180° е еднакво вероятна. Формулата е:
където λ е географската дължина в градуси, а v е случайно число между 0 и 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
10JavaScript
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, за да получите секундите.