geography

The type representing spatial features with geodetic (ellipsoidal) coordinate systems.


geography 与 geometry

最大不同之处是对空间数据的计算方式不同

Geometry——基于平面坐标

Geography——基于球面坐标来计算的,计算它们之间的大圆航线的距离(大圆航线:球面上两点之间的最短距离的航线)

地理坐标看作近似的笛卡尔平面坐标进行空间计算——关于距离、长度和面积的测量将毫无意义,索引和真/假测试(如相交包含)可能会变得非常错误,因为越与极点或国际日期线接近的区域,点与点之间的距离变得越大

SELECTST_Distance(ST_GeographyFromText('POINT(-118.4079 33.9434)'),-- Los Angeles (LAX)

ST_GeographyFromText('POINT(2.5559 49.0083)')-- Paris (CDG));



结果

所有geography计算的返回值都以为单位。

1.  转换为Geography


ST_Transform(geometry, srid)函数能将坐标转换为地理坐标

Geography(geometry)函数能将基于EPSG:4326的geometry数据类型转换为geography数据类型

Geography(ST_Transform(geom,4326)) AS geog,


将数据从投影坐标转换为地理坐标(也称为"经度(longitude)/ 纬度(latitude)")

知道坐标的SRID是什么,则可以使用ST_SetSRID()对几何图形进行SRID设置。然后,你将能把几何图形的现有坐标系统转换为其他坐标系统

SELECT ST_AsText(

ST_Transform(

  ST_SetSRID(geom,26918),

4326)

)

FROM geometries;


2.转换为geometry

::geometry附加到geography值后面,可以将对象转换为SRID为4326的geometry。可以使用任何的geometry函数了。但是,请记住-现在的对象是geometry,坐标将被解释为笛卡尔平面坐标

PostGIS包含更改数据投影(重投影)的功能,即使用ST_Transform(geometry, srid)函数就可以实现重投影。

为了查看和设置几何图形的空间参照标识符,PostGIS提供了ST_SRID(geometry)ST_SetSRID(geometry,SRID)函数

坐标和SRID(严谨的说应该是空间参考系统)一起定义了地球上的一个位置。没有SRID,坐标只是一个抽象而没有实际意义的概念。“笛卡尔”坐标平面被定义为放置在地球表面的“平面”坐标系。由于PostGIS函数在这样的坐标系统上工作,因此关于两个几何图形的比较的操作都要基于同一SRID



其他知识点

笛卡尔平面坐标(Cartesian coordinates)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。