ST_Distance_Sphere — 2つの経度緯度ジオメトリ間の最小距離をメートル単位で返します。半径6370986メートルの球面を用います。xref linkend="ST_Distance_Spheroid" />より早いですが精度が低くなります。PostGIS 1.5より前では、ポイントについてのみ実装されていました。
float ST_Distance_Sphere(
geometry geomlonlatA, geometry geomlonlatB)
;
二つの経度緯度ジオメトリ間の最小距離をメートル単位で返します。半径6370986メートルの球面を用いますST_Distance_Spheroidより早いですが精度が低くなります。PostGIS 1.5より前では、ポイントについてのみ実装されていました。
この関数は現在のところ、ジオメトリのSRIDを見ずに、常にWGS84経度緯度を仮定します。以前の版ではポイントのみ対応していました。 |
初出: 1.5 - ポイント以外のジオメトリが導入されました。以前の版ではポイントでのみ動作しました。
SELECT round(CAST(ST_Distance_Sphere(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters, round(CAST(ST_Distance(ST_Transform(ST_Centroid(the_geom),32611), ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) As numeric),2) As dist_utm11_meters, round(CAST(ST_Distance(ST_Centroid(the_geom), ST_GeomFromText('POINT(-118 38)', 4326)) As numeric),5) As dist_degrees, round(CAST(ST_Distance(ST_Transform(the_geom,32611), ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) As numeric),2) As min_dist_line_point_meters FROM (SELECT ST_GeomFromText('LINESTRING(-118.584 38.374,-118.583 38.5)', 4326) As the_geom) as foo; dist_meters | dist_utm11_meters | dist_degrees | min_dist_line_point_meters -------------+-------------------+--------------+---------------------------- 70424.47 | 70438.00 | 0.72900 | 65871.18