random-location-generator
Luo satunnaisia maantieteellisiä koordinaatteja välittömästi. Ilmainen satunnaisen sijainnin generaattori tuottaa kelvollisia latitudi- ja longitudiarvoja interaktiivisella kartalla. Täydellinen sovellusten testaamiseen.
Satunnainen sijaintien luoja
Dokumentaatio
Satunnaissijaintien generaattori on työkalu, joka tuottaa satunnaisen leveys- ja pituusasteen muodostaman maantieteellisten koordinaattien parin. Jokainen tulos merkitsee pistettä, joka voi sijaita missä tahansa Maan pinnalla avomerestä kaupungin kaduille ja vuorenhuipuille.
Mitä työkalu tuottaa
Jokainen napsautus tuottaa yhden leveysasteen arvon väliltä -90°–90° ja yhden pituusasteen arvon väliltä -180°–180°. Työkalu näyttää molemmat luvut desimaaliasteina, esimerkiksi 60,0000° N, 90,0000° W, ja merkitsee pisteen yksinkertaiseen maailmankarttaan. Negatiivinen leveysaste tarkoittaa, että piste on päiväntasaajan eteläpuolella; negatiivinen pituusaste tarkoittaa, että se on Ison-Britannian Greenwichin kautta kulkevan nollameridiaanin länsipuolella.
Satunnaisen sijainnin generaattorin käyttö
- Paina Generate-painiketta.
- Lue painikkeen alapuolella näkyvät koordinaatit sekä N/S- ja E/W-ilmansuunnat.
- Tarkista maailmankartan merkintä nähdäksesi suunnilleen, missä piste sijaitsee.
- Kopioi koordinaatit muualle käytettäväksi painamalla Copy.
- Paina uudelleen Generate-painiketta saadaksesi uuden pisteen. Toistojen määrää ei ole rajoitettu.
- Tyhjennä tulos ja aloita alusta painamalla Reset.
Miten koordinaatit lasketaan (kaava)
Pituusaste on yksinkertainen: se valitaan tasajakaumasta, joten jokainen arvo väliltä -180°–180° on yhtä todennäköinen. Kaava on:
jossa λ on pituusaste asteina ja v on satunnaisluku väliltä 0–1.
Leveysaste toimii eri tavalla, ja juuri tässä ihmiset tekevät usein virheitä. Käytetty kaava on:
jossa φ on leveysaste radiaaneista asteiksi muunnettuna, u on erillinen satunnaisluku väliltä 0–1 ja arcsin on sinifunktion käänteisfunktio.
Miksi leveysastetta ei valita tavallisella satunnaisluvulla
Lähellä napoja sijaitseva leveyspiiri on lyhyt. Päiväntasaajan leveyspiiri on pitkä ja kiertää suurimman osan planeetasta. Jos leveysaste valittaisiin tavallisella satunnaisluvulla väliltä -90–90, jokainen leveysaste saisi yhtä suuren osuuden tuloksista, vaikka napojen leveyspiirit kattavat paljon pienemmän osan Maan pinnasta kuin päiväntasaajan leveyspiirit. Tällöin pisteitä kertyisi liikaa napojen lähelle.
Arkussinin kaava korjaa tämän. Se jakaa pisteet niin, että jokaisella Maan pinnan alueella on yhtä suuri mahdollisuus tulla valituksi riippumatta siitä, kuinka lähellä napaa se on. Tätä ajatusta kutsutaan pisteen valinnaksi pallolta, ja se seuraa säännöstä, jota kutsutaan joskus Arkhimedeen hattulaatikkolauseeksi: leveyspiirivyöhykkeen pinta-ala riippuu sen reunojen sinien erotuksesta, ei asteiden erotuksesta.
Laskuesimerkki
Oletetaan, että generaattori arpoo kaksi satunnaislukua: u = 0,9330127 leveysasteelle ja v = 0,25 pituusasteelle.
- leveysaste = arcsin(2 × 0,9330127 − 1) = arcsin(0,8660254) = 60°
- pituusaste = 0,25 × 360 − 180 = -90°
Tulos on 60,0000° N, 90,0000° W, eli piste lähellä Hudsoninlahtea Pohjois-Kanadassa.
Koodiesimerkki
Samat kaksi vaihetta toimivat millä tahansa ohjelmointikielellä: arvo kaksi satunnaislukua väliltä 0–1, sovella ensimmäiseen lukuun Arkussinin kaavaa leveysasteen saamiseksi ja skaalaa toisella pituusaste.
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}
8Yksinkertaisempi versio, jossa Arkussinin vaihe ohitetaan ja leveysaste valitaan arvona random.uniform(-90, 90), on helpompi kirjoittaa, mutta se keskittää pisteitä napojen lähelle sen sijaan, että jakaisi ne tasaisesti Maan pinnalle.
Tavallisia käyttökohteita
Ohjelmistokehittäjät käyttävät satunnaisia koordinaatteja GPS-ominaisuuksien, karttojen renderöinnin ja sijaintiin perustuvien sovellusten testaamiseen ilman testiaineiston valitsemista käsin. Pelisuunnittelijat käyttävät niitä sijoittaakseen syntymispisteitä tai aarteenetsintäkohteita. Opettajat käyttävät niitä harjoitellessaan oppilaiden kanssa leveys- ja pituusasteiden lukemista. Tutkijat käyttävät niitä puolueettomien otospaikkojen valitsemiseen kenttätutkimuksia varten, koska arkussiniin perustuva menetelmä ei suosi mitään maapallon aluetta.
Usein kysyttyä
Missä muodossa koordinaatit ovat?
Desimaaliasteina (DD), esimerkiksi 40,7128° N, 74,0060° W. Tätä muotoa käyttävät useimmat karttapalvelut, kuten Google Maps, sekä GPS-laitteet.
Miksi niin monet satunnaiset koordinaatit osuvat merelle?
Vesi peittää noin 71 % Maan pinnasta, joten todella satunnainen piste osuu todennäköisemmin merelle kuin maalle. Tämä on odotettua ja vahvistaa, että koordinaatit jakautuvat tasaisesti; kyse ei ole työkalun virheestä.
Voinko luoda koordinaatteja vain yhdestä maasta tai yhdeltä mantereelta?
Et. Tämä työkalu valitsee pisteitä kaikkialta Maasta. Jos tulokset halutaan rajata tietylle alueelle, koordinaatit pitäisi suodattaa luomisen jälkeen erikseen tai käyttää työkalua, jossa on aluerajat.
Kuinka tarkkoja koordinaatit ovat?
Jokaisessa arvossa on 4 numeroa desimaalipilkun jälkeen. Leveysasteella tämä merkitsee noin 11 metrin (36 jalan) tarkkuutta kaikkialla Maassa. Pituusasteella samat 4 numeroa kattavat päiväntasaajan lähellä noin 11 metriä, mutta etäisyys pienenee napoja kohti, koska pituuspiirit lähestyvät siellä toisiaan.
Ovatko koordinaatit todellisia, päteviä sijainteja?
Kyllä. Jokainen tulos on matemaattisesti pätevä piste Maan pinnalla, vaikka se saattaa sijaita avomerellä, jäällä tai muussa paikassa, jonka lähellä ei ole asutusta.
Miten desimaaliasteet muunnetaan asteiksi, minuuteiksi ja sekunneiksi (DMS)?
Ota kokonaisluku asteiksi. Kerro desimaaliosa luvulla 60 saadaksesi minuutit. Ota tuloksesta desimaaliosa ja kerro se jälleen luvulla 60 saadaksesi sekunnit.