[Talk-cz] Tracer LPIS - drobne relikty puvodnich drive vymapovanych poli a luk po pretrasovani podle LPIS

Martin Švec - OSM osm na maatts.cz
Středa Leden 27 11:42:48 UTC 2016


Dne 26.1.2016 v 23:09 Petr Holub napsal(a):
>> 	jeste by hodne pomohlo efektivite tohoto procesu, kdybychom umeli "odecitani" polygonu:
>> 	v podstate "jen" vyrazne zefektivneni toho procesu s ContourMerge. tam je problem,
>> 	ze kdyz dany les navazuje na nekolik poli (typicky takove ty "roznudlovane pole"
>> 	na Jizni Morave), tak clovek musi pres ContourMerge delat jeden po druhem, casto
>> 	se blbe hledaji ty koncove body, atd. Pokud by se ten les dal pretahnout tak, aby
>> 	vsechna ty pole prekryl a pak se jen ta pole odecetla, tak by to byla velka pomoc.
>>
>>
>>
>>
>>
>> No podpora geometrických operací v Traceru, díky Martinovi, je. Jak moc složité by bylo
>> upravit Contour Merge netuším.Ale asi to bude nad mé síly.
>>
>>
>>
>>
>> Ale můžeš to simulovat tak, že si ten les nejprve vytáhneš do polí a až pak pole přetrasuješ.
> Jo, ale problem je s existujicimi poli - smazat vsechno, roztahnout les
> a pak pretrasovat (ale zase by tim clovek stoupal ve statistikach
> zmen ;o))) ). Pokud bychom to meli i jako samostatnou funkcionalitu
> na existujicich objektech, tak by to bylo super - mozna by to nemuselo
> byt tolik prace, kdyz uz to vlastne v Traceru mas.
>
>> 	Jeste dalsi vylepseni by pak byl "rozliv" polygonu, ktery by ho automaticky dotahl
>> 	ke vsem dalsim polygonum, ktere se s nim dotykaji alespon ve dvou mistech. Tim by
>> 	se resily takove ty zapomenute "zdibce", kterych si clovek kolikrat ani nevsimne
>> 	a pak na ne ContourMerge neaplikuje.
>>
>>
>>
>>
>> Který polygon by se dotáhnul kam?
> To by chtelo rozmalovat a presneji dorozmyslet jednotlive pripady, ale
> zhruba takto (nerucim za spravny desing, uz mam ponekud unavenou hlavu):
> stav 1: vyberu rozlivany objekt (uzavrena cesta) - editor prejde do stavu 2
> stav 2: editor postupne proiteruje vsechny diry, ktere jsou tvorene:
>   a) plochami (uzavrenymi cestami) ktere se rozlevaneho objektu dotykaji
>      ve dvou bodech, ale mezi temito dvema body existuje po neblizsich
>      cestach (nikoli nutne nejkratsi ve smyslu poctu bodu, ale nejkratsi
>      ve smyslu delky segmentu - to by melo fungovat, musi se ale zkontrolovat,
>      ze plocha sama sebe nekrizi) nesdileny bod na jedne  nebo druhe ceste
>   b) na sebe navazujicim plochami (navazujici = sdili aspon 1 bod), z nichz
>      krajni plochy sdili s rozlivanym objektem alespon jeden bod - a opet
>      po nejkratsich cestach je tam 1 nebo vice nesdilenych bodu
> stav 3: proiteruje vsechny diry a nabidne je k zaceleni uzivateli (zobrazi
>   diru a zepta se "zacelit - ano/ne"

Na tohle téma jsme si psali tuším loni na jaře. IMHO tenhle postup je jednodušší, praktičtější a
máme pro něj v Traceru spoustu kódu hotovou:

(1) Vybrat rozlívaný objekt A, zapnout funkci rozlivu.
(2) Editor přejde do režimu "freehand výběru".
(3) Myší zhruba nakreslit "bramboru" B kam všude se má objekt A rozlít, s dostatečnými přesahy přes
okolní objekty včetně objektu A.
(4) Spočítat sjednocení polygonů A + B = polygon C.
(5) Ořezat polygon C ořezovou funkcí která je v Traceru.
(6) Vrátit se do bodu (2), nebo opustit funkci rozlivu přepnutím na jinou funkci JOSM.

Tím zakreslením přibližné plochy B kam se má rozlívat odpadá problematická detekce "děr" a "průlivů
do nekonečna". Není ani potřeba dotazovat se na každou díru, roztahování plochy se dá udělat na pár
rychlých čmárnutí myší.

Základní koncept je jednoduchý, ale cítím tam spoustu drobných zádrhelů, které se budou muset
ošetřit a sežerou nejvíc času :-) Taky ta funkce nemůže být vyloženě univerzální -- musí existovat
předdefinované sady tagů, které okolní polygony mají rozliv ořezávat a které se mají ignorovat.

Sežeň si studenta který to odprogramuje, rád mu poradím, ale sám na to čas nemám. Hlavně na to
ladění zádrhelů.

Martin

>
> Petr
>
>
>
> _______________________________________________
> Talk-cz mailing list
> Talk-cz na openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-cz





Další informace o konferenci talk-cz