[Gfoss] Concetti di base, conversione 3003 -> 4326

Buongiorno, riprendo un vecchio post, che mi ha permesso di arrivare ad una soluzione per passare dal sistema di riferimento MonteMario / Italy zone 1 (EPSG:3003) a WGS84 (EPSG:4326), tramite una view di PostGis basata su una geometria in 3003; questo è utile perché (come ho sempre fatto) non devo più avere una coppia di geometrie identiche in 2 sistemi di riferimento e ricordarsi sempre di aggiornare la seconda; questa è la soluzione che cerco da tempo, di cui l’ostacolo che mi impediva di usare questa trasformazione “hide” è quello dell’errore proiettato sul territorio con discostamenti di un 100naio di metri, che avviene quando si usa la stinga SQL:

SELECT am.gid, st_transform(st_setsrid(am.the_geom, 3003), 4326) AS the_geom FROM am;

Così ho cercato la soluzione trovata in quel vecchio post.

Da quel che ho capito bisogna applicare una correzione, che dipende da luogo in Italia in cui si trova la geometria. Tramite il sito www.epsg-registry.org/, in Query by filter si inserisce - Name: Monte Mario to WGS 84 - dove vengono restituiti i CODE:EPSG corrispondenti alle aree in cui è divisa l’Italia ed essendo in Lombardia sono andato a vedere: Monte Mario to WGS 84 (4) - EPSG::1660 - Italy - mainland including San Marino and Vatican City State.

Così nella descrizione del codice EPSG::1660 la parte interessante allo scopo è quella dei Parameter Values. Questi vanno inseriti correttamente insieme al valore da inserire nella tabella spatial_ref_sys di Posgis, nel campo proj4text

proj4text= ‘+proj=tmerc +lat_0=0 +lon_0=9 +k=0.999600 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68’

Con questo valore da inserire, bisogna però aggiungere un record alla tabella spatial_ref_sys e visto che oltre a questo campo ne è presente un altro con valore non immediatamente comprensibile srtext decido di fare una copia del record con code epsg 3003 modificando solo il campo proj4text, con la seguente stinga SQL:

INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid,srtext, proj4text) SELECT ‘900914’, auth_name, auth_srid,srtext, ‘+proj=tmerc +lat_0=0 +lon_0=9 +k=0.999600 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68’ FROM spatial_ref_sys WHERE srid = 3003;

ho cambiato anche il valore del campo srid inserendo 900914, perchè da quello che ho capito è un codice personale consecutivo, successivo al 900913, che di solito viene usato per EPSG di GoogleMercator!

Così la nuova stinga SQL da usare con la view diventa:

SELECT am.gid, st_transform(st_setsrid(am.the_geom, 900914), 4326) AS the_geom FROM am;

ottenendo un risultato ragionevole come da figure a seguito.

Monte Mario

WGS84


il boom dei dati geografici è in corso, aspettiamoci quello delle informazioni spaziali
#Local Intelligent Marketing#

View this message in context: Re: Concetti di base, conversione 3003 → 4326
Sent from the Gfoss – Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

Ho fatto una verifica col servizio “trasformazione di coordinate” del Geoportale Regione Lombardia che dovrebbe usare i grigliati IGM per una maggiore precisione, risulta esserci un errore di soli 1,6m che considero del tutto accettabile per il mio lavoro!


il boom dei dati geografici è in corso, aspettiamoci quello delle informazioni spaziali
#Local Intelligent Marketing#

View this message in context: Re: Concetti di base, conversione 3003 → 4326
Sent from the Gfoss – Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.