[Gfoss] Qgis e recipe #19 di Spatialite cookbook

a.furieri a lqt.it a.furieri a lqt.it
Mer 5 Mar 2014 20:59:07 CET


On Wed, 5 Mar 2014 20:10:28 +0100, Andrea Peri wrote:
> Una precisazione.
>
> Secondo me sarebbe piu' indicato usare il costrutto
>
> ST_Multi()
> al posto del costrutto CastoToMulti().
>
> Su spatialite ST_Multi() è un alias di CastToMulti() e quindi usare
> luno o l'altro è indifferente.
>  Ma ST_Multi() è usato anche da Postgis e proviene da ISO per cui a
> parer mio ha un valore simbolico superiore.
>
> O esiste una differenza che ignoro tra CastToMulti() e ST_Multi()
> ?
>

Andrea,

lo standard OCG-SFS non prevede nulla del genere; non sono sicurissimo
al 100% per quanto riguarda ISO SQL/MM, ma non credo che neppure questo
standard piu' recente preveda una specifica formale per gli operatori
di casting.

a ulteriore conferma che ST_Multi() non e' un operatore standard: basta
fare una veloce ricerca su Google per "ST_Multi + Oracle".
non solo emerge chiaramente che tutte le voci che trova sono relative
solamente a PostGIS, ma addirittura esce fuori in prima posizione un 
post
su GISStackExchange che spiega chiaramente come Oracle Spatial richieda
tutt'altro tipo di approccio per applicare una conversione del tipo
geometrico.
e pure un'analoga ricerca per "ST_Multi + SQL Server" trova un 
ulteriore
post su GISStackExchange da cui si desume che SQL Server applica un
approccio ancora diverso ... insomma, siamo decisamente in una di
quelle "aree grige" in cui gli standard diventano assai fumosetti,
e quindi di conseguenza ciascuna singola implementazione si arrangia
come meglio crede facendo ricorso alla fantasia ;-)

tutta la famiglia CastToMulti() e' un'estensione fuori standard 
introdotta
autonomamente da splite: CastToMulti() e' la versione piu' generica
(converte qualsiasi cosa nel suo equivalente MULTI); 
CastToMultiPolygon(),
CastToMultiLinestring() e CastToMultiPoint() sono sottoversioni piu'
specifiche.

quando poi a posteriori e' emerso che anche PostGIS aveva gia'
implementato una sua estesione altrettanto fuori standard di nome
ST_Multi() che faceva sostanzialmente la stessa cosa, a quel punto
molto semplicemente e' stato aggiunto anche ST_Multi() come ulteriore
alias name proprio per favorire una migliore inter-operabilita' nei
confronti di PostGIS.

alla fine invocare CastToMulti() o ST_Multi() e' esattamente la solita
zuppa; comunque verra' eseguita sempre esattamente la medesima porzione
di codice in entrambi i casi.

ciao Sandro


Maggiori informazioni sulla lista Gfoss