(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
położenie geograficzne
wojsy
2006-07-13 12:51:44 UTC
Witam.
Mo¿e kto¶ podpowie jak wprowadzaæ do accesa po³o¿enie geograficzne, tak by
mo¿na by³o póŒniej obliczaæ odleg³o¶c miedzy 2 punktami na globie?
Tomasz Kiełpiński
2006-07-13 16:13:45 UTC
Post by wojsy
Witam.
Może ktoś podpowie jak wprowadzać do accesa położenie geograficzne, tak by
można było później obliczać odległośc miedzy 2 punktami na globie?
W formularzu jak Pan Bóg przykazał w wersji user friendly
(stopnie,godziny,minuty,kierunek)
A potem funkcyjka przerabiająca to na podwójną precyzję i tak przechowywać w
tabeli
I dobry algorytm do obliczania dystansu w zależności od szerokości
geograficznej.

Pozdrawiam,
Kiełpiś
--
Było smaszno, a jaszmije smukwijne Tomasz Kiełpiński
Świdrokrętnie na zegwniku wężały, a.k.a. "Kiełpiś"
Peliczaple stały smutcholijne Odpowiadając prywatnie,
I zbłąkinie rykoświstąkały. usuń: FALSZYWY z adresu
wojsy
2006-07-16 14:23:33 UTC
Wielkie dziêki ale spodziewa³em sie czego¶ bardziej odkrywczego
Post by wojsy
Witam.
Mo¿e kto¶ podpowie jak wprowadzaæ do accesa po³o¿enie geograficzne, tak by
mo¿na by³o póŒniej obliczaæ odleg³o¶c miedzy 2 punktami na globie?
W formularzu jak Pan Bóg przykaza³ w wersji user friendly
(stopnie,godziny,minuty,kierunek)
A potem funkcyjka przerabiaj±ca to na podwójn± precyzjê i tak przechowywaæ
w
tabeli
I dobry algorytm do obliczania dystansu w zale¿no¶ci od szeroko¶ci
geograficznej.
Pozdrawiam,
Kie³pi¶
--
By³o smaszno, a jaszmije smukwijne Tomasz Kie³piñski
Šwidrokrêtnie na zegwniku wê¿a³y, a.k.a. "Kie³pi¶"
Peliczaple sta³y smutcholijne Odpowiadaj±c prywatnie,
I zb³±kinie ryko¶wist±ka³y. usuñ: FALSZYWY z adresu
Krzysztof Naworyta
2006-08-08 19:21:04 UTC
Juzer wojsy <***@poczta.onet.pl> napisał

||| Może ktoś podpowie jak wprowadzać do accesa położenie geograficzne,
||| tak by można było później obliczać odległośc miedzy 2 punktami na
||| globie?
||
|| W formularzu jak Pan Bóg przykazał w wersji user friendly
|| (stopnie,godziny,minuty,kierunek)
|| A potem funkcyjka przerabiająca to na podwójną precyzję i tak
|| przechowywać w tabeli
|| I dobry algorytm do obliczania dystansu w zależności od szerokości
|| geograficznej.


| Wielkie dzięki ale spodziewałem sie czegoś bardziej odkrywczego

Dręczyło mnie to! Googlałem, ale jakoś nic nie utrafiłem ...
W domu książek matematycznych już ani jednej, pozostawione u różnych
krewnych i znajomych ...

Zagryzłem zęby, wziąłem ołówek i po kilku pyfkach nagryzmoliłem wzór:

OdlGeog = ArcCos(Cos(dTheta) * Cos(dFi)) * R

gdzie:
dTheta - różnica wysokości geograficznych (w radianach)
dFi - różnica szerokości geograficznych (w radianach)
R - promień ziemi

Odległość liczona oczywiście po obwodzie koła wielkiego, przechodzącego
przez obydwa punkty, zakładając, że powierzchnia Ziemi jest idealną sferą
...

Teraz PROŚBA do wszystkich, czy aby jest to poprawne ...

Poniżej treść moduliku, który powyższy "wzorek" implementuje:

************ odległość geograficzna *************

Option Compare Database
Option Explicit

Type KAT
stopnie As Integer
minuty As Integer
sekundy As Integer
NorthEast As Boolean
End Type

Type PUNKT
szerokosc As KAT
wysokosc As KAT
End Type

Function OdlGeog(punkt1 As PUNKT, punkt2 As PUNKT)

Dim dFi As Double, dTheta As Double
Dim R As Double

R = 40000 / 2 / Pi ' promien ziemi

dFi = Abs(StopnieToRad(punkt2.szerokosc) -
StopnieToRad(punkt1.szerokosc))
dTheta = Abs(StopnieToRad(punkt2.wysokosc) -
StopnieToRad(punkt1.wysokosc))

OdlGeog = ArcCos(Cos(dTheta) * Cos(dFi)) * R

End Function

Function ArcCos(X)
ArcCos = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
End Function

Function StopnieToRad(k As KAT) As Double
StopnieToRad = (k.stopnie + k.minuty / 60& + k.sekundy / 3600&) * 2 * Pi
/ 360& * IIf(k.NorthEast, 1, -1)
End Function

Function Pi() As Double
Pi = 4 * Atn(1)
End Function


Function test()
Dim warszawa As PUNKT
Dim krakow As PUNKT
Dim seattle As PUNKT

With warszawa
With .szerokosc
.stopnie = 21: .minuty = 2: .NorthEast = 1
End With
With .wysokosc
.stopnie = 52: .minuty = 13: .NorthEast = 1
End With
End With

With krakow
With .szerokosc
.stopnie = 19: .minuty = 57: .NorthEast = 1
End With
With .wysokosc
.stopnie = 50: .minuty = 4: .NorthEast = 1
End With
End With

With seattle
With .szerokosc
.stopnie = 122: .minuty = 20: .NorthEast = 0
End With
With .wysokosc
.stopnie = 47: .minuty = 36: .NorthEast = 1
End With
End With

Debug.Print "wa-wa - krakow:", Round(OdlGeog(warszawa, krakow), 0)
Debug.Print "seattle - krakow:", Round(OdlGeog(krakow, seattle), 0)

End Function

*********** koniec moduliku ************
--
KN
(MVP, M$ Office Access)

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
Krzysztof Naworyta
2006-08-08 19:47:41 UTC
Juzer Krzysztof Naworyta <***@datacomp.com.pl> napisał


(...)
| Dręczyło mnie to! Googlałem, ale jakoś nic nie utrafiłem ...
| W domu książek matematycznych już ani jednej, pozostawione u różnych
| krewnych i znajomych ...
|
| Zagryzłem zęby, wziąłem ołówek i po kilku pyfkach nagryzmoliłem wzór:
|
| OdlGeog = ArcCos(Cos(dTheta) * Cos(dFi)) * R

Już wiem, że jest do doopy !

Z tym dTheta za bardzo sobie uprościłem i dla dwóch przeciwległych punktów
koło bieguna, odległych o 2 metry, funkcja zwraca mi pół równika!

Ech, żebym pamiętał jak się "obraca" współrzędne sferyczne ...
--
KN
Krzysztof Naworyta
2006-08-08 22:23:24 UTC
Juzer Krzysztof Naworyta <***@datacomp.com.pl> napisał

| (...)
|| Dręczyło mnie to! Googlałem, ale jakoś nic nie utrafiłem ...
|| W domu książek matematycznych już ani jednej, pozostawione u różnych
|| krewnych i znajomych ...
||
|| Zagryzłem zęby, wziąłem ołówek i po kilku pyfkach nagryzmoliłem wzór:
||
|| OdlGeog = ArcCos(Cos(dTheta) * Cos(dFi)) * R
|
| Już wiem, że jest do doopy !
|
| Z tym dTheta za bardzo sobie uprościłem i dla dwóch przeciwległych
| punktów koło bieguna, odległych o 2 metry, funkcja zwraca mi pół
| równika!
|
| Ech, żebym pamiętał jak się "obraca" współrzędne sferyczne ...

Dobra, nie bez pomocy googla (jednak temat na najprzeróżniejszych grupach
żeglarsko/nawigacyjnych czy astronomicznych jest wałkowany non-stop!) -
udało się ! (chyba)

Przy okazji:
- przypomniałem sobie o iloczynie skalarnym wektorów i kącie między nimi
- dowiedziałem się co to jest mila morska!
To jedna minuta odległości kątowej!
(a nie jakieś pierdy, że to prawie dwa kilometry)
- dowiedziałem się dlaczego "długość geograficzna" to coś w poziomie a
"szerokość" w pionie!
(to od długości i szerokości Morza Śródziemnego, ha!)

<dygresja mode>

Kurde, tyle niepotrzebnych rzeczy wkuwało sie na geografii: roczniki
statystyczne i inne bzdury ...
Miałem straszną psorkę - postrach w województwie! I co z tego? Wkute
wylatywało góra po tygodniu/miesiącu ...
Gdyby "psorka" wyjaśniła, że to ze starożytności, człek by zapamiętał na
całe życie i nigdy się nie mylił ...)

Czemu nauczyciele nie okraszają wiedzy takimi smaczkami przeróżnymi ???
Odpowiedź jest chyba jedna: w swej większości oni pojęcia o nich nie mają!
Żenada ...

</dygresja mode>

Wzór nadal zakłada, że Ziemia jest idealną sferą. Jak komus to nie
wystarcza, niech googla dalej.
Promień Ziemi można przyjąć jako średnią z promienia równikowego i
"biegunowego" a nie wyliczać z długości równika ... Można jakieś geoidy i
inne przybliżenia kształtu Ziemi ...
Pytanie ino jaki jest błąd ... Bo dla odległości między miastami +-5 km to
chyba zupełnie akceptowalna ta idealna sfera.
Gorzej jak ktoś chce coś wyliczać na podstawie wpółrzędnych z GPS ...

Dobra, koniec gadania, poniżej modulik:

************* modulik nr 2 **************

Option Compare Database
Option Explicit

Type KAT
stopnie As Integer
minuty As Integer
sekundy As Integer
NorthEast As Boolean
End Type

Type PUNKT
lon As KAT 'długość (długość morza śródziemnom., czyli w poziomie!)
lat As KAT 'szerokość (szerokość morza śródziemnom., czyli w pionie!)
End Type

Function OdlGeog(p1 As PUNKT, p2 As PUNKT) As Double

Dim R As Double

R = 40000 / 2 / Pi ' promien ziemi (niedokładny)


OdlGeog = R * ArcCos(Sin(Deg2Rad(p2.lon)) * Sin(Deg2Rad(p1.lon)) _
+ Cos(Deg2Rad(p2.lon)) * Cos(Deg2Rad(p1.lon)) _
* Cos(Deg2Rad(p1.lat) - Deg2Rad(p2.lat)))


End Function

Function ArcCos(X)
If Abs(X) = 1 Then
ArcCos = -Sgn(X) * Pi
Else
ArcCos = Atn(-X / Sqr(-X * X + 1)) + Pi / 2
End If
End Function

Function Deg2Rad(k As KAT) As Double
Deg2Rad = (k.stopnie + k.minuty / 60& + k.sekundy / 3600&) _
* 2 * Pi / 360& * IIf(k.NorthEast, 1, -1)
End Function

Function Pi() As Double
Pi = 4 * Atn(1)
End Function


Function test()
Dim warszawa As PUNKT
Dim krakow As PUNKT
Dim seattle As PUNKT

With warszawa
With .lat
.stopnie = 21: .minuty = 2: .NorthEast = True
End With
With .lon
.stopnie = 52: .minuty = 13: .NorthEast = True
End With
End With

With krakow
With .lat
.stopnie = 19: .minuty = 57: .NorthEast = True
End With
With .lon
.stopnie = 50: .minuty = 4: .NorthEast = True
End With
End With

With seattle
With .lat
.stopnie = 122: .minuty = 20: .NorthEast = False
End With
With .lon
.stopnie = 47: .minuty = 36: .NorthEast = True
End With
End With

Debug.Print "wa-wa - krakow:", Round(OdlGeog(warszawa, krakow), 2)
Debug.Print "seattle - krakow:", Round(OdlGeog(krakow, seattle), 2)

Dim pk1 As PUNKT
Dim pk2 As PUNKT

With pk1
With .lat
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
With .lon
.stopnie = 89: .minuty = 59: .NorthEast = True
End With
End With

With pk2
With .lat
.stopnie = 180: .minuty = 0: .NorthEast = True
End With
With .lon
.stopnie = 89: .minuty = 59: .NorthEast = True
End With
End With

Debug.Print "pk1 - pk2:", Round(OdlGeog(pk1, pk2), 2)

With pk1
With .lat
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
With .lon
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
End With

With pk2

With .lat
.stopnie = 180: .minuty = 0: .NorthEast = True
End With
With .lon
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
End With

Debug.Print "pk1 - pk2:", Round(OdlGeog(pk1, pk2), 2)

Dim zero As PUNKT
Dim mila1 As PUNKT
Dim mila2 As PUNKT

With zero
With .lat
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
With .lon
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
End With

With mila1

With .lat
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
With .lon
.stopnie = 0: .minuty = 1: .NorthEast = True
End With
End With
With mila2

With .lat
.stopnie = 0: .minuty = 1: .NorthEast = True
End With
With .lon
.stopnie = 0: .minuty = 0: .NorthEast = True
End With
End With

Debug.Print "mila morska1:", Round(OdlGeog(zero, mila1), 3)
Debug.Print "mila morska2:", Round(OdlGeog(zero, mila2), 3)

End Function

*********** koniec modulika **********

kw: szerokosc, dlugosc geograficzna, odleglosc katowa, sfera
--
KN
(MVP, M$ Office Access)

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
Krzysztof Naworyta
2006-08-09 01:20:39 UTC
Juzer Krzysztof Naworyta <***@datacomp.com.pl> napisał

| Dobra, nie bez pomocy googla (jednak temat na najprzeróżniejszych
| grupach żeglarsko/nawigacyjnych czy astronomicznych jest wałkowany
| non-stop!) - udało się ! (chyba)

dobra! i tym razem wkradły się błędy ...

troszku posprzątałem tu i ówdzie, denerwowały mnie te TYPE i inne arcusy
tangensy/kutasy wielgusy ;-)

jeśli poniższe nadal "o dupę roztrzaś" to już kto zainteresowany niech se
sam radzi ...

***** modulik nr 3 *****

Option Compare Database
Option Explicit

Type PUNKT
dlu As Double 'długość (długość morza śródziemnom., czyli w poziomie!)
sze As Double 'szerokość (szerokość morza śródziemnom., czyli w
pionie!)
End Type

Function Deg2Rad(Optional ByVal stopnie As Double, _
Optional ByVal minuty As Double, _
Optional ByVal sekundy As Double, _
Optional ByVal NorthEast As String = "N") As Double

If NorthEast Like "[ne]" Then
Deg2Rad = (stopnie + minuty / 60 + sekundy / 3600) * 2 * Pi / 360
Else
Deg2Rad = -(stopnie + minuty / 60 + sekundy / 3600) * 2 * Pi / 360
End If

End Function


Function OdlGeog(p1 As PUNKT, p2 As PUNKT) As Double
Const R As Double = 6366.2 ' promien ziemi w kilometrach
'albo: 40000 / 2 / Pi

OdlGeog = R * ArcCos(Sin(p2.sze) * Sin(p1.sze) + Cos(p2.sze) *
Cos(p1.sze) * Cos(p1.dlu - p2.dlu))
End Function

Function ArcCos(X As Double)

If X > 1 Or X < -1 Then
X = X - Fix(X)
End If

Select Case X
Case 1
ArcCos = 0
Case -1
ArcCos = Pi
Case Else
ArcCos = Atn(-X / Sqr(1 - X ^ 2)) + Pi / 2
End Select
End Function


Function Pi() As Double
Pi = 4 * Atn(1)
End Function


Function test()
Dim warszawa As PUNKT
Dim krakow As PUNKT
Dim seattle As PUNKT
Dim sydney As PUNKT

Dim zero As PUNKT
Dim mila1 As PUNKT
Dim i As Integer

With sydney
.dlu = Deg2Rad(151, 13)
.sze = Deg2Rad(33, 52, , "S")
End With

With warszawa
.dlu = Deg2Rad(21, 2)
.sze = Deg2Rad(52, 13)
End With

With krakow
.dlu = Deg2Rad(19, 57)
.sze = Deg2Rad(50, 4)
End With

With seattle
.dlu = Deg2Rad(122, 20, , "W")
.sze = Deg2Rad(47, 36)
End With

Debug.Print "wa-wa - krakow:", Round(OdlGeog(warszawa, krakow), 2)
Debug.Print "seattle - krakow:", Round(OdlGeog(krakow, seattle), 2)
Debug.Print "sydney - krakow:", Round(OdlGeog(sydney, krakow), 2)

With zero
.sze = Deg2Rad(0, 0)
.dlu = Deg2Rad(0, 0)
End With

With mila1
.sze = Deg2Rad(0, 0)
.dlu = Deg2Rad(0, 1)
End With

Debug.Print "mila morska1:", Round(OdlGeog(zero, mila1), 3)

' zakładając, że szerokość ciągle ta sama, to jak zmienia się odległość...
For i = 0 To 90
With krakow
.dlu = Deg2Rad(19, 57)
.sze = Deg2Rad(i, 0)
End With

With seattle
.dlu = Deg2Rad(122, 20, , "W")
.sze = Deg2Rad(i, 0)
End With

Debug.Print "po równoleżnikach " & Format(i, "00") & ":",
Round(OdlGeog(krakow, seattle), 2)
Next

End Function

**** koniec modulika ****

PS.

dlaczego Deg2Rad() ma zmienne Double ? Bo chciałem, aby zachowywała się
uniwersalnie!

Bo mogę podać np. ułamkową postać sekund, nie podając stopni ani minut!
Albo tylko stopnie ułamkowo! Pełna dowolność!
A jak ktoś poda
Deg2Rad(854.31, 1234.35, 0.2345)
to mu zadziała jak DateSerial(), które radzi sobie z każdym argumentem!
Nawet
DateSerial(2000, -34, 89)


PS2.

coś mnie tu niepokoi ...
Jak świat światem wmawiano mi, ze Wa-wa - Kraków to coś ok. 300km
A tu wychodzi 250!
--
KN
(MVP, M$ Office Access)

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
Krzysztof Naworyta
2006-08-09 01:31:25 UTC
Juzer Krzysztof Naworyta <***@datacomp.com.pl> napisał


(...)
| ' zakładając, że szerokość ciągle ta sama, to jak zmienia się
| odległość... For i = 0 To 90


mówił, że zapamięta te morza nie morza ... :(

miało być:

| ' zakładając, że długości te same, to jak zmienia się
| odległość, zmieniając szerokości

ech ...
--
KN
Piotr Chlabicz
2006-08-09 10:06:16 UTC
"Krzysztof Naworyta" wrote:

Mnie sie podoba!
PS2.
co¶ mnie tu niepokoi ...
Jak ¶wiat ¶wiatem wmawiano mi, ze Wa-wa - Kraków to co¶ ok. 300km
A tu wychodzi 250!
Bo troszke sobie uprosciles.
Ja siedze na 52.2578° N 20.9913° E, zakladajac dla Krakowa Wawel, mamy:

With warszawa
.dlu = Deg2Rad(20.99, 2)
.sze = Deg2Rad(52.25, 13)
End With

With krakow
.dlu = Deg2Rad(19.94, 57)
.sze = Deg2Rad(50.04, 4)
End With

Drobna zmiana a daje to juz 262 km.
Biorac pod uwage krzywizne drogi nr 7 (lub drogi nr 1) moze byc i czysta km
:-)
Dla siodemki MapPoint pokazuje 358km.

pzdr
--
Piotr Chlabicz
http://groups.google.pl/groups?as_ugroup=pl.comp.bazy-danych.msaccess
"Krzysztof Naworyta" <***@datacomp.com.pl> wrote in message news:ebbd96$cjg$***@news.onet.pl...
Krzysztof Naworyta
2006-08-09 11:09:25 UTC
Juzer Piotr Chlabicz <ms-***@wp.pl> napisał

| Mnie sie podoba!

Dzięki ! :)


|| coś mnie tu niepokoi ...
|| Jak świat światem wmawiano mi, ze Wa-wa - Kraków to coś ok. 300km
|| A tu wychodzi 250!
|
| Bo troszke sobie uprosciles.
| Ja siedze na 52.2578° N 20.9913° E, zakladajac dla Krakowa Wawel, mamy:

powyższy zapis to stopnie z częścią dziesiętną?

| With warszawa
| .dlu = Deg2Rad(20.99, 2)
| .sze = Deg2Rad(52.25, 13)
| End With

to źle wpisałeś parametry!
Powinno być:

With warszawa
.dlu = Deg2Rad(20.9913)
.sze = Deg2Rad(52.2578)
End With

i już!

| Drobna zmiana a daje to juz 262 km.

Wawel czy dworzec główny, to różnica 1-2 km i to w poziomie ...

| Biorac pod uwage krzywizne drogi nr 7 (lub drogi nr 1) moze byc i
| czysta km :-)
| Dla siodemki MapPoint pokazuje 358km.


Może to żaden wyznacznik, ale Intercity Kraków-Warszawa podaje długość
trasy 296 km.
A mknie raczej po niewiele sfalowanej prostej ... W każdym bądź razie nie
na tyle sfalowanej, aby dołożyć 45km !

Warszawa Centralna: 21° 0'21.68''E, 52°13'54.66''N
Kraków, Dworzec Główny: 19°56'51.37''E, 50° 3'53.09''N
--
KN
(MVP, M$ Office Access)

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
Krzysztof Naworyta
2006-08-09 11:47:21 UTC
Juzer Krzysztof Naworyta <***@datacomp.com.pl> napisał

| Może to żaden wyznacznik, ale Intercity Kraków-Warszawa podaje długość
| trasy 296 km.
| A mknie raczej po niewiele sfalowanej prostej ... W każdym bądź razie
| nie na tyle sfalowanej, aby dołożyć 45km !
|
| Warszawa Centralna: 21° 0'21.68''E, 52°13'54.66''N
| Kraków, Dworzec Główny: 19°56'51.37''E, 50° 3'53.09''N

ciekawe ...
przesunięcie w poziomie między K-W wynosi ~1.00°
przesunięcie w pionie: ~2.17°

jeśli 1° = 111.11 km, to z pitagorasa mamy:

? sqr(111.11^2+(111.11*2.17)^2)
265,478506315841

a to już jest o 15 km więcej!
tyle by wynikało z samej krzywizny ???
przecież krzywizna 1 stopnia nie przekracza 0,25 km ...

ha!
zważywszy że 1 stopień odległości na równoleżniku, przesuwając się co 1
stopień w górę, traci ~60km (na naszej szerokości) ...

ludzki umysł tego nie obejmie ! :(
;-))))
--
KN
(MVP, M$ Office Access)

archiwum grupy:
http://groups.google.pl/advanced_group_search
(grupa: pl*msaccess)
Krzysztof Naworyta
2006-08-09 12:02:09 UTC
Juzer Krzysztof Naworyta <***@datacomp.com.pl> napisał

| ha!
| zważywszy że 1 stopień odległości na równoleżniku, przesuwając się co 1
| stopień w górę, traci ~60km (na naszej szerokości) ...

Dupa nie 60km! Raptem 1.5 km !
--
KN
(coraz bardziej zadziwiony tymi rozbieżnościami ...)
Piotr Chlabicz
2006-08-09 12:58:50 UTC
(coraz bardziej zadziwiony tymi rozbie¿no¶ciami ...)
Bo tak naprawde ziemia jest plaska!
;-)
--
Piotr Chlabicz
http://groups.google.pl/groups?as_ugroup=pl.comp.bazy-danych.msaccess
Marcin Ziemian
2006-08-09 11:23:07 UTC
Post by Krzysztof Naworyta
PS2.
coś mnie tu niepokoi ...
Jak świat światem wmawiano mi, ze Wa-wa - Kraków to coś ok. 300km
A tu wychodzi 250!
Ale te 300 km to w linii prostej (a w zasadzie łuku opisującym najkrótszą
trasę od punktu do punktu po sferze), czy po drogach? Jeśli tak, to musiałbyś
obliczać b. dokładnie po wszystkich zakrętasach drogi ;) No i kwestia jeszcze
wyboru optymalnej trasy (zminiaturyzowany problem komiwojażera), bo do
Krakowa z Wawy można jechać dwoma trasami (przy czym ta najkrótsza wcale nie
znaczy najszybsza ;)).

Pozdro :)
--
M.Z.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Krzysztof Naworyta
2006-08-09 17:13:54 UTC
Juzer Krzysztof Naworyta <***@datacomp.com.pl> napisał


(...)
| Przy okazji:

| - dowiedziałem się co to jest mila morska!
| To jedna minuta odległości kątowej!
| (a nie jakieś pierdy, że to prawie dwa kilometry)

i jeszcze jedno (przysięgam, nie miałem pojęcia!):
- dlaczego równik ma długość 40000km ? Czyż to nie zastanawiający zbieg
okoliczności ?

Ano nie :) Tak właśnie pierwotnie zdefiniowano 1 metr:
jako 1/10000/1000 ćwiartki długości równika!
(a w zasadzie połówki południka paryskiego, od bieguna do równika)

i już nie trzeba pamiętać ile ma mila morska:

? 40000 / 360 / 60

1,85185185185185 km

Troszku mnie ubogacił ten wątek, nie powiem ...
--
KN
Krzysztof Naworyta
2006-08-09 17:28:33 UTC
Juzer Marcin Ziemian <***@gazeta.SKASUJ-TO.pl> napisał

|| coś mnie tu niepokoi ...
|| Jak świat światem wmawiano mi, ze Wa-wa - Kraków to coś ok. 300km
|| A tu wychodzi 250!
|
| Ale te 300 km to w linii prostej (a w zasadzie łuku opisującym
| najkrótszą trasę od punktu do punktu po sferze), czy po drogach?

oczywiście, że nie po łuku koła wielkiego ;-)
Ale mimo wszystko narzut jest dość duży ! Dla linii kolejowej IC 300km (w
moim mniemaniu niemal prostej) a 250km (po wielkim kole) to jakby nie
patrzeć 20% różnicy!
Wydaje się, że było się czym niepokoić! ;-)


Ale sprawdziłem na:
http://www.sailing.radzionkow.net/greatcircle.html

i odległość Kraków-Warszawa :

135.99 mil morskich = 251,83 km
już mnie uspokoiła ...
Różnica ~200 metrów chyba nie obala "moich" wzorów, choć nie uwzględniają
spłaszczenia Ziemi ;-)

Ciekawe jednak jak ten wzór spisywałby się w miastach...
--
KN
Marcin Ziemian
2006-08-09 21:53:19 UTC
Post by Krzysztof Naworyta
oczywiście, że nie po łuku koła wielkiego ;-)
Ale mimo wszystko narzut jest dość duży ! Dla linii kolejowej IC 300km (w
moim mniemaniu niemal prostej) a 250km (po wielkim kole) to jakby nie
patrzeć 20% różnicy!
Wydaje się, że było się czym niepokoić! ;-)
http://www.sailing.radzionkow.net/greatcircle.html
135.99 mil morskich = 251,83 km
już mnie uspokoiła ...
Różnica ~200 metrów chyba nie obala "moich" wzorów, choć nie uwzględniają
spłaszczenia Ziemi ;-)
Ja przeprowadziłem pomiar w Google Earth dla następujących danych:

Kraków - środek płyty dachowej Dworca Głównego:
szer: 50 st 04 min 06.19 N, dług: 19 st 56 min 51.93 E

Warszawa - środek dachu hali dworca Centralnego:
szer: 52 st 13 min 44.04 N, dług: 21 st 00 min 11.32 E

Odległość wg Google Earth: 251,16 km.

Odległość w Twoim teście: 251,07 km.

Czyli nie tak źle ;) Chyba nie masz do siebie zbyt dużo zaufania ;P

Pozdro
--
M.Z.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Krzysztof Naworyta
2006-08-09 22:36:35 UTC
Juzer Marcin Ziemian <***@gazeta.SKASUJ-TO.pl> napisał

| Ja przeprowadziłem pomiar w Google Earth dla następujących danych:
|
| Kraków - środek płyty dachowej Dworca Głównego:
| szer: 50 st 04 min 06.19 N, dług: 19 st 56 min 51.93 E
|
| Warszawa - środek dachu hali dworca Centralnego:
| szer: 52 st 13 min 44.04 N, dług: 21 st 00 min 11.32 E
|
| Odległość wg Google Earth: 251,16 km.
| Odległość w Twoim teście: 251,07 km.

czyli błąd rzędu 0.3 promila ! Bardzo fajnie!

Bravo Marcin, zapomniałem o GoogleEarth.
Wziąłem więc pomiar na bliskim dystansie: Ronda Grzegórzeckie i Mogilskie
w Krakowie (niecały kilometr)

(...)
With krakow_mogilskie
.dlu = Deg2Rad(19, 57, 32.55)
.sze = Deg2Rad(50, 3, 56.9)
End With
With krakow_grzegorzeckie
.dlu = Deg2Rad(19, 57, 31.77)
.sze = Deg2Rad(50, 3, 27.44)
End With
(...)

odległość wynosi
dla Googla: 909,56 m
u mnie: 910,05 m

błąd rzędu 0,5 promila !

| Czyli nie tak źle ;)

Rzeczywiście, fajno ! :)

| Chyba nie masz do siebie zbyt dużo zaufania ;P

hmmm, tu wchodzimy na niebezpieczną ścieżkę ... Ale skoro prowokujesz ...
;-)
Tak, nie mam do siebie zbyt wielkiego zaufania!
Wręcz uważam, że inteligencja charakteryzuje się nie "bazą wiedzy"
(pamięcią) czy zdolnościa kojarzeń, ale ciągłym negowaniem SWOICH WŁASNYCH
wniosków/przekonań
(by je obronić lub obalić, w ciągłym wysiłku dowodowym)
I w zgodzie z powyższym STARAM SIĘ być inteligentnym ...

Dlatego PEWNYCH polityków za inteligentnych nie uważam, choć cała Polska,
czy ich popiera czy nie, ma za niezłych spryciarzy ...
Choć zakładam i to, że oni głupi nie są, jedynie pod przykrywką takiej czy
innej "głupoty" realizują inne doraźne cele ...
--
KN
Krzysztof Naworyta
2006-08-10 00:04:28 UTC
Juzer Piotr Chlabicz <ms-***@wp.pl> napisał

|| (coraz bardziej zadziwiony tymi rozbieżnościami ...)
|
| Bo tak naprawde ziemia jest plaska!
| ;-)

hyhyhy ...

No właśnie, płaska ...
Fajne są te nasze paradoksy myślenia "płaskiego" ...
Np. zgodnie z przykładem w procedurze "test", Seattle leży w zasadzie na
tej samej szerokości co Kraków.
Jak więc wytłumaczyć, że lecieliśmy nad Grenlandią ?!! ;-)

Oczywiście zakładam, ze oprócz kwestii najkrótszej drogi po łuku koła
wielkiego, dochodzi pewnie problem mniej lub bardziej (nie)korzystnych
prądów powietrznych i innych czynników ...
--
KN
Krzysztof Naworyta
2006-08-10 00:11:37 UTC
Juzer Marcin Ziemian <***@gazeta.SKASUJ-TO.pl> napisał


(...)
| Ja przeprowadziłem pomiar w Google Earth dla następujących danych:
|
| Kraków - środek płyty dachowej Dworca Głównego:
| szer: 50 st 04 min 06.19 N, dług: 19 st 56 min 51.93 E
|
| Warszawa - środek dachu hali dworca Centralnego:
| szer: 52 st 13 min 44.04 N, dług: 21 st 00 min 11.32 E
|
| Odległość wg Google Earth: 251,16 km.

Marcin,

a jak się w GE zaznacza dach jednego budynku gdzieś w Wa-wie, potem dach
innego budynku w Krakowie, by zdjąć odległość ?
Bo ja póki co umiem jedynie obliczyć tę odległość jedynie na jednym
"obrazku".

--
KN

Następna strona >
Strona 1 z 2