GIS面积计算

1、度/秒互转
UPDATE 表名 SET geom = st_scale(shape, 1/3600.0,1/3600.0)
2、geom转wkt字符串
SELETC st_astext(t.shape)
3、wkt字符串转geom 并设置坐标系
SELECT st_setsrid(ST_GeomFromText(‘POINT(428626.908 110737.8)’), 4326)
4、获取图形中心点坐标
SELECT ST_X(st_centroid(c.shape)) AS x , ST_Y(st_centroid(c.shape)) AS y
5、A是否包含B
ST_CONTAINS(A, b)
6、查询和修改SRID
SELECT st_srid(geom) FROM road limit 1;

UpdateGeometrySRID(varchar table_name, varchar column_name, integer srid);

UpdateGeometrySRID(varchar schema_name, varchar table_name, varchar column_name, integer srid);

UpdateGeometrySRID(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name, integer srid);
–schema_name表示schema的名称,一般默认是public

示例:
select UpdateGeometrySRID(‘road’, ‘geom’, 4326);
–road为表名
–geom为空间字段
–4326为更新的SRID

7、面积计算
ST_AREA(shape)
注意:st_area必须在以米为单位的坐标系中才能计算出准确的面积,WGS84(4326)是以度为单位。计算时需用st_transform将几何体转换到以米为单位的坐标系中。
修改后使用 st_area(st_transform(shape,4527))计算面积
不对

4326是以度为坐标的,st_area计算出来的也是度的面积,需将度的面积转为平方米,则使用
st_area(shape)111000111000
8、获取图形的类型
ST_GeometryType
GeometryType
9、坐标系转换
GCJ02转WGS84
select geoc_gcj02towgs84(geom) from test_table
WGS84转GCJ02
select geoc_wgs84togcj02(geom) from test_table
WGS84转BD09
select geoc_wgs84tobd09(geom) from test_table
BD09转WGS84
select geoc_bd09towgs84(geom) from test_table
GCJ02转BD09
select geoc_gcj02tobd09(geom) from test_table
BD09转GCJ02
select geoc_bd09togcj02(geom) from test_table