Problema con ST_Distance_Sphere in PostGIS

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Problema con ST_Distance_Sphere in PostGIS

Niccolo Rigacci
Probabilmente mi sfugge qualcosa, ma in PostGIS ottengo questo
risultato:

SELECT ST_Distance_Sphere(
    ST_PointFromText('POINT(1626216 4855458)', 3003),
    ST_PointFromText('POINT(1626216 4855459)', 3003)
);
 st_distance_sphere
--------------------
   111194.697710286

considerato che EPSG:3003 esprime le coordinate in metri,
considerato che i due POINT differiscono di un solo metro sulla Y

Come mai la distanza risulta 111 km?

È vero che il manuale PostGIS indica ST_Distance_Sphere come
"less accurate", ma mi pare che si esageri!

--
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.
Reply | Threaded
Open this post in threaded view
|

Re: Problema con ST_Distance_Sphere in PostGIS

Alessandro Pasotti
Il giovedì 19 novembre 2009, Niccolo Rigacci ha scritto:

> Probabilmente mi sfugge qualcosa, ma in PostGIS ottengo questo
> risultato:
>
> SELECT ST_Distance_Sphere(
>     ST_PointFromText('POINT(1626216 4855458)', 3003),
>     ST_PointFromText('POINT(1626216 4855459)', 3003)
> );
>  st_distance_sphere
> --------------------
>    111194.697710286
>
> considerato che EPSG:3003 esprime le coordinate in metri,
> considerato che i due POINT differiscono di un solo metro sulla Y
>
> Come mai la distanza risulta 111 km?

111 km è quasi esattamente un DD....




--
Alessandro Pasotti
itOpen - "Open Solutions for the Net Age"
w3:  www.itopen.it
Linux User# 167502
_______________________________________________
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.
Reply | Threaded
Open this post in threaded view
|

Re: Problema con ST_Distance_Sphere in PostGIS

a.furieri
In reply to this post by Niccolo Rigacci
On Thu, 19 Nov 2009 16:14:58 +0100, Niccolo Rigacci wrote

> Probabilmente mi sfugge qualcosa, ma in PostGIS ottengo questo
> risultato:
>
> SELECT ST_Distance_Sphere(
>     ST_PointFromText('POINT(1626216 4855458)', 3003),
>     ST_PointFromText('POINT(1626216 4855459)', 3003)
> );
>  st_distance_sphere
> --------------------
>    111194.697710286
>
> considerato che EPSG:3003 esprime le coordinate in metri,
> considerato che i due POINT differiscono di un solo metro sulla Y
>
> Come mai la distanza risulta 111 km?
>
> È vero che il manuale PostGIS indica ST_Distance_Sphere come
> "less accurate", ma mi pare che si esageri!
>

Ciao Niccolo,
a naso mi puzza tanto che ST_Distance_Sphere() si
aspetti coordinate geografiche (lat/long)

guarda caso 111,111111 km corrispondono esattamente
ad un grado sul cerchio massimo [equatore] :-)

saluti,
Sandro

_______________________________________________
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.
Reply | Threaded
Open this post in threaded view
|

Re: Problema con ST_Distance_Sphere in PostGIS

Stefano Salvador
dalla documentazione:

       
This function currently does not look at the SRID of a geometry and
will always assume its in WGS 84 long lat. Prior versions of this
function only support points.

quindi restituisce esattamente la distanza di un grado espresso in metri.


Ciao,

Stefano


Il 19 novembre 2009 16.20,  <[hidden email]> ha scritto:

> On Thu, 19 Nov 2009 16:14:58 +0100, Niccolo Rigacci wrote
>> Probabilmente mi sfugge qualcosa, ma in PostGIS ottengo questo
>> risultato:
>>
>> SELECT ST_Distance_Sphere(
>>     ST_PointFromText('POINT(1626216 4855458)', 3003),
>>     ST_PointFromText('POINT(1626216 4855459)', 3003)
>> );
>>  st_distance_sphere
>> --------------------
>>    111194.697710286
>>
>> considerato che EPSG:3003 esprime le coordinate in metri,
>> considerato che i due POINT differiscono di un solo metro sulla Y
>>
>> Come mai la distanza risulta 111 km?
>>
>> È vero che il manuale PostGIS indica ST_Distance_Sphere come
>> "less accurate", ma mi pare che si esageri!
>>
>
> Ciao Niccolo,
> a naso mi puzza tanto che ST_Distance_Sphere() si
> aspetti coordinate geografiche (lat/long)
>
> guarda caso 111,111111 km corrispondono esattamente
> ad un grado sul cerchio massimo [equatore] :-)
>
> saluti,
> Sandro
>
> _______________________________________________
> 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.
>
_______________________________________________
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.
Reply | Threaded
Open this post in threaded view
|

Re: Problema con ST_Distance_Sphere in PostGIS

Niccolo Rigacci
On Thu, Nov 19, 2009 at 04:22:38PM +0100, Stefano Salvador wrote:
> dalla documentazione:
>
>
> This function currently does not look at the SRID of a geometry and
> will always assume its in WGS 84 long lat. Prior versions of this
> function only support points.


Ecco, infatti! Mi era sfuggita la nota!

Però on-line io leggo "WGS 80", è un refuso?
http://postgis.refractions.net/docs/ST_Distance_Sphere.html


Grazie a tutti, rapidissimi e attenti.

Ecco il risultato corretto:

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

--
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.