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.
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.
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.)
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).
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.
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. ;)