ST_DISTANCESPHERE
📄字数 815
👁️阅读量 加载中...
功能描述
返回两个经度/纬度点之间的最小距离(以米为单位)。
语法格式
sql
DOUBLE ST_DISTANCESPHERE(GEOMETRY geom1, GEOMETRY geom2, DOUBLE radius=6371008);参数说明
- geom1:第一个目标 GEOMETRY 对象。
- geom2:第二个目标 GEOMETRY 对象。
- radius:从 SRID 定义的椭球体导出的半径,可选,默认值是球形地球半径。
函数返回类型
DOUBLE 类型
使用说明
- 比 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)