postgresql基于postgis常用空间函数

1、st_astext 空间二进制转文本

select st_astext(geo) from <table>

2、ST_AsGeoJSON 空间数据转geojson格式

select ST_AsGeoJSON(geom) from <table> limit 10

3、ST_Transform 坐标转换

select st_transform(geom,3857) from mytable

4、st_srid 查询数据表坐标系

select st_srid(geom) from mytable

5、ST_GeomFromText 文本转二进制

select ST_GeomFromText('POINT(119.976900368929 31.8078044056892)',3857)

6、计算线路长度(米)

SELECT patrolid, st_length(ST_Transform(geom,3857))

FROM public.patrolrecord where patrolid='3d4f8e0d-e759-469f-b78e-50f6445b56c9'

ST_Area(ST_Transform(geom,3857))

7、空间相交计算

判断点是否在面内:

select ST_DWithin(ST_SetSRID(ST_MakePoint(117.272031,31.868486),4326),(SELECT geom from mytable where xzqhcode='340103009'),0)

8、矩形查询

_st_intersects(st_transform(ST_MakeEnvelope(" + leftTopX + "," + leftTopY + "," + rightBottomX + "," + rightBottomY + ",4326" + "),4326),geom)

9、多边形查询

SELECT gid,year,cc,gb,ec,name,type,cc,gb,ec,name,type,st_astext(geom) wkt FROM mytable where ST_Intersects(st_geometryfromtext('wkt',4326), geom) and year='2017'

10、根据已存在经纬度字段更新geometry字段

update mytable set geom =ST_SetSRID(ST_MakePoint(longitude,altitude),4326) where id=138

11、查询两点之间的距离(获取面状要素几何中心)

select jdm,st_distance(ST_Centroid(geom),ST_GeomFromText('POINT(117.12927656982 31.9223723088035)',4326),true) as distance from mytable order by distance asc limit 5

12、合并多个几何对象

update mytable set geom=SELECT st_union(geom) from tb_duty_area where (uid=49 or uid =107) WHERE uid=363

相关推荐
一只小bit19 小时前
MySQL事务:如何保证ACID?MVCC到底如何工作?
数据库·mysql·oracle
小猪咪piggy19 小时前
【项目】小型支付商城 MVC/DDD
java·jvm·数据库
向阳而生,一路生花19 小时前
redis离线安装
java·数据库·redis
·云扬·19 小时前
使用pt-archiver实现MySQL数据归档与清理的完整实践
数据库·mysql
黄焖鸡能干四碗19 小时前
信息安全管理制度(Word)
大数据·数据库·人工智能·智慧城市·规格说明书
zhangyifang_00919 小时前
PostgreSQL一些概念特性
数据库·postgresql
weixin_466819 小时前
安装Zabbix7
数据库·mysql·zabbix
数据库生产实战19 小时前
Oracle 19C实测:重命名分区表后又重命名分区索引,分区索引会失效吗?DBA必看避坑指南!
数据库·oracle·dba
king_harry20 小时前
window server2008下Oracle 配置dblink查询 MySQL 数据
数据库·mysql·oracle·odbc·dblink
chde2Wang20 小时前
hbase启动报错-keeperErrorCode
大数据·数据库·hbase