Closed petervojtek closed 7 years ago
Ja by som to robil tak ako to je na google maps.
Ja by som to robil tak ako to je na google maps.
z UX hladiska by bolo elegantne, keby sme mali sposob pridavania dalsieho bodu rovnaky v celej apke -- cize aktualne v measure area a planovaci.
google maps to ma velmi pekne na desktope. ale na mobile (v apke google maps) je pridavanie midpointu uplne UX zufalstvo (vobec sa len tak neda tahat tou trasou ako na desktope s mysou).
ale suhlasim, ze ten ich pristup pridavania midpoints sa mi paci a mozem to skusit spravit (aby to fungovalo aj na mobile) -- UX nevyhoda ich pristupu na mobile bude, ze ked nevies ze sa tou trasou da tahat, tak na to nemusis prist (na dekstope sa ti onhover zmeni kurzor, ale na touschcreene nie -- toto je vyhoda nasho sucasneho (umap like) measure area riesenia).
leaflet-routing-machine
uz som ho raz pouzil ked som robil tuto apku, a moj dojem je ze je to super nastroj kym ho pouzivas defaultnym sposobom tak, ako to mal na mysli jeho autor, ale ked chces nieco inak, veci sa lahko stanu krkolomnymi. a na mobile sa mi v deme nepodarilo pridat dalsi midpoint (tahanim trasy) /na dektope som to dokazal, ale tiez nic moc, najprv som musel v zozname adries pridat novy riadok a az potom to slo/
@petervojtek http://freemap.epsilon.sk/#page=navigacia&map=T/14/48.17461/17.11936 chytíš a ťaháš (a do toho trochu dlhší dotyk)
@MichalPP , skusal som to pouzit (a viem ze si mi to ukazoval nedavno pri pizze), ale ked to skusam teraz, tak:
gesto "dlhsi dotyk" sa na inak pouziva velmi zriedka a ludia o nom vobec nevedia, snazil by som sa mu vyhnut lebo intuitivne nan ludia nepridu.
neviem prist na to ako zadat start/ciel kliknutim do mapy
pravym klikom do mapy
vdaka. ano, to tahanie noveho bodu a pasikave guidelines ktore od neho vedu k starym su fajn, myslim ze k tomu konvergujeme :)
ako inak emuluješ pravý klik na mobile?
geocoding je hore vypnutý (nechcelo sa mi ho zapínať, ale môžeš si forknúť tie súbory, deployovať u seba a poslať pull request, nič ti nebráni to vylepšiť)
obavam sa ze ten jquery kod nedava sancu dalsim contributorom :)
ako inak emuluješ pravý klik na mobile?
ja som to teraz pouzil na desktope.
na desktope pravý klik (ale to je vec úplne blbého a jednoduchého nastavenia)
no, v kazdom pripade v prehliadaci (na mobile aj na desktope), pravy klik a "dlhy klik" su gesta ktorym sa treba vyhnut, ludia ich tam necakaju.
to je vec jedného blbého nastavenia UI. kľudne zmeň na čosi iné (normálny klik). vec asi na 4 sekundy nastavovania. pridal si issue na freemap.epsilon.sk?
ja som to pisal skor v kontexte tohto repozitara (ze ci mame konsenzus v tom, ze tie gesta nie su stastne a chceme sa im podla moznosti vyhnut). co sa tyka toho freemap.epsilon.sk -- mne ta apka pride tak divne spravena (napr. tie tri tlacidla co zapinaju/vypinaju rozne menu), ze nejaky pravy a dlhy klik su oproti tomu drobnosti... takze je zbytocne sa nimi podla mna zaoberat :)
Martin @zdila, skusal som spravit pridavanie midpointu tak ako to ma google, ale mal som problemy s tym aby to fungovalo na mobile aj na desktope. netvrdim ze sa to neda, ale bolo by to o dost pracnejsie nez som si zelal.
preto som zatial radsej spravil riesenie ako som ho povodne navrhoval (cize vyzera to rovnako ako pridavanie novych bodov v measure area). este tam planujem fixnut tieto veci:
a LRM nefunguje?
tu su nejake pokusy pouzit LRM z react-leafletu, ale neposobi to dojmom produktu ktory staci nainstalovat cez npm. a do zoznamu react-leaflet pluginov sa to zatial nedostalo.
to neznamena ze LRM sa neda pouzit z react.js, len ze by si vyzadovalo nejake usilie to zaintegrovat. ..mne osobne nepride zaujimave sa tym zaoberat, viac ma bavi hrat sa s funkciami ktore poskytuje turf.js
crosshair cursor zobrazovat iba ked sa vybera start/finish
toto som spravil v 9ce9e9ea9b2f7b90d5650447faae54c7bda5e91d
zobrazovat guidelines zo susednych bodov ked pouzivatel taha ten modry kruzok.
s tymto som sa hral cely cen a vela som sa naucil o reacte :), ale neviem to spravit tak, aby to uplne neobchadzalo react. bez ohladu na to ci poziciu mysi nad mapou prenasam cez redux alebo cez eventy, vznikaj tam nejaky sliepka-vajce problem s tym, ze ked zacnem tahat modru bodku, tak mi react updatne komponent, cim sa uz nikdy nedostanem k onDragend callbacku (lebo uz je to ina modra bodka). ked sa snazim nejako zabranovat v update pomocou shouldComponentUpdate
, tak to zase neprekresluje guidelines. asi by sa to dalo nejako vyladit, ale obavam sa ze to uz kod nebude velmi citatelny. tiez som sa skusal dat guidelines
a futureMidpoints
to stavu komponentu, ale nepomohlo mi to..
a prečo si neurobil pull request aby to išlo do zoznamu pluginov?
asi sme si neporozumeli (alebo som zle opisal co som robil) -- ja som plugin/medzivrstvu pre LRM do react-leaflet neimplementoval.
a prečo? načo zbytočné vyrábanie niečoho čo nikto mimo tejto stránky nepoužije?
asi si nerozumieme. ja som toto vobec necommitol:
zobrazovat guidelines zo susednych bodov ked pouzivatel taha ten modry kruzok.
hral som sa s tym, ale nie som spokojny s tym ako by ten kod vyzeral a preto ta feature v kode nie je.
malo by ist tak, ze najprv trasu rozsekame na segmenty podla midpoints (vyhodou je ze midpoints nemusia lezat priamo na trase): http://turfjs.org/docs/#lineslice
potom pre kazdy segment vypocitame dlzku L: http://turfjs.org/docs/#linedistance
a potom pre kazdy segment najdeme bod v vzdialenosti L/2 od zaciatku segmentu: http://turfjs.org/docs/#along a tam umiestnime circle marker ktory bude mozne tahat.
ci je to prilis komplikovane, Martin @zdila ?