Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_DISTANCESPHERE

📄字数 815
👁️阅读量 加载中...

功能描述

返回两个经度/纬度点之间的最小距离(以米为单位)。

语法格式

sql
DOUBLE ST_DISTANCESPHERE(GEOMETRY geom1, GEOMETRY geom2, DOUBLE radius=6371008);

参数说明

  • geom1:第一个目标 GEOMETRY 对象。
  • geom2:第二个目标 GEOMETRY 对象。
  • radius:从 SRID 定义的椭球体导出的半径,可选,默认值是球形地球半径。

函数返回类型

DOUBLE 类型

使用说明

  1. 比 ST_DistanceSpheroid 更快,但精度较差。

示例

sql
SQL> SELECT round(CAST(ST_DistanceSphere(ST_Centroid(geom), ST_GeomFromText('POINT(-118 38)',4326)) As numeric),2) As dist_meters,
     round(CAST(ST_Distance(ST_Transform(ST_Centroid(geom),32611),
                     ST_Transform(ST_GeomFromText('POINT(-118 38)', 4326),32611)) As numeric),2) As dist_utm11_meters,
     round(CAST(ST_Distance(ST_Centroid(geom), ST_GeomFromText('POINT(-118 38)', 4326)) As numeric),5) As dist_degrees,
     round(CAST(ST_Distance(ST_Transform(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 geom) as foo;

+-------------+-------------------+--------------+----------------------------+
| DIST_METERS | DIST_UTM11_METERS | DIST_DEGREES | MIN_DIST_LINE_POINT_METERS |
+-------------+-------------------+--------------+----------------------------+
| 70425       | 70438             | 1            | 65871                      |
+-------------+-------------------+--------------+----------------------------+

(1 row)