npr:
GRAD LATITUDA LONGITUDA
zagreb 45.8 16
varazdin 46.3044 16.3378
split 43.5139 16.4558
bonn 50.7333 7.1
paris 48.8667 2.3333
london 51.5 -0.1167
Misljenja sam kako ti tu treba malo vise od obicnog sql upita jer se
radi o projekcijama u odredjenom sustavu - http://en.wikipedia.org/wiki/Map_projection
R
�ini mi se da bi ovdje
http://www.movable-type.co.uk/scripts/latlong.html
trebao na�i sve �to ti treba.
--
== Matemati�ko podzemlje ==
http://www.matematicko-podzemlje.com/
http://matka.forumotion.com/
http://www.travian.com.hr/?uc=hr3_5588
Evo ja imam zgodnu SQL funkciju ali u miljama (potrebno pretvoriti
milje u kilometre: 1 milja = 1,609344 km). Tako�er, ova
funkcija izracunava radijalnu udaljenost u miljama izmedju gradova a
ne stvarnu udaljenost koju prelazis cestom.
-------------------------------------------------------------------------
-------------------------------------------------------------------------
CREATE function dbo.Udaljenost( @lat1 float , @long1 float , @lat2 float
, @long2 float) RETURNS FLOAT
AS
BEGIN
DECLARE @DegToRad AS FLOAT
DECLARE @Ans AS FLOAT
DECLARE @Miles AS FLOAT
SET @DegToRad = 57.29577951
SET @Ans = 0
SET @Miles = 0
IF @lat1 IS NULL OR @lat1 = 0 OR @long1 IS NULL OR @long1 = 0 or @lat2 IS NULL OR @lat2 = 0 OR @long2 IS NULL OR @long2 = 0
BEGIN
RETURN (@Miles)
END
SET @Ans = SIN(@lat1 / @DegToRad) * SIN(@lat2 / @DegToRad) + COS(@lat1 / @DegToRad ) * COS( @lat2 / @DegToRad ) * COS(ABS(@long2 - @long1 )/@DegToRad)
SET @Miles = 3959 * ATAN(SQRT(1 - SQUARE(@Ans)) / @Ans)
SET @Miles = CEILING(@Miles)
RETURN (@Miles)
END
> On Fri, 10 Jul 2009 18:55:28 +0200, IV@N wrote:
>
>> Ovako, dali mi moze netko napisat sql upti koji racuna udaljenost u KM
>> izmedju dva grada na temelju zadane latitude i longitue...
>>
>> npr:
>>
>> GRAD LATITUDA LONGITUDA
>>
>> zagreb 45.8 16
>> varazdin 46.3044 16.3378
>> split 43.5139 16.4558
>> bonn 50.7333 7.1
>> paris 48.8667 2.3333
>> london 51.5 -0.1167
>
> �ini mi se da bi ovdje
> http://www.movable-type.co.uk/scripts/latlong.html
> trebao na�i sve �to ti treba.
>
Pa nisam neki veliki matemati�ar, ali �ini mi se da se ovdje radi o obi�nom
pravokutnom trokutu kojem treba na�i du�inu hipotenuze?
> Pa nisam neki veliki matematicar, ali cini mi se da se ovdje radi o
> obicnom pravokutnom trokutu kojem treba naci dulinu hipotenuze?
ali cini mi se da je zemlja okrugla...
--
Exception up = new Exception("Something is really wrong.");
throw up;
> abraxas <abr...@braxasa.hr> wrote in
> news:1v0jlwvaqs0kx$.8sbcp6i1...@40tude.net:
>
>> Pa nisam neki veliki matematicar, ali cini mi se da se ovdje radi o
>> obicnom pravokutnom trokutu kojem treba naci dulinu hipotenuze?
>
> ali cini mi se da je zemlja okrugla...
Pa koordinatni sustav je dvodimenzionalan, ne?Osim toga, odstupanje zbog
zakrivljenosti bi trebalo biti neznatno...ili ne?;)Rekoh, nisam neki
matemati�ar...
>> Pa nisam neki veliki matematicar, ali cini mi se da se ovdje radi o
>> obicnom pravokutnom trokutu kojem treba naci dulinu hipotenuze?
>
> ali cini mi se da je zemlja okrugla...
Sre�a pa su na to ve� mislili pametni ljudi koji su uspostavili sustav
zemljopisnih �irina i du�ina kakav danas koristimo.
--
I support Google's plan for world domination,
I believe they will be merciful dictators.
Krene� u bilo kojem smjeru, napravi� put od 40000 km i na�e� se u polaznoj
to�ki.
Ide� 180 stupnjeva u jednom smjeru i prije�e� 20000 km. Nakon toga ide� 180
stupnjeva u okomitom smjeru i opet prije�e� put od 20000 km. Na kraju se na�e� u
po�etnoj to�ki. Kakav je to pravokutni trokut koji ima katete du�ine 20000 km, a
hipotenuzu 0 km?
Ideďż˝ proizvoljno daleko u jednom smjeru. Nakon toga kreneďż˝ 10000 km u okomitom
smjeru i na�e� se uvijek 10000 km daleko od polazne to�ke.
Zemlja je okrugla.
Pa to je jasno, ali ako �eli� prona�i udaljenost izme�u gradova unutar
Europe, npr., ili unutar Hrvatske...osim toga, ne znam kako bi mogao
izra�unati stvarnu udaljenost izme�u gradova koji se nalaze na suprotnim
stranama globusa, koriste�i samo standardni koordinatni sustav?Rekoh, nisam
neki matemati�ar pa imajte razumijevanja...;)
Ovdje se radi o tzv sfernoj trigonometriji, gdje ne va�e klasi�na
pravila. Primjerice, pravokutni trokut mo�e imati tri (tri) tjemena s
kutovima od 90 stupnjeva.
Drugo, mapiranje LAT-LON --> tvoj "dvodimenzionalni coord sustav" je
vrlo nelinearno, tako da zanemarivanje bilo kakvih odstupanja bez dublje
analize (puno dublje od one koju si ti odradio) mo�e dovesti do vrlo
velikih gre�aka.
OK, i koja bi onda bila mat.formula po kojoj bi mogli odrediti najkra�u
udaljenost izme�u dvije to�ke na toj vrsti koord.sustava?
> On Sun, 12 Jul 2009 14:00:56 +0200, Leclerc wrote:
>
>>> Pa koordinatni sustav je dvodimenzionalan, ne?Osim toga, odstupanje zbog
>>> zakrivljenosti bi trebalo biti neznatno...ili ne?;)Rekoh, nisam neki
>>> matematičar...
>>
>> Ovdje se radi o tzv sfernoj trigonometriji, gdje ne važe klasična
>> pravila. Primjerice, pravokutni trokut može imati tri (tri) tjemena s
>> kutovima od 90 stupnjeva.
>>
>> Drugo, mapiranje LAT-LON --> tvoj "dvodimenzionalni coord sustav" je
>> vrlo nelinearno, tako da zanemarivanje bilo kakvih odstupanja bez dublje
>> analize (puno dublje od one koju si ti odradio) može dovesti do vrlo
>> velikih grešaka.
>
> OK, i koja bi onda bila mat.formula po kojoj bi mogli odrediti najkraću
> udaljenost između dvije točke na toj vrsti koord.sustava?
Ma to je jednostavno, samo se ovdje radi o sfernoj trigonometriji.
Iako se mora znati da kada se govori o racunanju rastojanja na osnovu
kutnih koordinata, to je poprilicno pogresno, jer se korsiti
matematicki model oblika Zemlje koji je priblizan ali ne odgovara
stvarima u prirodi. Zapravo zemla je oblika geoida, a iz razloga
matematicke sefinisanosti, ovaj oblik se aproksimira na obrtni
elipsoid...
Ali za jednostavno racunanje moze posluziti i lopta...
Za svaku tocku na lopti potrebne su nam po jedna latituda i longituda.
Ako imamo dvije tocke za koje trebamo izracunati udaljenost onda cemo
imati po dvije latitude i longitude (lat1 i long1; lat2 i long2).
R = zemljin poluprecnik (= 6,371km)
d = udaljenost izmedju dvije tocke na zemljinoj planeti:
dLat = lat2− lat1
dLong = long2− long1
d = ?
------------------------------------------------------------------------
a = sin²(dLat/2) + cos(lat1) x cos(lat2) x sin²(dLong/2)
----------------------------------
c = 2 x atan2(√a, √(1−a))
----------------------------------
d = R x c
Manje udaljenosti, dakle to�ke s bliskim geografskim koordinatama, mo�e�
aproksimirati pravokutnim trokutom; to ujedno zna�i i da lokalno Zemlju
aproksimiraďż˝ ravninom.
Primjerice, ukoliko Grad1 ima koordinate (lat1, lon1) a Grad2 (lat2, lon2),
udaljenost mo�e� izra�unati formulom
d = R * SQRT((lat1-lat2)^2 + (lon1-lon2)^2)
gdje je R polumjer zemlje (cca 6.371.009 m), a koordinate su u radijanima.
Ukoliko bi na taj na�in izra�unali udaljenost Zagreba i Splita (koriste�i
podatke koje si dao) dobili bi
d1 = 259.206 m (cca 259,2 km)
S druge pak strane, koriste�i sferni kosinusni pou�ak (dakle sada Zemlju
aproksimiramo sferom te koristimo sfernu trigonometriju) za ista dva grada
dobivamo udaljenost:
d2 = 256.746 m (cca 256,7 km).
Ostaje nam joďż˝ Vincentyjeva metoda (ona pretpostavlja da je Zemlja
elipsoid; najto�nija od ove 3 metode; za detalje predla�em guglanje); za
ista dva grada bi udaljenost bila
d3 = 256.602 m (cca 256,6 km)
Treba primjetiti da je gre�ka prve metode u odnosu na tre�u 1% i ta gre�ka
raste kako raste udaljenost gradova (Zagreb-London bi imao katastrofalno
veliku pogre�ku, da ne govorimo o Zagreb-New York ili sli�nim
udaljenostima...).
Gre�ka druge metode u odnosu na tre�u je oko 0,05% - gotovo zanemarivo.
Hvala na iscrpnoj i korisnoj analizi.
pozzz
"Josip" <ji...@ffos.hr> wrote in message news:h3avt2$u7$1...@news1.carnet.hr...
> IV@N wrote:
>
>>
>> Ovako, dali mi moze netko napisat sql upti koji racuna udaljenost u KM
>> izmedju dva grada na temelju zadane latitude i longitue...
>>
>> npr:
>>
>> GRAD LATITUDA LONGITUDA
>>
>> zagreb 45.8 16
>> varazdin 46.3044 16.3378
>> split 43.5139 16.4558
>> bonn 50.7333 7.1
>> paris 48.8667 2.3333
>> london 51.5 -0.1167
>
> Evo ja imam zgodnu SQL funkciju ali u miljama (potrebno pretvoriti
> milje u kilometre: 1 milja = 1,609344 km). Tako�er, ova
Vidi se tko je dobro izvjezbao Kurepu i Demidovi�a...
Pozz! :)
Zapitaj se kolika je udaljenost izmedju dva merijdijana na ekvatoru, a
kolika je npr. u Zagrebu? A kolika je na sjevernom/juznom polu?
--
bbabic(a)globalnet.hr
2b||!2b?
Greska jako brzo raste i sa udaljavanjem od ekvatora. Oko polova je situacija
prilicno gadna. Kao prakticnu posljedicu toga, vecina ljudi misli da je
Grenland ogroman, a u biti je manji od Madagaskara. Za sto je kriva najcesca
projekcija na kartama koju srecemo u skolama (mercatorova) koja radi sto i
prva metoda - aproksimira kuglu sa ravninom.
But, we digress...
> In article <7iihjf5glbb4.4la2v1rrxgxn$.d...@40tude.net>,
> math.ma...@gmail.com says...
>> Treba primjetiti da je greška prve metode u odnosu na tre?u 1% i ta greška
>> raste kako raste udaljenost gradova (Zagreb-London bi imao katastrofalno
>> veliku pogrešku, da ne govorimo o Zagreb-New York ili sli?nim
>> udaljenostima...).
>
> Greska jako brzo raste i sa udaljavanjem od ekvatora. Oko polova je situacija
> prilicno gadna. Kao prakticnu posljedicu toga, vecina ljudi misli da je
> Grenland ogroman, a u biti je manji od Madagaskara.
:)))) I od Krka.
> Manje udaljenosti, dakle to�ke s bliskim geografskim koordinatama, mo�e�
> aproksimirati pravokutnim trokutom; to ujedno zna�i i da lokalno Zemlju
> aproksimiraďż˝ ravninom.
>
> Primjerice, ukoliko Grad1 ima koordinate (lat1, lon1) a Grad2 (lat2, lon2),
> udaljenost mo�e� izra�unati formulom
> d = R * SQRT((lat1-lat2)^2 + (lon1-lon2)^2)
> gdje je R polumjer zemlje (cca 6.371.009 m), a koordinate su u radijanima.
>
Ta priblizna metoda ne daje ni priblizno dobre rezultate zato jer je luk
koji odgovara razlici od jednog stupnja latitude (na sferi) uvijek
jednake duljine ali to sa longitudom nije slucaj, zavisi na kojoj se
latitudi nalazi luk. No uz malu dodatnu komplikaciju da razliku
longituda prvo pomnozimo sa kosinusom latitude (ili srednje vrijednosti
one dvije latitude) dobivamo formulu koja daje dobre priblizne rezultate
za manje udaljenosti prakticki bilo gdje na Zemlji. Osim u blizini polova...
Boris
> Ta priblizna metoda ne daje ni priblizno dobre rezultate zato jer je luk
> koji odgovara razlici od jednog stupnja latitude (na sferi) uvijek
> jednake duljine ali to sa longitudom nije slucaj, zavisi na kojoj se
> latitudi nalazi luk. No uz malu dodatnu komplikaciju da razliku
> longituda prvo pomnozimo sa kosinusom latitude (ili srednje vrijednosti
> one dvije latitude) dobivamo formulu koja daje dobre priblizne rezultate
> za manje udaljenosti prakticki bilo gdje na Zemlji. Osim u blizini polova...
>
> Boris
To�no tako. :-)
No, ovo nije bio �lanak za MFL ili sli�ni �asopis pa nema potrebe i�i
toliko detaljno. Bitno je da je IV@N dobio jasnu informaciju o (ne)to�nosti
metoda. :-)