random-location-generator
Тренутно генеришите случајне географске координате. Бесплатни генератор случајних локација ствара важеће вредности латитуде и лонгитуде са интерактивном мапом. Савршен за тестирање апликација.
Генератор случајних локација
Dokumentacija
Генератор насумичне локације је алат који производи насумични пар географских координата: географску ширину и географску дужину. Сваки резултат означава тачку која може да се налази било где на површини Земље, од отвореног океана до градских улица и планинских врхова.
Шта алат генерише
Сваки клик производи једну вредност географске ширине, између -90° и 90°, и једну вредност географске дужине, између -180° и 180°. Алат приказује оба броја у децималним степенима, на пример 60,0000° N, 90,0000° W, и означава тачку на једноставној карти света. Негативна географска ширина значи да се тачка налази јужно од екватора; негативна географска дужина значи да се налази западно од почетног меридијана, линије која пролази кроз Гринич у Уједињеном Краљевству.
Како се користи генератор насумичне локације
- Притисните дугме Generate.
- Прочитајте координате приказане испод дугмета, са ознакама смерова N/S и E/W.
- Проверите ознаку на карти света да бисте приближно видели где се тачка налази.
- Притисните Copy да бисте копирали координате за употребу на другом месту.
- Поново притисните Generate да бисте добили нову тачку. Нема ограничења у броју понављања ове радње.
- Притисните Reset да бисте обрисали резултат и почели изнова.
Како се израчунавају координате (формула)
Географска дужина је једноставна: бира се равномерно, што значи да је свака вредност између -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° 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
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° N, 74,0060° W. То је формат који користи већина картографских услуга, укључујући Google Maps, као и GPS уређаји.
Зашто толико насумичних координата пада у океан?
Вода покрива око 71% Земљине површине, па је заиста насумична тачка вероватније у океану него на копну. То се очекује и потврђује да су координате равномерно распоређене, а не да алат има недостатак.
Могу ли да генеришем координате само за једну државу или континент?
Не. Овај алат бира тачке било где на Земљи. Да би се резултати ограничили на неки регион, после генерисања било би потребно додатно филтрирање координата или коришћење алата направљеног са граничним ограничењима.
Колико су координате прецизне?
Свака вредност има 4 цифре после децималне тачке. За географску ширину то је прецизност од око 11 метара (36 стопа) било где на Земљи. За географску дужину истих 4 цифара покрива око 11 метара близу екватора, а та удаљеност се смањује ближе половима, јер се линије географске дужине тамо приближавају једна другој.
Да ли су координате важеће локације у стварном свету?
Да. Сваки резултат је математички важећа тачка на површини Земље, мада се може налазити на отвореном океану, леду или другом месту у чијој близини нема насеља.
Како да претворим децималне степене у степене, минуте и секунде (DMS)?
Узмите цео број као степене. Помножите децимални део са 60 да бисте добили минуте. Узмите децимални део тог резултата и поново га помножите са 60 да бисте добили секунде.