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

相关推荐
曹牧18 小时前
oracle:NOT IN
数据库·oracle
爬山算法18 小时前
Redis(66)Redis如何实现分布式锁?
数据库·redis·分布式
Super Rookie18 小时前
MongoDB 自动化脚本安装方案
数据库·mongodb·自动化
Code哈哈笑19 小时前
【MongoDB 基本语法】数据库和集合的基本操作--探秘 MongoDB
数据库·mongodb
恋红尘19 小时前
Redis面试八股
数据库·redis·面试
直有两条腿20 小时前
【数据迁移】HBase Bulkload批量加载原理
大数据·数据库·hbase
言之。20 小时前
ClickHouse 数据更新策略深度解析:突变操作与最佳实践
服务器·数据库·clickhouse
白衣鸽子21 小时前
数据库高可用设计的灵魂抉择:CAP权衡
数据库·后端
DokiDoki之父1 天前
Mybatis—入门 & (配置)SQL提示和日志输出
数据库·sql·mybatis
TDengine (老段)1 天前
TDengine 数据函数 LN 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据