GIS相关数据库计算方法

6 篇文章 0 订阅
1 篇文章 0 订阅

GIS相关数据库计算方法

创建postgis扩展

create extension postgis;

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)*111000*111000

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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值