🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

16 total messages Started by Jan Drawski Wed, 17 Apr 2013 09:18
Obliczanie odległości między dwoma punktami
#90301
Author: Jan Drawski
Date: Wed, 17 Apr 2013 09:18
29 lines
2076 bytes
Właśnie piszę program, którego jednym z elementów jest obliczanie 
odległości. Moja wiedza z tego zakresu jest mała - brak wykształcenia w 
tym kierunku. Ze względu na to muszę korzystać z "gotowych" algorytmów. 
Niestety okazuje się, że nie ma jakiegoś uznanego za ten najlepszy, 
przynajmniej ja na takie informacje nie trafiłem. Zacząłem testować dla 
punktów (mniej więcej przekątna "lądowa" polski - WGS84):
1. Lat: 49.004547, Lon: 22.889641
2. Lat: 53.920561, Lon: 14.176810
Wyniki:
1. http://www.nhc.noaa.gov/gccalc.shtml 813 km.
2. http://www.gwardak.com/distance.htm 814.07 km.
3. Zaimplementowany prze zemnie Vincenty 814.907 km.
4. Obca implementacja Vincent'a 814,908 km.
5. "Ellipsoid" 814,909 km.
6. "Sphere" 813,248 km.

Dla mnie niby ta dokładność nie jest bardzo ważna ale chciałbym to 
zrobić jak najlepiej. Zacząłem już nawet czytać o quasigeoidach, np tu:
http://www.igik.edu.pl/index.php/pl/geodezja/grawimetria/geoida/313
Tylko niestety nie wiem jak to ugryźć a nawet czy to ma duży związek z 
moimi obliczeniami.

Czy ktoś wie jak to najlepiej obliczyć, jakieś delikatne naprowadzenie? 
Jaka to by była odległość, gdyby ją obliczył geodeta, może mi ktoś 
napisze jaki powinien być najdokładniejszy wynik?

-- 
Pozdrawiam
Janek
Re: Obliczanie odległości między dwoma punktami
#90302
Author: Wojciech Ścigała
Date: Wed, 17 Apr 2013 13:33
27 lines
2384 bytes
Użytkownik Jan Drawski napisał:

> Wyniki:
> 1. http://www.nhc.noaa.gov/gccalc.shtml 813 km.
> 2. http://www.gwardak.com/distance.htm 814.07 km.
> 3. Zaimplementowany prze zemnie Vincenty 814.907 km.
> 4. Obca implementacja Vincent'a 814,908 km.
> 5. "Ellipsoid" 814,909 km.
> 6. "Sphere" 813,248 km.
>
> Dla mnie niby ta dokładność nie jest bardzo ważna ale chciałbym to
> zrobić jak najlepiej.
Wszystkie te wzory mają jedną zaletę - dokładność rośnie ze skracaniem 
się dystansu (a na bardzo krótkich odcinkach to nawet Pitagoras daje 
radę!). Mało które zastosowanie wymaga większej precyzji, niż oferują 
pokazane przez Ciebie wzory. Jak sam widzisz, trzy z nich (jak mniemam 
elipsoidalne) dają wyniki z zakresie 2 metrów. Zacznij się raczej 
zastanawiać, jaki błąd mają współrzędne wyjściowe.

> Czy ktoś wie jak to najlepiej obliczyć, jakieś delikatne naprowadzenie?
> Jaka to by była odległość, gdyby ją obliczył geodeta, może mi ktoś
> napisze jaki powinien być najdokładniejszy wynik?
Geodeci się nie znają na dużych dystansach. Dzwoń do geografów albo 
astronomów.

-- 
Wojtuś
Re: Obliczanie odległości między dwoma punktami
#90303
Author: Robert Tomasik
Date: Wed, 17 Apr 2013 16:50
21 lines
2483 bytes
Użytkownik "Jan Drawski" <dfghdfg@o2.pl> napisał w wiadomości 
news:kklpca$f3u$1@speranza.aioe.org...

> Czy ktoś wie jak to najlepiej obliczyć, jakieś delikatne naprowadzenie? 
> Jaka to by była odległość, gdyby ją obliczył geodeta, może mi ktoś 
> napisze jaki powinien być najdokładniejszy wynik?

Rozbieżności w wynikach wynikają z faktu, że żaden z tych wyników nie jest 
rzeczywistą odległością, a każdy wzór daje jakieś tam przyliżenie oparte na 
takich, czy innych założeniach. Ziemia nie jest kulą. Gdyby była, to dałoby 
się w miarę ściśle te odległości wyznaczyć. Różni geografowie (bo Wojtek 
celnie podniósł, że geodeci, to raczej mniejsze odległości mierzą) w różny 
sposób przybliżali ziemię. Przeważnie jakimiś elipsoidami.

Zwróć uwagę, że dokładność rzędu jednej milionowej stopnia na równiku daje 
około 40 metrów wzdłuż równika. Im bliżej bieguna, to oczywiście błąd ten 
się zmniejsza, ale i tak bedzie to kilka metrów. Kilka metrów na jednym 
punkcie, kilka na drugim i już masz spory błąd pochodzącym od danych, zatem 
nie ma głębszego sensu liczyć tego z dokładnością do milimetra - zwłaszcza, 
że i tak jest to poniekąd jakaś wirtualna odległość, bo przecież nie da się 
nią przemieścić. 
Re: Obliczanie odległości między dwoma punktami
#90304
Author: Jan Drawski
Date: Wed, 17 Apr 2013 19:51
23 lines
1887 bytes
Wielkie dzięki za odpowiedzi, którymi trochę mnie zaskoczyliście :)
Spodziewałem się bardziej naprowadzania na jakieś skomplikowane wzory, 
dane potrzebne do wyliczeń.
Sam nawet miałem już zamiar szukania punktów wysokościowych, warstwic 
aby używać ich do obliczeń. Wyobrażałem sobie to tak:
1. Stworzenie bazy warstwic.
2. Obliczenie punktów przecięć tych warstwic z linią łączącą punkty mnie 
interesujące.
3. Obliczenie długości wszystkich powstałych odcinków biorąc pod uwagę 
oś Z (wysokość).
4. Zsumowanie długości odcinków.

Ciekawie to by mogło wyglądać w górach, użytkownik na mapie mierzył by 
odległość, która teoretycznie miała by kilka metrów a wynik mógłby być 
wielokrotnie większy. Ze względu na to, wydaje mi się, że to by był zły 
pomysł, wynik mógłby być nieporównywalnie większy, niż ten który w tej 
chwili otrzymuję.
Reasumując, zostaje przy tym co mam. Dzięki waszym podpowiedziom nie 
szukam więcej dziury w całym.

-- 
Pozdrawiam
Janek
Re: Obliczanie odległości między dwoma punktami
#90305
Author: Wojciech Ścigała
Date: Wed, 17 Apr 2013 20:42
16 lines
1864 bytes
Użytkownik Jan Drawski napisał:

> Ciekawie to by mogło wyglądać w górach, użytkownik na mapie mierzył by
> odległość, która teoretycznie miała by kilka metrów a wynik mógłby być
> wielokrotnie większy. Ze względu na to, wydaje mi się, że to by był zły
> pomysł, wynik mógłby być nieporównywalnie większy, niż ten który w tej
> chwili otrzymuję.
To by była powiedzmy "odległość profilowa". Z pewnością takie coś ma 
ciekawe zastosowania, ale z odległością geograficzną nie ma nic wspólnego.

> Reasumując, zostaje przy tym co mam. Dzięki waszym podpowiedziom nie
> szukam więcej dziury w całym.
Bierz elipsoidę i powodzenia! :)

-- 
Wojtuś
Re: Obliczanie odległości między dwoma punktami
#90306
Author: Jan Drawski
Date: Thu, 18 Apr 2013 04:20
12 lines
1250 bytes
> To by była powiedzmy "odległość profilowa". Z pewnością takie coś ma
> ciekawe zastosowania, ale z odległością geograficzną nie ma nic wspólnego.

Myślałem, że jest inaczej, szukałem zależności :)

> Bierz elipsoidę i powodzenia! :)

I tak zrobiłem, dzięki :)

-- 
Pozdrawiam
Janek
Re: Obliczanie odległości między dwoma punktami
#90313
Author: J.F
Date: Thu, 18 Apr 2013 18:39
29 lines
2055 bytes
Użytkownik "Jan Drawski"  napisał w wiadomości grup 
dyskusyjnych:kklpca$f3u$1@speranza.aioe.org...

A jak to sie liczy na elipsoidzie ?
bo zaczalem obliczac odleglosc miedzy
0N  0E  i 5N 0E  a potem
50N 0E i 55N 0E

>1. http://www.nhc.noaa.gov/gccalc.shtml 813 km.

ten daje 300nm, czyli sferyczny ? Zreszta "great circle" o tym 
swiadczy.

>2. http://www.gwardak.com/distance.htm 814.07 km.

a ten dwa razy 556.51km ... czyli tez sferyczny ? tylko obliczenia z 
lepsza precyzja.
Ale czemu u Ciebie ciut inaczej ?

>Czy ktoś wie jak to najlepiej obliczyć, jakieś delikatne 
>naprowadzenie? Jaka to by była odległość, gdyby ją obliczył geodeta, 
>może mi ktoś napisze jaki powinien być najdokładniejszy wynik?

Geodeta by wytriangulowal w terenie :-)

Oni sie zreszta wspolrzednymi geograficznymi posluguja niechetnie - 
maja wlasne siatki.

J.
Re: Obliczanie odległości między dwoma punktami
#90314
Author: Wojciech Ścigała
Date: Thu, 18 Apr 2013 19:56
15 lines
1672 bytes
Użytkownik J.F napisał:

> A jak to sie liczy na elipsoidzie ?
Są dość skomplikowane (do liczenia na piechotę) wzory rekurencyjne. 
Wspomniany tu Vincent to jeden z klasyków.

>> 1. http://www.nhc.noaa.gov/gccalc.shtml 813 km.
> ten daje 300nm, czyli sferyczny ? Zreszta "great circle" o tym swiadczy.
"Great circle distance" należy tłumaczyć jako "ortodroma". Pojęcie 
stosowane także na elipsoidach. Ale fakt, ten kalkulator zdaje się 
liczyć na wzorach dla kuli.


-- 
Wojtuś
Re: Obliczanie odległości między dwoma punktami
#90316
Author: Jan Drawski
Date: Fri, 19 Apr 2013 01:52
30 lines
2065 bytes
> A jak to sie liczy na elipsoidzie ?
> bo zaczalem obliczac odleglosc miedzy
> 0N  0E  i 5N 0E  a potem
> 50N 0E i 55N 0E

Algorytm Vincentego znajdziesz wpisując w Google: distVincenty
+ język programowania w którym piszesz, przykład algorytmu:
Javascript: 
http://stackoverflow.com/questions/10160421/javascript-execution-issue
PHP: 
http://stackoverflow.com/questions/11416767/implementing-vincentys-formula-in-php
Wykorzystuje się dane dotyczące elipsoidy, które można znaleźć w tabelce 
na tej stronie:
http://en.wikipedia.org/wiki/Figure_of_the_Earth
Czyli w Google także można wpisać radius, flattening dla WGS84 i już coś 
wyjdzie.
Jak nie będzie Ci się chciało szukać to daj przepis na "nospam" (co 
usunąć) a wyślę Ci prosty kod w Delphi.

> Oni sie zreszta wspolrzednymi geograficznymi posluguja niechetnie - maja
> wlasne siatki.

Chodzi Ci o PUWG? Właśnie mnie pokusiło i zacząłem się temu przyglądać, 
masakra :) Trochę zespolone dają mi się we znaki ale może jakoś przez to 
przebrnę, ogólnie bez wiedzy z internetu nie miałbym szans aby sobie z 
tym poradzić, wiedza szkolna niestety łatwo mi wyparowała.

-- 
Pozdrawiam
Janek
Re: Obliczanie odległości między dwoma punktami
#90307
Author: J.F.
Date: Sun, 21 Apr 2013 10:02
44 lines
2881 bytes
Dnia Wed, 17 Apr 2013 21:51:57 +0200, Jan Drawski napisał(a):
> Wielkie dzięki za odpowiedzi, którymi trochę mnie zaskoczyliście :)
> Spodziewałem się bardziej naprowadzania na jakieś skomplikowane wzory, 
> dane potrzebne do wyliczeń.
> Sam nawet miałem już zamiar szukania punktów wysokościowych, warstwic 
> aby używać ich do obliczeń. Wyobrażałem sobie to tak:
> 1. Stworzenie bazy warstwic.
> 2. Obliczenie punktów przecięć tych warstwic z linią łączącą punkty mnie 
> interesujące.
> 3. Obliczenie długości wszystkich powstałych odcinków biorąc pod uwagę 
> oś Z (wysokość).

Ale o osi Z w ogole nie bylo mowy.

> 4. Zsumowanie długości odcinków.
> Ciekawie to by mogło wyglądać w górach, użytkownik na mapie mierzył by 
> odległość, która teoretycznie miała by kilka metrów a wynik mógłby być 
> wielokrotnie większy. Ze względu na to, wydaje mi się, że to by był zły 
> pomysł, wynik mógłby być nieporównywalnie większy, niż ten który w tej 
> chwili otrzymuję.

W gorach to i tak nieprzydatne. Co z tego ze w linii prostej czy tam
po kole wielkim 1km, a po terenie 1200m, skoro to jest 100m pionowo w
dol a 100m pionowo w gore ? 

Drogi w wiekszosci maja ponizej kilku % nachylenia, i tam odchylki tez
sa znikowe. Wiecej sie straci na tym ze drogi na wprost nigdy nie ma
(p.s. rozporzadzenie zabrania odcinkow prostych dluzszych niz 2 km ...
o co tu chodzi ?)

> Reasumując, zostaje przy tym co mam. Dzięki waszym podpowiedziom nie 
> szukam więcej dziury w całym.

Czemu, ciekawy temat, tylko pytanie w jakim celu.
Dla statkow, dla samolotow, dla geodetow ?

Tak czy inaczej - wyjscie ponad sfere to komplikacja duza, korygowany
blad niewielki, a dodatkowe bledy znacznie wieksze :-)

Tak swoja droga ... roznica promieni na rowniku i biegunie to ~30km.
jakies 0.25%. Do celow geodezyjnych ... troche duzo. 
Ale to 25cm na 100m, dokladnosc dobrego GPS podobnego rzedu :-)

J.
Re: Obliczanie odległości między dwoma punktami
#90308
Author: Jan Drawski
Date: Sun, 21 Apr 2013 15:10
57 lines
3600 bytes
> Ale o osi Z w ogole nie bylo mowy.

Tylko "trzeba" ją brać pod uwagę, w tym przypadku nie są to pomiary w 
terenie a geoida.

> Drogi w wiekszosci maja ponizej kilku % nachylenia, i tam odchylki tez
> sa znikowe. Wiecej sie straci na tym ze drogi na wprost nigdy nie ma

Posiadając bazę dróg łatwo wyliczyć długość obliczając i sumując 
długości odcinków. Problemem jest wyliczenie optymalnej trasy, w tej 
chwili jeszcze sobie tego nie wyobrażam.

> (p.s. rozporzadzenie zabrania odcinkow prostych dluzszych niz 2 km ...
> o co tu chodzi ?)

Nie wiem o czym piszesz... a na szybko Google nie wypluło nic 
sensownego. No może to:
"W wypadku ograniczeń terenowych dopuszcza się stosowanie poza terenem 
zabudowy jednojezdniowej drogi czteropasowej klasy GP lub G na odcinku o 
długości nie większej niż 2 km, jeżeli kierunki ruchu będą rozdzielone 
barierą ochronną."
Źródło: http://www.drogi.com/akty_prawne/du43_430.shtml
Jeżeli o to, to kluczowa w tym przypadku może być klasa tej drogi...

> ciekawy temat, tylko pytanie w jakim celu.
> Dla statkow, dla samolotow, dla geodetow ?

Dla "statków" choć czasami jak mnie coś zainteresuje to robię więcej niż 
powinienem. I tak np. poczytałem trochę o różnych odwzorowaniach, trochę 
rozporządzeń. W efekcie np. dorobiłem do programu obliczanie powierzchni 
w PUWG ze źródeł WGS84, mimo że nie było takiej potrzeby. Gdyby nawet 
była to wymyśliłbym inne prostsze rozwiązanie, prawie równie dokładne.

> Tak czy inaczej - wyjscie ponad sfere to komplikacja duza, korygowany
> blad niewielki, a dodatkowe bledy znacznie wieksze:-)

Mam małą wiedzę na ten temat i nawet nie wiem o jakiej "sferze" 
piszesz... Tu pole do popisu mają geodeci. Osobiście dopiero teraz 
delikatnie zahaczyłem o tą problematykę. W sumie ciekawe tematy, np. 
niedokładności na Suwalszczyźnie przy odwzorowaniu 92, przeliczanie po 
wprowadzeniu 2000, niezgodności odczytów GPS ze stanem faktycznym.

> Tak swoja droga ... roznica promieni na rowniku i biegunie to ~30km.
> jakies 0.25%. Do celow geodezyjnych ... troche duzo.
> Ale to 25cm na 100m, dokladnosc dobrego GPS podobnego rzedu:-)

Nie ma GPSu bez korekcji z zewnątrz, który by osiągnął taką dokładność, 
nie wiem o czym piszesz. Chociaż gdyby zebrać dużo wyników, odrzucić 
trochę skrajnych, resztę uśrednić to kto wie co by wyszło, choć to by 
nie był bieżący pomiar. Z dokładnością GPSu nie jest tak różowo jak się 
wielu wydaje ale Ty na pewno dobrze o tym wiesz :)

PS. Mail dotarł?

-- 
Pozdrawiam
Janek
Re: Obliczanie odległości między dwoma punktami
#90309
Author: J.F.
Date: Sun, 21 Apr 2013 16:53
42 lines
2639 bytes
Dnia Sun, 21 Apr 2013 17:10:29 +0200, Jan Drawski napisał(a):
>> (p.s. rozporzadzenie zabrania odcinkow prostych dluzszych niz 2 km ...
>> o co tu chodzi ?)
> Nie wiem o czym piszesz... a na szybko Google nie wypluło nic 
> sensownego. No może to:
> "W wypadku ograniczeń terenowych dopuszcza się stosowanie poza terenem 
> zabudowy jednojezdniowej drogi czteropasowej klasy GP lub G na odcinku o 
> długości nie większej niż 2 km, jeżeli kierunki ruchu będą rozdzielone 
> barierą ochronną."
> Źródło: http://www.drogi.com/akty_prawne/du43_430.shtml
> Jeżeli o to, to kluczowa w tym przypadku może być klasa tej drogi...

Par 20. 1. Jeżeli pozwalają na to warunki miejscowe,długość odcinka
prostego na drodze poza terenem zabudowy o wypukłych załomach niwelety
nie ograniczających widoczności nie powinna przekraczać wartości
określonych w tabeli: 

I par 26.

>> Tak czy inaczej - wyjscie ponad sfere to komplikacja duza, korygowany
>> blad niewielki, a dodatkowe bledy znacznie wieksze:-)
> 
> Mam małą wiedzę na ten temat i nawet nie wiem o jakiej "sferze" 
> piszesz... 

Kuli a nie elipsoidy 

>> Tak swoja droga ... roznica promieni na rowniku i biegunie to ~30km.
>> jakies 0.25%. Do celow geodezyjnych ... troche duzo.
>> Ale to 25cm na 100m, dokladnosc dobrego GPS podobnego rzedu:-)
> Nie ma GPSu bez korekcji z zewnątrz, który by osiągnął taką dokładność, 
> nie wiem o czym piszesz. 

Ponoc sa, jak usredniaja wiele dni. Mierza przesuniecia kontynentow.
Ale nawet i te tansze geodyzyjne z drobna korekcja sa jednak przez
geodetow uzywane ..

> PS. Mail dotarł?

Dotarl, dziekuje.

J.
Re: Obliczanie odległości między dwoma punktami
#90310
Author: Jan Drawski
Date: Sun, 21 Apr 2013 18:07
38 lines
2819 bytes
> Par 20. 1. Jeżeli pozwalają na to warunki miejscowe,długość odcinka
> prostego na drodze poza terenem zabudowy o wypukłych załomach niwelety
> nie ograniczających widoczności nie powinna przekraczać wartości
> określonych w tabeli:
>
> I par 26.

Co ciekawe, czym większa prędkość tym dłuższy odcinek. Teraz trochę 
wróżę z fusów: te wypukłe załomy niwelety wpływają negatywnie na 
bezpieczeństwo, czym większa prędkość projektowa tym bardziej muszą być 
zniwelowane i dzięki temu odcinek może być dłuższy.
Zastanawiam się czy droga nie może być prosta, tylko składa się z takich 
odcinków, czyli każdy taki odcinek osobno projektowany.
Oczywiście dla człowieka, który ma małą wiedzę jest to bzdurą, ale czy 
tak jest naprawdę to trzeba by się kogoś interesującego się 
projektowaniem dróg zapytać. Wydaje mi się, że jest szansa znaleźć 
kogoś, kto może mieć o tym pojęcie tu:
http://www.skyscrapercity.com
choć dziś pierwszy raz mi się ta strona nie otwiera.

> Ponoc sa, jak usredniaja wiele dni. Mierza przesuniecia kontynentow.
> Ale nawet i te tansze geodyzyjne z drobna korekcja sa jednak przez
> geodetow uzywane ..

Tańsze geodezyjne :) Różnica jest duża bo np. między 80 a 30 tysięcy 
jest aż 50 :)

Są ciekawostki, np:
http://www.u-blox.com/images/downloads/Product_Docs/NEO-6P_ProductSummary_%28GPS.G6-HW-11046%29.pdf
http://www.u-blox.com/de/precise-point-positioning-ppp.html
do kupienia sam moduł za około 100 Euro.
Ale to cały czas jest koło metra, choć przy wykorzystaniu jedynie L1.
Reasumując jeżeli chce się mieć dokładną pozycję to albo dane muszą być 
korygowane albo trzeba "długo" czekać na wyniki.

-- 
Pozdrawiam
Janek
Re: Obliczanie odległości między dwoma punktami
#90311
Author: Miroslaw Kwasniak
Date: Mon, 22 Apr 2013 06:21
18 lines
1952 bytes
Jan Drawski <dfghdfg@o2.pl> wrote:
> Są ciekawostki, np:
> http://www.u-blox.com/images/downloads/Product_Docs/NEO-6P_ProductSummary_%28GPS.G6-HW-11046%29.pdf
> http://www.u-blox.com/de/precise-point-positioning-ppp.html
> do kupienia sam moduł za około 100 Euro.
> Ale to cały czas jest koło metra, choć przy wykorzystaniu jedynie L1.
> Reasumując jeżeli chce się mieć dokładną pozycję to albo dane muszą być 
> korygowane albo trzeba "długo" czekać na wyniki.

Ciekawy chip:

  SuperSense Indoor GPS 

All NEO-6 modules come with SuperSense, providing improved
acquisition/reacquisition and tracking sensitivity. SuperSense enables high
performance tracking and navigation even in difficult signal environments
such as urban canyons or indoor locations.
 
Re: Obliczanie odległości między dwoma punktami
#90315
Author: J.F.
Date: Mon, 22 Apr 2013 19:57
18 lines
1609 bytes
Dnia Thu, 18 Apr 2013 21:56:37 +0200, Wojciech Ścigała napisał(a):
> Użytkownik J.F napisał:
>> A jak to sie liczy na elipsoidzie ?
> Są dość skomplikowane (do liczenia na piechotę) wzory rekurencyjne. 
> Wspomniany tu Vincent to jeden z klasyków.

Ale w sumie to mi chodzilo jak to sie definiuje.

Elipsoida jest powierzchnia prawie ekwipotencjalna, pion grawitacyjny
jest do niej prostopadly, astronomicznie szerokosc geograficzna w
danym miejscu mierzy sie ... wzgledem pionu ?
GPS to juz nie wiem jak, rozsadnie byloby tak samo.

A moze szerokosc definiowac przez odleglosc po poludniku ? 
Czy jednak przez kat od plaszczyzny rownika ?


J.
Re: Obliczanie odległości między dwoma punktami
#90312
Author: 666
Date: Sat, 07 Dec 2013 18:41
5 lines
1214 bytes
No to nawet nie zapytałeś, czy chodzi o ortodromę, czy o loksodromę?


-----
> Dla "statków" 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads