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" <o...@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 <mky...@email.cz>
>>>> Komu: OpenStreetMap Czech Republic <talk-cz@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 <j...@tpfree.net>
>>>>     Komu: talk-cz@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 <j...@tpfree.net>
>>>>          > Komu: OpenStreetMap Czech Republic
>> <talk-cz@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@openstreetmap.org
>>>> https://lists.openstreetmap.org/listinfo/talk-cz
>>>>
>>>
>>> _______________________________________________
>>> Talk-cz mailing list
>>> Talk-cz@openstreetmap.org
>>> https://lists.openstreetmap.org/listinfo/talk-cz
>>
>> _______________________________________________
>> Talk-cz mailing list
>> Talk-cz@openstreetmap.org
>> https://lists.openstreetmap.org/listinfo/talk-cz


_______________________________________________
Talk-cz mailing list
Talk-cz@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-cz

Odpovedet emailem