PostgreSQL Always功能使用
分享
背景
有些弱gis项目,比如通讯行业,大部分都是采集的poi点,比如基站或者信令数据,录入数据的应用都是用的X,Y坐标,那如何再不改变应用的情况下,可以在一些GIS软件是展示这些数据,毕竟很多的GIS软件并不支持直接显示X,Y坐标
解决方法
可以通过在表中添加一个类型为geometry的字段,然后利用PG的Generate Always功能自动更新该类型的值
步骤
背景
有些弱gis项目,比如通讯行业,大部分都是采集的poi点,比如基站或者信令数据,录入数据的应用都是用的X,Y坐标,那如何再不改变应用的情况下,可以在一些GIS软件是展示这些数据,毕竟很多的GIS软件并不支持直接显示X,Y坐标
解决方法
可以通过在表中添加一个类型为geometry的字段,然后利用PG的Generate Always功能自动更新该类型的值
步骤
create table testg (id serial primary key ,x double precision,y double precision, geom geometry(point,4326) generated always as ST_SetSRID(ST_MakePoint(x,y),4326) stored);
insert into testg (x,y) values (12.34,34.3);
insert into testg (x,y) values (23.34,44.3);
select geom from testg;
geom
----------------------------------------------------
0101000020E6100000AE47E17A14AE28406666666666264140
0101000020E6100000D7A3703D0A5737406666666666264640
(2 行记录)
select st_asewkt(geom) from testg;
st_asewkt
-----------------------------
SRID=4326;POINT(12.34 34.3)
SRID=4326;POINT(23.34 44.3)
create index on testg using gist(geom);
CREATE INDEX
\d testg
数据表 "sde.testg"
栏位 | 类型 | 校对规则 | 可空的 | 预设
------+----------------------+----------+----------+-------------------------------------------------------------------
id | integer | | not null | nextval('testg_id_seq'::regclass)
x | double precision | | |
y | double precision | | |
geom | geometry(Point,4326) | | | generated always as (st_setsrid(st_makepoint(x, y), 4326)) stored
索引:
"testg_pkey" PRIMARY KEY, btree (id)
"testg_geom_idx" gist (geom)
使用GeoScene Desktop展示如下0 个评论
相关问题
- 如何优雅的使用ArcGIS知乎?
- 苹果系统下可以使用arcgis 吗?
- Arcgis的地位不可撼动,那有必要掌握使用其他GIS软件吗
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
- 请问arcmap如何使用多线程?
- arcgis runtime for andriod 100.1 如何使用eclipse开发
- 如何使用脚本或其他方法,将图层属性中属性域原值内容替换为属性域描述?
- 使用ArcGIS Desktop10.2版本,如何设置图例横着放且label在正下方?
- arcmap 里面的符号(如箭头符号)如何在arcgis js 里面使用类似的symbol
- 使用portal10.5能直接发布三维模型服务吗
- 请问一下,有使用Indoors的大佬么,可以分享一下怎么下载的么