Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 15 odgovora
  • 5.769 pregleda

Najnovija ↓

HITNO: Konverzija u metre 28.04.2009. u 13:16 · pre 213 meseci #1
Imam koordinate 2 tacke u prostoru (sirina, duzina, visina).
Kako sad da izracunam njihovu medjusobnu udaljenost - zracnom linijom jer su udaljene mozda 1km (zanemariti zakrivljenost zemlje i ostalo).
Ako zanemarimo visinu i uzmemo samo vrijednosti u stepenima (bez minuta i sekundi), problem je kako, po kojoj formuli, da pretvorim vrijednost dobivenu primjenom pitagorine teoreme u metre?
Re: HITNO: Konverzija u metre 28.04.2009. u 13:24 · pre 213 meseci #2
Evo kod u C# koji ja koristim, a koji računa distancu izmedju dve tačke zadate geografskim dužinama i širinama:

Code:


public static double Deg2Rad(double deg)
{
            return ((deg / 180) * Math.PI);
}

public static double Distance(double lon1, double lat1, double lon2, double lat2)
{
            lon1 = GpsUtilities.Deg2Rad(lon1);
            lon2 = GpsUtilities.Deg2Rad(lon2);
            lat1 = GpsUtilities.Deg2Rad(lat1);
            lat2 = GpsUtilities.Deg2Rad(lat2);

            double num = lon1 - lon2;
            double num2 = lat1 - lat2;
            double num3 = Math.Sin(num / 2);

            double d = (Math.Sin(num2 / 2) * Math.Sin(num2 / 2)) + (((Math.Cos(lat1) * Math.Cos(lat2)) * num3) * num3);

            double num5 = 2 * Math.Atan2(Math.Sqrt(d), Math.Sqrt(1 - d));

            double num6 = 6366.707 * num5;

            return Math.Abs(num6) * 1000;
}


Ovo 6366.707 je poluprečnik Zemlje.
Re: HITNO: Konverzija u metre 28.04.2009. u 16:27 · pre 213 meseci
izmenjeno 1 put, poslednji put sheff 28.04.2009. u 17:10
  1. sheff28.04.2009. u 17:10zapis iz teksta poruke
#3
Da li si siguran u ispravnost ove formule - za dvije tacke udaljene svega par stotina metara mi pokazuje udaljenost od 20020820,65m ili 20020,82065 Km!!!???
Re: HITNO: Konverzija u metre 28.04.2009. u 16:37 · pre 213 meseci #4
Funkciju koristim već mesecima, jedino sam ovde na dnu sad dodao ovo *1000 jer je meni u km.

Moguće je da parametri nisu odgovarajući. Geografska dužina treba da je u opsegu [-180, 180], a širina u opsegu [-90, 90].

Moguće je, ako si vrednosti vukao iz TextBox-ova, da se decimalni zarez ili tačka pogrešno tumači zbog regionalnih podešavanja.
Ako si pokušao sa zarezom, probaj sa tačkom ili obrnuto.


Možeš li da napišeš koje si parametre prosledio za te 2 tačke?
Re: HITNO: Konverzija u metre 28.04.2009. u 17:04 · pre 213 meseci #5
duzina1: -77,037852
duzna2: -77,043934
sirina1: 38,898556
sirina2: 38,897147


rezultat (km)
20020,82065


izracunato u excelu
Re: HITNO: Konverzija u metre 28.04.2009. u 17:17 · pre 213 meseci #6
Ja sam dobio

0.54878575105105143km

odnosno

548.78575105105143m


Moguće je da je u pitanju nešto oko prebacivanja ove funkcije u Excel.
Re: HITNO: Konverzija u metre 28.04.2009. u 17:28 · pre 213 meseci
izmenjeno 1 put, poslednji put sheff 28.04.2009. u 17:42
  1. sheff28.04.2009. u 17:42zapis iz teksta poruke
#7
Duzine (longitude) i sirine(latitude) u radijanima:

lon1: -1,344564166
lon2: -1,344670317
lat1: 0,678907876
lat2: 0,678883285

druge varijable iz tvoje funkcije:

num: 0,000106151
num2: 2,45917E-05
num3: 5,30755E-05
d: 1,85744E-09
num5: 3,141506457

num6(km): 20020,8207
konacno(m): 20020820,65

gdje je sad ovdje greska (koristio sam poluprecnik=6373, ali razlika je zanemariva)?

BTW: Kako modificirati gornju formulu da ukljucuje i nadmorsku visinu?
Re: HITNO: Konverzija u metre 28.04.2009. u 17:46 · pre 213 meseci #8
Probao sam sa tvojim vrednostima, naravno bez pocetne konverzije u radijane koju si uradio.

Sve je isto do num5.

Meni je num5 = 0.000086196028024059188, a tebi je num5 = 3,141506457.

Da pojasnim šta znači metoda iz .neta Math.Atan2(y, x), možda se tu krije problem.

Math.Atan2(y, x) je ugao za koji je nagib tangente količnik y/x.

Dakle, ako imaš na raspolaganju funkciju arctg, možeš napisati

arctg(Math.Sqrt(d) / Math.Sqrt(1 - d)).

Trebalo je odmah ovo da napomenem na početku.


Re: HITNO: Konverzija u metre 28.04.2009. u 18:05 · pre 213 meseci #9
Mnogo hvala Marko, proradilo je :)

2. Pitanje: Kako modificirati gornju formulu da ukljucuje i nadmorsku visinu? Znaci ako je jedna tacka na nekom brdu a druga negdje u dolini (npr. 300m raztlike u visini), onda bi i ove parametre treblo ukljuciti u proracun...
Re: HITNO: Konverzija u metre 28.04.2009. u 18:17 · pre 213 meseci #10
Za moje potrebe, iako imam na raspolaganju i altitude, to bi bio overkill.

Na dovoljno većim distancama, razlika je dovoljno zanemarljiva.

Za male distance o kojima govoriš, a koje su reda 100m i kod kojih se ne oseća "zakrivljenost" površine Zemlje, dovoljno bi precizno bilo da posle ovoga uradiš Pitagorinu teoremu.

D = sqrt ( (altitude2 - altitude1)2 + distance2 )

gde je distance ovo što smo do sada računali.
Re: HITNO: Konverzija u metre 28.04.2009. u 18:55 · pre 213 meseci #11
ovo sam i uradio :) ali eto za svaki slucaj... nasao sam na netu dosta toga oko kartografije i koordinatnih sistema... hvala jos jednom...
Re: HITNO: Konverzija u metre 16.07.2009. u 00:05 · pre 210 meseci
izmenjeno 1 put, poslednji put miki78ns 16.07.2009. u 01:34
  1. miki78ns16.07.2009. u 01:34zapis iz teksta poruke
#14
Nigde nemogu naci neki sajt gde ce mi konvertovati latitude, longitude u x,y koordinate?
Evo nasao sam http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html
cudno mi je imam gps na motorola a925 mobilnom i kad izracunam preko tog sajta x,y koordinatu i uporedim sa stvarnom koordinatom na mestu gde sam merio sa motorolom dobijam gresku od oko 1422m to je jako puno, probao sam jos na drugoj tacki tu je bila greska 1491m znaci priblizno ista greska sto je zanimljivo, a nadmorsku visinu mislim da pokazuje vise za oko 40m. Koristim program GPSMapViewII, ne znam da li se greska pojavljuje zbog samog programa ili do samog GPS-a na telefonu. Mozda bi se nekako oduzimanjem te greske moglo izracunati priblizno tacna koordinata.
Re: HITNO: Konverzija u metre 17.07.2009. u 13:43 · pre 210 meseci #15
Nisam siguran kako si došao do "stvarne x/y koordinate". Ono što ti daje GPS je verovatno širina i dužina. Ako se radi o x i y koordinatama, to su koordinate u projekcionoj ravni, kojih može biti bezbroj. Ono što možeš preračunati prateći link se dobija u UTM projekciji. U Srbiji se mnogo češće koristi Gaus-Krigerova projekcija, koja je u suštini ista projekcija kao i UTM ali se koriste drugačiji parametri, pa se dobiju i drugačije x/y kordinate u odnosu na UTM.
Potpis
Pavel - yt7ta
Re: HITNO: Konverzija u metre 17.07.2009. u 22:43 · pre 210 meseci
izmenjeno 1 put, poslednji put miki78ns 19.07.2009. u 08:25
  1. miki78ns19.07.2009. u 08:25zapis iz teksta poruke
#16
Nemogu da pronadjem na netu online convertor latitude/longitude -> gauss kruger pa da proverim kolika bi se greska pojavila tada. Ali neverujem da se moze tolika razlika od 1400m pojaviti izmedju UTM i gauss kruger.
Ali cak i bez prebacivanja geografskih koordinata (latitude,longitude) u drugi oblik vidim preko google maps da ovaj gps na mobilnom pravi gresku jer tu poziciju na kojoj sam izmerio na google mapi pokazuje po mojoj proceni oko 800m dalje. Pokusacu da dodavanjem neke konstantne vrednosti bar smanjim tu gresku bar ispod 100m.
Otprilike ispada da trebam dodati po 9.45" i na latitudu i longitudu. Problem je kad mobilni stoji fiksno bez pomeranja njemu stalno variraju ti brojevi koji pokazuju stotinke, mozda zbog oblacnosti ili broja satelita ne znam ni sam. Drugo je ako se krecem sa mobilnim pa ga ostavim na jedno mesto pa da se kaze da mu treba neko vreme da se stabilizuje ali cak i kad se prvi put konektuje, tj dobija koordinate on varira.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme