Přejít na obsah


Fotka

Filtr - keše podél cesty


  • Pokud chcete vložit odpověď, přihlašte se
13 odpovědí na toto téma

#1 Pe_Bo

Pe_Bo

    Advanced Member

  • Members
  • PipPipPip
  • 613 příspěvků(y)

Publikováno 15 listopad 2022 - 17:30

Zkusil jsem v GeoGetu nastavit filtr s výběrem keší podél trasy a vrátilo se mi méně keší, než bych čekal.

Filtr má nastaveno blíže než 10km od trasy a ve výběru chybí keše ve vzdálenosti dále než cca 7km od trasy.

Vypadá to, že je to podél celé trasy, relativně systematicky. Mohu poskytnout data, z kterých jsem vycházel (asi to zkusím

zjednodušit, teď mám 36 bodů v trase a cca 1700 keší ve výsledku).

 

Kde může být problém?

 


  • 0

#2 tarmara

tarmara

    Air-cooled

  • Members
  • PipPipPip
  • 969 příspěvků(y)

Publikováno 17 listopad 2022 - 9:19

nemáš nastavený filtr na souřadnice finálek? nebo ti mizí i tradičky?


  • 0

#3 Pe_Bo

Pe_Bo

    Advanced Member

  • Members
  • PipPipPip
  • 613 příspěvků(y)

Publikováno 17 listopad 2022 - 11:15

Ne, korigované souřadnice jsem měl vypnuté, aby se mi to lépe porovnávalo. Týká se to i tradiček, samozřejmě.

 

Jinak tedy jak jsem na to přišel - udělal jsem si vlastní implementaci blízkosti k trase (viz

https://stackoverflo...ent-on-a-sphere

https://github.com/E...eAlgorithm.java )

 

jako sqlite extension, udělal jsem dotaz do geoget databáze a porovnal výsledky. Měření jsem prováděl v Mapsource.

Vzdálenost k trase je definována jako nejkratší vzdálenost k úsečkám trasy.

 

Podle měření v mapě jsem měl ve výsledku dotazu správné keše, v GeoGetu některé chyběly.


  • 0

#4 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 508 příspěvků(y)

Publikováno 17 listopad 2022 - 13:52

Ucel toho filtru není vybrat to na metr přesně, ale vybrat kese v nějakém rozumném pádu podél cesty, která muze být dlouhá a křivolaká. A nebo je naopak velmi přibližná, nebo kombinace obojího. Proto u tohohle filtru přesnost nehraje roli, protože už na vstupu jsou nepřesná data.

Proto se to počítá vlastně stejně jako ty, ale ta trasa prochází napřed optimalizaci, aby se počet úseček zredukoval, to ale prinese nějakou další nepřesnost, takže se klidně může stát, že nějaké vzdálenější body vypadnou, ačkoliv se zdá, že jsou dost blízko.

Ergo, zkus o něco zvednout vzdálenost.
  • 0

#5 Pe_Bo

Pe_Bo

    Advanced Member

  • Members
  • PipPipPip
  • 613 příspěvků(y)

Publikováno 17 listopad 2022 - 20:33

Promiň, ale nejde o metry, ale do výběru se nedostane řada keší, které jsou mnohem blíže, než daná vzdálenost (odhadem je to cca 20% keší).

 

Udělal jsem malý soubor dat, na kterém je to dobře vidět.

 

Trasa má jen dva úseky:

49.18924 14.68505
49.21782 14.7251
49.24437 14.72913

 

Vybral jsem jen tradičky do 5km od trasy.

 

GeoGet mi vybral 41 keší, viz soubor 11-12-13-5km-malo.ggt

 

Ve výběru chybí 8 keší:

 

GC812B8 4,5km
GC2QZ6H 4,6km

GC28N64 4,1km

GC28N5C 4,9km

GC9B9V5 4,5km

GC5WQ2C 3,5km !

GC281N6 3,8km !

GC1YD3H 4,9km

 

Plný seznam je v souboru 11-12-13-5km-ok.ggt.

 

Přiložený soubor (y)


  • 0

#6 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 508 příspěvků(y)

Publikováno 20 listopad 2022 - 10:33

Já jich našel na první pokus hned 71, ale pak jsem si řekl, že asi nechceš archivované. Po jejich vypuštění jsem taky na 41, takže se mi to chová stejně. To je v zásadě dobrá zpráva, mohu zkusit zapátrat, proč tomu tak je.


  • 0

#7 Pe_Bo

Pe_Bo

    Advanced Member

  • Members
  • PipPipPip
  • 613 příspěvků(y)

Publikováno 20 listopad 2022 - 10:38

Jo, to jsem zapomněl napsat - jasně, nejsou tam archivované. Ale mohou tam být disablované.


  • 0

#8 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 508 příspěvků(y)

Publikováno 04 prosinec 2022 - 20:46

Věc se má takhle - je tam použitý dosti starý a nepřesný algoritmus, a dost možná je v něm chyba, protože ty úlety s 3.5 kilometry jsou fakt podivné. Proto jsem si rekl, ze to raději napíšu jinak a snad lépe.

 

První pokus nového algoritmu ukázal smysluplných 48 keší. Chybí jen GC28N5C, která je ale podle mne o pár metrů nad pětikilometrovou hranicí. Použitý rychlejší, ale nepřesnější GreatCircle mi spočítal 5.007. Přesnější Vincenty mi vyšel 5.011. Kontrolně jsem zkusil i dva různé online výpočty, které vyšly ve stejných mezích. (Sranda je, že každý dal unikátní číslo - holt, každá implementace má nějakou svoji nepřesnost.)


  • 0

#9 Pe_Bo

Pe_Bo

    Advanced Member

  • Members
  • PipPipPip
  • 613 příspěvků(y)

Publikováno 04 prosinec 2022 - 21:43

Ta GC28N5C je vzdálena od trasy 4.89km, keš je na N 49° 13.557 E 014° 38.710 (49.22595, 14.64517), nejbližší (kolmý) bod na trase je na N49 11.775 E14 41.692 (49.19625, 14.69487). Všechny výpočty dělám pomocí Great Circle (poloměr Země 6371.008km). Vincenty je tady určitě zbytečný.

 

Měříš vzdálenost skutečně od kolmice? Totiž tvých 5.007 je nápadně blízko k začátku trasy (mě vychází 5.006).


  • 0

#10 Pe_Bo

Pe_Bo

    Advanced Member

  • Members
  • PipPipPip
  • 613 příspěvků(y)

Publikováno 04 prosinec 2022 - 22:02

Jinak tedy ještě k algoritmu, co používám já (a je to pěkně popsáno na stackoverflow, jak jsem odkazoval):

1) vypočítám bod T, na  "velké kružnici" (definované body A a B, to je úsek trasy), který je nejblíže k bodu C (tedy testovaná keš)

2) otestuji, zda bod T leží mezi A a B (ta kratší část z dané kružnice),

a) pokud ano, vypočtu vzdálenost mezi C a T

B) pokud ne, vypočtu vzdálenosti mezi  C a A, C a B, a vezmu tu kratší

 

Vypadá to složitě, ale ve skutečnosti je to jen pár goniometrických výpočtů, a chodí to docela rychle.

 

Pro vyhledání v databázi je prakticky nutné ještě udělat boxing nebo použít spatial index.


  • 0

#11 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 508 příspěvků(y)

Publikováno 05 prosinec 2022 - 8:17

Ano, o kolmici se snažím, ale nebyl už čas to večer víc zkoumat. Jak jsem řekl, byl to první nástřel.


  • 0

#12 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 508 příspěvků(y)

Publikováno 05 prosinec 2022 - 17:05

Ta GC28N5C je vzdálena od trasy 4.89km, keš je na N 49° 13.557 E 014° 38.710 (49.22595, 14.64517), nejbližší (kolmý) bod na trase je na N49 11.775 E14 41.692 (49.19625, 14.69487). Všechny výpočty dělám pomocí Great Circle (poloměr Země 6371.008km). Vincenty je tady určitě zbytečný.

 

Měříš vzdálenost skutečně od kolmice? Totiž tvých 5.007 je nápadně blízko k začátku trasy (mě vychází 5.006).

 

Jednoduchý test s dvoubodovou trasou Veselí - Miličín by mi v takovém případě udělal dvě bambule kolem koncových bodů, a Tábor by vynechal. Ale ono mi to udělalo krásný pruh. :huh: Jdu to zkontrolovat.
 


  • 0

#13 HaLuMa

HaLuMa

    Autor Geogetu

  • Members
  • PipPipPip
  • 14 508 příspěvků(y)

Publikováno 05 prosinec 2022 - 20:12

Použitý nový algoritmus je jiný než tvůj, trochu méně přesný, nicméně velmi rychlý. Pro daný účel (sakra, hoď mi nějaké keše podél trasy a poloměr tam nějaký odhadnu) mi ta přesnost přijde bohatě dostatečná. V porovnání s tvým demostračním vzorkem se to liší jen o tu jednu hraniční kešku (unikla o 9 metrů).

 

Takže je to určitě lepší než doposud, je to i rychlejší, a tvému kódu se to hodně přiblížilo. Určitě najdeš odlišnosti od tvého způsobu, ale nemá smysl pro daný účel tím víc ztrácet čas. Puristé si vždycky mohou napsat vlastní supepřesný plugin. ;)


  • 0

#14 Pe_Bo

Pe_Bo

    Advanced Member

  • Members
  • PipPipPip
  • 613 příspěvků(y)

Publikováno 05 prosinec 2022 - 20:24

A mohl bys ten algoritmus víc popsat?


  • 0




0 uživatel(ů) prochází toto téma

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

Reklama