Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  LAT & LON lähima punkti leidmine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
Peebuste
HV vaatleja

liitunud: 01.09.2007




sõnum 06.01.2008 21:57:04 LAT & LON lähima punkti leidmine vasta tsitaadiga

Tere targad ja HUA!

Polegi otseselt progemisega seotud, pigem matemaatikaga.
Seis selline:
- on geogr. koordinaatidega määratud punkt A
- on "pilveke" teisi punkte
- leida, milline on A-le lähimad
- koordinaadid on antud kraadides: 12,3456789

Vahendid - misiganes, algoritmi ei suuda välja mõelda
Vott, mõistus otsas icon_redface.gif icon_redface.gif icon_redface.gif
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
airm
HV Guru

liitunud: 26.02.2003




sõnum 06.01.2008 22:56:37 vasta tsitaadiga

Joonista paberi peale paari punkti asukohad ja siis natuke vektorarvutust ja edasine on tõlkimine masinkeelde.
Kommentaarid: 56 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 50
tagasi üles
vaata kasutaja infot saada privaatsõnum
LWD
HV vaatleja

liitunud: 17.08.2007




sõnum 07.01.2008 00:22:35 vasta tsitaadiga

Oleneb, kuidas sul algandmed on esitatud.

phps oleks midagi niisugust:

$algpunkt = array(10, 20); //x=10 ja y=20;
$lisapunktid = array();
$kaugused = array();

$lisapunktid[0] = array(20, 30); //x=20, y=30
$lisapunktid[1] = array(30, 50); //x=30, y=50
$lisapunktid[2] = array(-10, 0); //x=-10, y=0


for ($i=0;$i<count($lisapunktid);$i++) { //Kontrollid kõik punktid ükshaaval läbi
$kaugused[$i] = sqrt(($algpunkt[0] - $lisapunktid[$i][0]) * ($algpunkt[0] - $lisapunktid[$i][0]) +($algpunkt[1] - $lisapunktid[$i][1]) * ($algpunkt[1] - $lisapunktid[$i][1])); //Pythagorose teoreem: x koordinaatide vahe ruudu ja y koordinaatide vahe ruudu summa ruutjuur
}

$vahim = min($kaugused); // Otsid kõige väima kauguse
$vahimid = array_search($vahim, $kaugused); // Otsib, milline sinu punktidest on vähima kaugusega

echo "Antud punktile on kõige lähemal $vahimid. punkt, mille koordinaadid on $lisapunkt[$vahimid][0], $lisapunkt[vahimid][1]";
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Ohohh
Kreisi kasutaja
Ohohh

liitunud: 13.09.2003




sõnum 07.01.2008 00:39:08 vasta tsitaadiga

LWD, kuna maakera on kera ja koordinaadid on antud nurkadega, siis ei ole see nii lihtsalt tehtav...

Mida lähemale poolusele, seda väiksem vahemaa on kahe pikkuskraadi vahel.


viimati muutis Ohohh 07.01.2008 00:43:27, muudetud 1 kord
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
Telempe
Kreisi kasutaja
Telempe

liitunud: 02.11.2002




sõnum 07.01.2008 00:49:20 vasta tsitaadiga

Mida LWD skript lihtsamalt öeldes teeb on see, et lahutab algpunktivektorist iga lisapunktivektori ja leiab neist absoluutväärtuselt väikseima, aga ainult kahemõõtmelises ristkoordinaadistikus. Kaugusi sfääri pinna arvutatakse teisiti: http://en.wikipedia.org/wiki/Great-circle_distance
_________________
ORLY? I hardly know her!
Kommentaarid: 22 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 21
tagasi üles
vaata kasutaja infot saada privaatsõnum
Peebuste
HV vaatleja

liitunud: 01.09.2007




sõnum 14.01.2008 22:30:01 vasta tsitaadiga

Telempe kirjutas:
Kaugusi sfääri pinna arvutatakse teisiti: http://en.wikipedia.org/wiki/Great-circle_distance


Kas keegi aitaks seda seal harimatule pisut selgitada? icon_redface.gif icon_redface.gif icon_redface.gif
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
Ohohh
Kreisi kasutaja
Ohohh

liitunud: 13.09.2003




sõnum 15.01.2008 02:29:52 vasta tsitaadiga

Peebuste kirjutas:
Telempe kirjutas:
Kaugusi sfääri pinna arvutatakse teisiti: http://en.wikipedia.org/wiki/Great-circle_distance


Kas keegi aitaks seda seal harimatule pisut selgitada? icon_redface.gif icon_redface.gif icon_redface.gif

Siin ei ole muud teha, kui valemites olevad tähed asendada enda muutujatega...

(FIIs,LAMDAs) on üks punkt ja (FIIf, LAMDAf) on teine punkt, kus FII on laiuskraad ja LAMDA on pikkuskraad. Delta LAMDA on LAMDAs ja LAMDAf vahe. Enne valmisse sisestamist pead sa kraadid tõenäoliselt radiaanideks teisendama, sest enamasti võtavad trigonomeetria funktsioond nurkadeks vastu radiaane.

Sulle pakutakse kolme valemit. Kõik valemid ise on õiged, aga kõige alumine annab täpseima vastuse, sest see kannatab kõige vähem ümardamistest tekkivate vigade all. Kõik valemid annavad tulemuseks Delta SIGMA, mis on nurk nende kahe punkti vahel. Et saada nende punktide vaheline vahemaa pead korrutama selle nurga (mis on samuti radiaanides) läbi maakera raadiusega.

Ehk siis võta näiteks kolmas valem, kirjuta see oma programmi ümber asendades Fii'd ja Lamda'd enda muutujatega ning tulemus korruta läbi maa raardiusega.
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004



Autoriseeritud ID-kaardiga

sõnum 15.01.2008 12:59:22 vasta tsitaadiga

Kui väga suur saladus pole, siis ehk avaldad rakenduse?

Kui punktid väga kaugel üksteisest pole, siis tasub teisendada ristkoordinaatideks, nende puhul saab klassikalist geomeetriat rakendada.
Süsteemiks pakuks L-EST97, kui punktid Eesti pinnal asuvad.

Geograafilistest L-ESTi teisendamiseks sai kunagi üks VBA jupike treitud, kui huvi on, võin saata.
Kommentaarid: 35 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  LAT & LON lähima punkti leidmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.