>SELECT ST_Distance_Sphere(> La stessa query la applico sul mio pg ed ottengo un risultato leggermente, ma inequivocabilmente e decisamente, differente. 1,0009418011511229 -- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. |
Il 19 novembre 2009 19.38, Andrea Peri <[hidden email]> ha scritto:
>>SELECT ST_Distance_Sphere( >> ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326), >> ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326) >>); > >> st_distance_sphere >>-------------------- >> >> 1.0009418016345 > >> > > La stessa query la applico sul mio pg ed ottengo un risultato leggermente, > ma inequivocabilmente e decisamente, differente. > > 1,0009418011511229 > > a me viene uguale a niccolo ciao Luca _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. |
Che configurazione usi ?
La mia e' debian X86_64 con postgres 8.4.0 + postgis 1.4.0 e geos trunk (dovrebbe essere una 3.2.+) il tutto compilato dai sorgenti a 64 bit. Sospetto che la differenza provenga dalla libreria geos. Luca Delucchi ha scritto: > Il 19 novembre 2009 19.38, Andrea Peri <[hidden email]> ha scritto: > >>> SELECT ST_Distance_Sphere( >>> ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326), >>> ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326) >>> ); >>> >>> st_distance_sphere >>> -------------------- >>> >>> 1.0009418016345 >>> >> La stessa query la applico sul mio pg ed ottengo un risultato leggermente, >> ma inequivocabilmente e decisamente, differente. >> >> 1,0009418011511229 >> >> >> > > a me viene uguale a niccolo > > ciao > Luca > > _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. |
In reply to this post by Andrea Peri
On Thu, Nov 19, 2009 at 07:38:34PM +0100, Andrea Peri wrote:
> >SELECT ST_Distance_Sphere( > > ST_Transform(ST_PointFromText('POINT(1626216 4855458)', 3003), 4326), > > ST_Transform(ST_PointFromText('POINT(1626216 4855459)', 3003), 4326) > >); > > st_distance_sphere > >-------------------- > > > > 1.0009418016345 > > > > > La stessa query la applico sul mio pg ed ottengo un risultato leggermente, > ma inequivocabilmente e decisamente, differente. > > 1,0009418011511229 Quella è la seconda prova che ho fatto, che comprende la ST_Transform(point, 4326). Anche a me in quel caso torna giustamente 1 metro circa. L'errore c'era senza ST_Transform(), in quel caso ST_Distance_Sphere() non funziona. -- Niccolo Rigacci Firenze - Italy _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. |
Il problema e' che il valore che ritorna a me e' differente da quello che il tuo PG ritorna.
:( Ora mi tocca scervellarmi per scoprire quale cavolo di libreria e' in difetto.
Il giorno 20 novembre 2009 07.16, Niccolo Rigacci <[hidden email]> ha scritto:
-- ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. |
>Il problema e' che il valore che ritorna a me e' differente da quello che il
>tuo PG ritorna. considera che ST_Transform in questo caso opera una trasformazione di elissoide e quindi utilizza delle formule approssimate, la differenza (0.0000005 mm circa ...) può essere dovuta anche all'archittettura hardware (32 vs 64 bit) oppure a dei parametri di trasformazione lievemente diversi. Comunque la differenza è molto ma molto più piccola di qualsiasi errore di misura. Ciao, Stefano _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. |
Infatti e' senz'altro cosi',
Pero' il computer e' sostanzialmente una macchina deterministica e questo significa che a input uguali devono corrispondere risposte uguali. Per cui questa differenza di risultato, per piccola che sia e' un qualcosa che in analoghe condizioni si ripresentera' sempre. Ed e' interessante capire quali siano i parametri che fanno divergere il risultato. Comunque e' molto probabile che la differenza sia dovuta alla differenza di architettura. infatti facendo la prova su un'altra configurazione Linux sempre a 64 bit. Ottengo il medesimo risultato ovvero 1,0009418011511229 Preciso all'ultimo decimale con il risultato della prova su Debian 64bit. Sebbene la architettura su cui faccio questa seconda prova pur essendo sempre una linux a 64 bit sia sensibilmente differente e la Geos era la 3.1.1 released. Per ora gli indizi vanno tutti verso una differenza di risultati tra 32 e 64 bit. Probabilmente legato anche alla differente precisione con cui possono essere effettuati i calcoli. Mi domando se esiste un metodo per riportare i calcoli di una configurazione a 64bit alla precisione di una architettura a 32bit, magari settando qualche parametro di configurazione su Postgis .... La riproducibilita' del risultato e' un traguardo. Stefano Salvador ha scritto: >> Il problema e' che il valore che ritorna a me e' differente da quello che il >> tuo PG ritorna. >> > > considera che ST_Transform in questo caso opera una trasformazione di > elissoide e quindi utilizza delle formule approssimate, la differenza > (0.0000005 mm circa ...) può essere dovuta anche all'archittettura hardware > (32 vs 64 bit) oppure a dei parametri di trasformazione lievemente diversi. > > Comunque la differenza è molto ma molto più piccola di qualsiasi errore di > misura. > > > Ciao, > > Stefano > > _______________________________________________ Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione [hidden email] http://lists.faunalia.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non rispecchiano necessariamente le posizioni dell'Associazione GFOSS.it. |
Free forum by Nabble | Edit this page |