osmapp icon indicating copy to clipboard operation
osmapp copied to clipboard

Tuk na mapu v meste - objekty v okoli

Open miro-janosik opened this issue 3 years ago • 7 comments

Ked tuknem na mapu, tak mi v zozname objektov v okoli nezobrazi "Bufet Vierka" ktory je najblizsie k tomuto bodu.

https://osmapp.org/48.434840,17.022368#18.67/48.4348/17.0221

Ked tuknem inde, tak mi ho zobrazi. Zda sa mi, ze ked je v okoli privela bodov, tak mi zobrazi iba nahodnych 10, a v meste kde je viacero obchodov, kosov, stojanov na bicykle, prechodov cez prechod tak ich moze byt pokope aj 20, a vtedy mi moze chybat prave ten co chcem zmenit.

Riesenim by bolo pred zmensenim poctu zoradit ich podla vzdialenosti.

miro-janosik avatar Dec 08 '21 09:12 miro-janosik

Argh, zasa sa mi to stalo. 5 minut som tukal po mape aby som nasiel objekt co hladam a nevedel som ho zobrazit a upravit. Je to na porazenie ked je v meste vela objektov.

miro-janosik avatar Jan 28 '22 08:01 miro-janosik

Díky za report 👍 předtím mi to uteklo. Bohužel se jedná o problém s overpass-api, ze kterého se tyhle data tahají. Když si pustíš ty souřadnice výše: https://overpass-turbo.eu/s/1fwy, tak to prostě ten Bufet nevrátí. Příznak qt by to měl seřadit "zhruba podle polohy", ale opravdové seřazení dle vzdálenosti to neumí. Bohužel s ním ani bez něj to Bufet neukáže. Pomohlo mi až nastavit 30 vrácených položek, ale to problém jen mírně posune. Ideální by bylo napsat na overpass api, že máme tenhle problém, jestli nechystají řešení. Nechceš to udělat? Kdyžtak jim výhledově napíšu.

Tím že to vrací náhodné objekty v okolí, tak je primárně řadím podle počtu tagů.. aby to na prvních místech ukázalo aspoň něco trochu zajímavého a ne nějaký highway:crossing apod.. Moc mě nenapadá jak to udělat správně :-)

btw, v tuhle chvíli stahuju 20 prvků a zobrazuju 10. Pokud chceš vidět všechny v původním pořadí, tak můžeš zkusit "pokročilý režim" (pouze na desktopu) - alt+shift+click na ičko tady: image

zbycz avatar Jan 28 '22 10:01 zbycz

Ahoj co takto posunut limit na 1000, zda sa ze to netrva dlhsie. Druha moznost by bolo zmensit radius, alebo spravit dve volania - around:10 a potom druhe around:50

Zoradovanie podla poctu tagov nemusi byt idealne, pretoze vidim 10x amenity=bench ktory ma 4 tagy, a shop ktory ma 3 tagy je tym padom nizsie... To je na osobnych preferenciach ale ja by som navrhoval uprednostnit veci ktore su shop=, potom craft=, amenity=* (aj ked radsej by som videl amenity=cafe ako amenity=bench) ale kazdy ma ine preferencie...

Zoradovanie podla polohy/vzdialenosti k bodu tam vobec nevidim... Ale vedel by som ti napisat funkciu ktora to zoradi ked uz tie objekty mas ... malo by to byt jednoduche vzdialenost = sqrt ( (x1 - x2)^2 + (y1-y2)^2 ) (aj ked viem ze to nie je uplne idealne, lebo vzdialenost nie su metre ale latitude/longitude, ale mohlo by to stacit)

Tych 20 objektov v okoli by sa hodilo, v meste je to naozaj huste, ale pouzivam to iba na mobile - na desktope mam JOSM :-)

miro-janosik avatar Jan 28 '22 11:01 miro-janosik

Udělal jsem zkusmo pull-request, kde to je nastavené na 400 a sesortěné, ale zdá se mi že to nefunguje. Můžeš to otestovat: https://osmapp-git-around-1000-zbycz.vercel.app/

Jsou to zatím dost našťastné heuristiky, myslím že by s tím mohl pomoct task #116, protože pak budeme vědět jak je který prvek důležitý. Hádat to podle počtu tagů moc nejde, ale zase nechceš ukazovat každý node uvnitř cesty, atd..

zbycz avatar Jan 29 '23 21:01 zbycz

Súhlasím, že to nefunguje. Pri pokuse na rovnakom mieste mi zobrazilo 1x ulicu a 9x reláciu autobusovej linky.

Pozrel som sa na ten commit, a ako programátor ktorý sa do kódu nevyzná sa mi nezdá tento riadok: return getDist(a.center, point) - getDist(b.center, point); Malo by to zoraďovať podľa vzdialenosti od pointu, a Features nemajú a ani b, ale center. Nemalo by to byť: return getDist(a.center, point); ?

miro-janosik avatar Jan 31 '23 08:01 miro-janosik

Dík za test. Zkusím na to mrknout ještě pořádně.

Co se týče toho kódu, tak to je komparátor, vrací pro libovolné dva prvky, který má být blíž/stejně/dál, když je číslo menší-než/stejné/větší-než nula. Ale asi bych to měl předělat, aby to prostě sortilo podle předpočítaného distanceToCenter.

zbycz avatar Jan 31 '23 10:01 zbycz

English Summary: Items returned in "nearby items" returns sometimes irrelevant results when in an area with lots of items like cities.

Flohhhhh avatar Jun 12 '23 14:06 Flohhhhh