[Talk-cz] Tracer - nová testovací verze
Marián Kyral
mkyral na email.cz
Čtvrtek Červenec 31 21:47:00 UTC 2014
Holala, nová verze přistála ;-)
http://www.kyralovi.cz/tmp/josm/beta/Tracer.jar
Konflikty to negeneruje a zdá se, že se to plus mínus chová stejně, jako
předtím. Ovšem to neznamená, že tam žádný skrytý problém není, Takže
otestujte a pokud narazíte na nějakou chybu, dejte vědět.
Ještě se v tom budu trochu vrtat, ale jinak má přednost pLPIS ;-)
Díky,
Marián
Dne 30.7.2014 09:32, Marián Kyral napsal(a):
> Ahoj,
> dobrá zpráva je, že už vím v čem je problém. A ta špatná je, že oprava
> je poněkud komplikovanější. Už na tom pracuji, ale vzhledem k tomu
> počasí venku se doma moc nezdržuji (dnešní dopoledne je výjimka ;-) ),
> takže to pravděpodobně bude hotovo někdy příští týden.
>
> Jen kdyby to někoho zajímalo: Všechny operace s objekty (vytvoření,
> smazání, změna) se ukládají do fronty a až na úplném na konci se provede
> commit, čímž se všechny operace provedou na datech a vytvoří se undo
> sequence.
>
> Problém je v tom, že pokud se jedna cesta změní více krát (příkaz
> ChangeCommand(oldWay, newWay)), tedy v sekvenci příkazů je něco takového:
>
> oldWay -> newWay1 -> newWay2 -> newWay3
>
> tedy:
> ChangeCommand(oldWay, newWay1);
> ChangeCommand(newWay1, newWay2);
> ChangeCommand(newWay2, newWay3);
>
> tak se provede pouze první příkaz a ostatní se sice jako provedou, (na
> nic to nespadne), ale nemá to žádný efekt. Pak dojde k tomu, že bod z
> cesty záhadně zmizí -> informace další změně dané cesty (tedy odstranění
> bodu) se někde ztratí.
>
> Musím to přepsat na toto:
> ChangeCommand(oldWay, newWay1);
> ChangeCommand(oldWay, newWay2);
> ChangeCommand(oldWay, newWay3);
>
> Udělal jsem si třídu, která drží vazbu oldWay -> newWay, ale je to hodně
> velká změna a musím to pořádně otestovat. Zcela určitě se zase něco
> rozbije :-D
>
> Marián
>
> Dne 19.7.2014 16:54, Marián Kyral napsal(a):
>> No to bude tím, že tahle verze je od základů přepsána, právě kvůli těm duplicitním bodům :-)
>>
>> Porovnávat změny oproti předchozí verzi tedy nemá smysl. Ale ten příklad mi hodně pomůže, z toho se už dá na něco přijít.
>>
>> Díky,
>> Marián
>>
>> On 19. července 2014 15:44:29 CEST, "Martin Švec - OSM" <osm na maatts.cz> wrote:
>>> Potvrzuju, že to dělá až poslední verze. Předchozí sice vyráběla mnohem
>>> víc duplicitních bodů, ale žádné konflikty ;-)
>>>
>>> Nevím jestli je to stejný problém, ale reprodukovatelnou chybu jsem
>>> našel např. na
>>>
>>> https://www.openstreetmap.org/#map=19/49.24478/16.23263&layers=N
>>>
>>> - když kliknu na dům č. 81 (par. 17/4) nebo č. 1 (par. 17/3), plugin
>>> smázne západní roh domu č. 35 (par. 17/2) a nevrátí ho zpět ani undo.
>>>
>>> Martin
>>>
>>> On 19.7.2014 13:35, jzvc wrote:
>>>> Predchozi verze tohle nedelala => hledej v poslednich zmenach. Pokud
>>> jsem to dobre pochopil, tak vpodstate jde o to, ze plugin zmeni
>>> podkladova data, ale tu zmenu nezapise jako zmenu.
>>>> Dne 18.7.2014 16:03, Marián Kyral napsal(a):
>>>>> Tak jsem si teď trochu poklikal v Jihlavě a podařilo se mi "vyrobit"
>>> 24
>>>>> konfliktů :-(
>>>>> Budu muset vymyslet nějaký lepší debugging. Z aktuálního logu jsem
>>> nic
>>>>> zajímavého nevykoukal.
>>>>>
>>>>> Zatím řekněme, že Tracer není vhodný pro klikání v husté zástavbě
>>> :-D
>>>>> Marián
>>>>>
>>>>>
>>>>> ---------- Původní zpráva ----------
>>>>> Od: Marián Kyral <mkyral na email.cz>
>>>>> Komu: OpenStreetMap Czech Republic <talk-cz na openstreetmap.org>
>>>>> Datum: 17. 7. 2014 13:55:43
>>>>> Předmět: Re: [Talk-cz] Tracer - nová testovací verze
>>>>>
>>>>>
>>>>> ---------- Původní zpráva ----------
>>>>>
>>>>> Od: jzvc <jzvc na tpfree.net>
>>>>> Komu: talk-cz na openstreetmap.org
>>>>> Datum: 17. 7. 2014 13:14:46
>>>>> Předmět: Re: [Talk-cz] Tracer - nová testovací verze
>>>>>
>>>>>
>>>>> Dne 16.7.2014 23:28, Marián Kyral napsal(a):
>>>>> > Ahoj,
>>>>> >
>>>>> > ---------- Původní zpráva ----------
>>>>> > Od: jzvc <jzvc na tpfree.net>
>>>>> > Komu: OpenStreetMap Czech Republic
>>> <talk-cz na openstreetmap.org>
>>>>> > Datum: 16. 7. 2014 23:00:58
>>>>> > Předmět: Re: [Talk-cz] Tracer - nová testovací verze
>>>>> >
>>>>> >
>>>>> > Cus, nevim v cem to je, ale s libovolnym pouzitim mi
>>> vznikne
>>>>> konflikt.
>>>>> > Je to na tema ze lokalne sem smazal bod kterej na serveru
>>>>> existuje.
>>>>> > Vyresit se da jedine tak, ze aplikuju verzi ze serveru,
>>> pri
>>>>> pokusu o
>>>>> > aplikovani lokalni verze se to cykli porad dokola.
>>>>> >
>>>>> >
>>>>> > Navic pokud josm nekeca, tak ten koflikt vznikne na
>>> bodech
>>>>> budov, na
>>>>> > ktery sem vubec nesahal => plugin zjevne ano.
>>>>> >
>>>>> >
>>>>> > Divné, divné. Můžeš hodit nějaký příklad? Případně nějaké
>>>>> detaily?
>>>>> >
>>>>> > Zkoušel jsi původní, nebo aktualizovanou verzi?
>>>>> >
>>>>>
>>>>> Cus,
>>>>> Zkousel sem posledni verzi na posledni verzi josm (7313).
>>> Budovy
>>>>> nesousedily.
>>>>>
>>>>>
>>> http://www.openstreetmap.org/relation/440427#map=18/49.40296/15.58466
>>>>> pokud si pamatuju, protah sem pres plugin budovu 4340/6 (a
>>> par
>>>>> budov
>>>>> kolem nadrazi) a konflikt to hlasilo na budove 1472/15a (byl
>>> to
>>>>> mimo
>>>>> jiny dolni levy bod).
>>>>>
>>>>>
>>>>> Díky,
>>>>>
>>>>> vyzkouším (ale asi ne hned, teď budu týden mimo). Jak velkou
>>> oblast
>>>>> jsi měl staženou? Nebyla daná budova alespoň částečně mimo
>>> staženou
>>>>> oblast? To bych možná tušil (a asi bych to měl nějak omezit).
>>>>>
>>>>>
>>>>>
>>>>> Testil sem to jen zbezne, ale vypadalo to, ze pocet
>>> trasovanych
>>>>> budov
>>>>> nema temer zadny vliv. Nedetekuje plugin nejakou duplicitu i
>>> mimo
>>>>> zpracovanou oblast?
>>>>>
>>>>>
>>>>> No o co se tam pokouším je to, že někdy, po odpojení od sousední
>>>>> budovy, zůstanou na sousední budově již nepotřebné uzly. A já se
>>> je
>>>>> snažím detekovat a smazat. Beru vždy dva sousedící segmenty a
>>> snažím
>>>>> se zjistit, jestli prostřední bod leží na úsečce tvořené
>>> krajními
>>>>> body. Pokud zjistím, že to tak je, a prostřední bod není
>>> součástí
>>>>> dalšího objektu, tak jej smažu. No a asi to nefunguje jak by
>>> mělo.
>>>>> Ono totiž je to trochu komplikované. Všechny změny, které dělám,
>>>>> dělám na kopii objektů a zároveň zapisuji do fronty příkazy typu
>>>>> "vytvoř bod Y", "přesuň bod X na ", "Přidej bod do cesty W". A
>>> až
>>>>> úplně na konci se provede "commit", který všechny tyto změny
>>> provede
>>>>> na vrstvě stažené v JOSM.
>>>>>
>>>>>
>>>>> Při mazání si pak musím sám hlídat, zda daný bod není součástí
>>>>> nějaké jiné cesty. Bohužel nemohu přímo zjistit, kolik cest je
>>> na
>>>>> konkrétní bod navázáno, ale musím procházet jednu cestu po druhé
>>> a
>>>>> ptát se, zda tento bod není jejich součástí. No a tady je
>>> obrovský
>>>>> prostor na chyby :-(
>>>>>
>>>>>
>>>>> Zatím to vidím tak, že nebudu sahat na body, které se nalézají
>>> mimo
>>>>> staženou oblast. No a pak se možná ještě jednou podívám, na ten
>>>>> algoritmus, co se snaží mazat nadbytečné body.
>>>>>
>>>>>
>>>>> Marián
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Talk-cz mailing list
>>>>> Talk-cz na openstreetmap.org
>>>>> https://lists.openstreetmap.org/listinfo/talk-cz
>>>>>
>>>> _______________________________________________
>>>> Talk-cz mailing list
>>>> Talk-cz na openstreetmap.org
>>>> https://lists.openstreetmap.org/listinfo/talk-cz
>>> _______________________________________________
>>> Talk-cz mailing list
>>> Talk-cz na openstreetmap.org
>>> https://lists.openstreetmap.org/listinfo/talk-cz
>
> _______________________________________________
> Talk-cz mailing list
> Talk-cz na openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-cz
Další informace o konferenci talk-cz