[Gfoss] Trasformazione per punti omologhi in PostGIS

Andrea Peri aperi2007 a gmail.com
Mar 18 Ago 2015 13:32:32 CEST


Pero' non va fatto in automatico, deve essere una azione voluta e ponderata.
Infatti la segmentize rishcia di rompere la eventuale precisione
topologica del dato.

Infatti, quando si va a segmentizzare per distanza, ogni linea viene
segmentizzata autonomamente.
Questo potrebbe comportare che i vertici di due linee sovrapposte che
in partenza erano perfettamente coincidenti, poi non lo sono piu',
perche' in una linea e nell'altra si sono aggiunti vertici in punti
differenti.

Questo e' quasi sicuro se le due linee sono percorse in senso opposto.
e questo succede sicuramente se le due linee sono coincidenti e
appartenenti a due poligoni confinanti.

Ecco che si entra subito in un discorso di topologia.
Un conto e' fare queste cose in un mondo topologico (in una vera
struttura topologica) e un conto e' farle in un mondo simple-feature,
dove appena tocchi qualcosa rompi degli equilibri fragilissimi.

A.


Il 18 agosto 2015 13:14,  <a.furieri a lqt.it> ha scritto:
> On Tue, 18 Aug 2015 12:41:47 +0200, G. Allegri wrote:
>>
>> E' proprio quello che intendevo ;)
>>
>> Il 18/ago/2015 12:24, "Andrea Peri"  ha scritto:
>>
>>> Per spiegare meglio:
>>>
>>> il buon vecchio arcims della esri (prodotto ormai dismesso da
>>> tempo) ,
>>> aveva un parametro che se attivato , quando trasformava da una
>>> linea
>>> in un altro sistema di riferimento a un altro, non si limitava a
>>> trasformare i vertici, ma densificava la linea, mettendo un certo
>>> numero di vertici extra.
>>> Questo per permettere appunto a una linea retta di diventare
>>> "curva".
>>> Ovviamente era piu' lento, e anche produceva roba piu' pesante
>>> visto che aveva piu' vertici, ma con ragione.
>>>
>
> ossia, in termini Spatial SQL (vale tanto per postgis come per splite):
> per ottenere un effetto assolutamente identico basta semplicemente
> richiamare la funzione ST_Segmentize() immediatamente prima di
> applicare la trasformazione affine.
>
> ST_Segmentize(geom,  max_segment_length)
>
> la Segmentize ritorna una nuova geometria ottenuta trasformando
> tutti i Linestring o Polygon ricevuti in input in modo tale da
> "spezzare" ciascun singolo segmento in una sequenza di segmentini
> piu' corti, ciascuno dei quali e' individualmente non piu' lungo
> della soglia prefissata dall'argomento <max_segment_length>.
> e quindi in ultima analisi consente di densificare a piacere
> le geometrie da sottoporre a trasformazione.
>
> ciao Sandro



-- 
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------


Maggiori informazioni sulla lista Gfoss