osmapp
osmapp copied to clipboard
Tuk na mapu v meste - objekty v okoli
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.
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.
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:
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 :-)
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..
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); ?
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
.
English Summary: Items returned in "nearby items" returns sometimes irrelevant results when in an area with lots of items like cities.