FreemapSlovakia / freemap-v3-react

Freemap Slovakia web application (www.freemap.sk)
https://www.freemap.sk/
Apache License 2.0
35 stars 17 forks source link

planovac: vyber midpointu robit podobne ako v measure area #96

Closed petervojtek closed 7 years ago

petervojtek commented 7 years ago

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 ?

zdila commented 7 years ago

Ja by som to robil tak ako to je na google maps.

MichalPP commented 7 years ago

https://github.com/perliedman/leaflet-routing-machine to rieši.

petervojtek commented 7 years ago

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/

MichalPP commented 7 years ago

@petervojtek http://freemap.epsilon.sk/#page=navigacia&map=T/14/48.17461/17.11936 chytíš a ťaháš (a do toho trochu dlhší dotyk)

petervojtek commented 7 years ago

@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.

zdila commented 7 years ago

neviem prist na to ako zadat start/ciel kliknutim do mapy

pravym klikom do mapy

petervojtek commented 7 years ago

vdaka. ano, to tahanie noveho bodu a pasikave guidelines ktore od neho vedu k starym su fajn, myslim ze k tomu konvergujeme :)

MichalPP commented 7 years ago

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ť)

petervojtek commented 7 years ago

obavam sa ze ten jquery kod nedava sancu dalsim contributorom :)

petervojtek commented 7 years ago

ako inak emuluješ pravý klik na mobile?

ja som to teraz pouzil na desktope.

MichalPP commented 7 years ago

na desktope pravý klik (ale to je vec úplne blbého a jednoduchého nastavenia)

petervojtek commented 7 years ago

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.

MichalPP commented 7 years ago

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?

petervojtek commented 7 years ago

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 :)

petervojtek commented 7 years ago

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:

MichalPP commented 7 years ago

a LRM nefunguje?

petervojtek commented 7 years ago

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

petervojtek commented 7 years ago

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

MichalPP commented 7 years ago

a prečo si neurobil pull request aby to išlo do zoznamu pluginov?

petervojtek commented 7 years ago

asi sme si neporozumeli (alebo som zle opisal co som robil) -- ja som plugin/medzivrstvu pre LRM do react-leaflet neimplementoval.

MichalPP commented 7 years ago

a prečo? načo zbytočné vyrábanie niečoho čo nikto mimo tejto stránky nepoužije?

petervojtek commented 7 years ago

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.