mysql gis postgre_postgresql + postgis 空间数据存储

postgresql

添加几何字段

select AddGeometryColumn('test', 'cities', 'shape', 4326, 'POINT', 2)

database table feild srid type 2维/3维

条件判断

coalesce(null,1) 返回第一个不是null的值 (类似mysql的ifnull)

自增长数字

generate_series(1, 99)

合并字段值

array_agg(column) (类似mysql的group_concat())

拼接字段值

string_agg(column,delimiter) (类似String.join(delimiter,elements..))

分页

limit pageSize offset startIndex

like

~ 匹配正则表达式,大小写相关 'thomas' ~ '.*thomas.*'

~* 匹配正则表达式,大小写无关 'thomas' ~* '.*Thomas.*'

!~ 不匹配正则表达式,大小写相关 'thomas' !~ '.*Thomas.*'

!~* 不匹配正则表达式,大小写无关 'thomas' !~* '.*vadim.*'

DDL

CREATE TABLE "testdatabase"."test" (

"id" serial4 NOT NULL COMMENT '自动创建序列',

"name" varchar(64) DEFAULT ''::character varying

);

CREATE INDEX "idx_name" ON "public"."table" USING gist (

"column" "public"."gist_geometry_ops_2d"

);

postgis

查看srid

st_srid(geom)

更改srid

update table set geom = st_setsrid(geom, 4548) ;

SELECT updategeometrysrid('table', 'column', 4326);

几何对象构造 srid 可以省略

st_GeomFromText('POINT(117.029774783967 39.2252910679476)',4326);

st_GeomFromJson('{"type":"Point","coordinates":[117.02925861421,39.2270537797677]}',4326);

获取数据

ST_Asgeojson(geometry)

ST_AsText(geometry)

坐标系转换

ST_Transform(geometry,4326) geom字段必须指定srid

判断A是否包含B 全部包含 内边界相交为false

ST_Contains(geometry A, geometry B)

判断两个几何对象是否相交 外边界相交为true

ST_Intersects(geometry, geometry)

获取两个几何对象相交的部分

ST_Intersection(geometry, geometry)

面积 st_area(geometry)

周长 ST_perimeter(geometry)

获取点的X坐标 ST_X(geometry)

获取点的Y坐标 ST_Y(geometry)

获取点的Z坐标 ST_Z(geometry)

范围查询 必须是投影坐标系

ST_DWithin(geometry,geometry,radius) geom无位置区分 半径单位为米

两个几何对象的距离 两个几何对象的坐标系必须一致

ST_distancesphere (geometry,geometry) 大地坐标系

ST_distance (geometry,geometry) 投影坐标系

geometry geometry 不区分坐标系

合并几何对象

ST_Union(geometry, geometry)

st_union(array_agg(geom))

st_union(st_accum(geom))

构造几何数组

ST_Accum(geometry set)

几何操作符:

A范围=B范围 A = B

A范围覆盖B范围或A范围在B范围左侧 A &<> B

A范围在B范围左侧 A <<>> B

A范围覆盖B范围或A范围在B范围下方 A & B

A范围在B范围下方 A <> B

A=B A ~= B

A范围被B范围包含 A @ B

A范围包含B范围 A ~ B

A范围覆盖B范围 A && B

postgis 常用函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值