1、AddGeometryColumn

添加一个几何类型字段到已经存在的可用表中,默认情况下使用类型修饰符定义约束。该i函数实现版本较早,支持3D但不能删除z,也支持添加圆和曲面。

函数:

text AddGeometryColumn(varchar table_name, varchar column_name, integer srid, varchar type, integer dimension, booleanuse_typmod=true);
text AddGeometryColumn(varchar schema_name, varchar table_name, varchar column_name, integer srid, varchar type, integer dimension, boolean use_typmod=true);
text AddGeometryColumn(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name, integer srid, varchar type, integer dimension, boolean use_typmod=true);

注意事项:

(1)srid必须在SPATIAL_REF_SYS表中

(2)添加到的表必须存在

(3)添加的类型存在

例如:

CREATE SCHEMA my_schema;

CREATE TABLE my_schema.my_spatial_table (id serial);

SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom',4326,'POINT',2);

SELECT AddGeometryColumn ('my_schema','my_spatial_table','geom_c',4326,'POINT',2, false);

SELECT AddGeometryColumn('my_schema','my_spatial_table','geomcp_c',4326,'CURVEPOLYGON',2,false);

2、DropGeometryColumn

从空间表中删除某一几何类型字段。(与AddGeometryColumn类似)

函数:

text DropGeometryColumn(varchar table_name, varchar column_name);
text DropGeometryColumn(varchar schema_name, varchar table_name, varchar column_name);
text DropGeometryColumn(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name);

例如:

SELECT DropGeometryColumn ('my_schema','my_spatial_table','geom');

ALTER TABLE my_schema.my_spatial_table DROP column geom;2.0版本里也可用该方法删除字段。

3、DropGeometryTable

删除一个表和所有的空间字段。

函数:

boolean DropGeometryTable(varchar table_name);
boolean DropGeometryTable(varchar schema_name, varchar table_name);
boolean DropGeometryTable(varchar catalog_name, varchar schema_name, varchar table_name);

例如:

SELECT DropGeometryTable ('my_schema','my_spatial_table');

DROP TABLE my_schema.my_spatial_table;

4、获取PostGIS版本相关信息函数(以下函数均返回text)

PostGIS_Full_Version          返回所有版本信息

PostGIS_GEOS_Version        返回GEOS类库的版本信息,及是否可用。

PostGIS_LibXML_Version      返回libxml2库的版本信息

PostGIS_Lib_Build_Date       返回PostGIS类库构建时间

PostGIS_Lib_Version            返回PostGIS类库版本

PostGIS_PROJ_Version         返回PROJ4类库的版本信息,及是否可用。

PostGIS_Scripts_Build_Date  返回Scripts构建时间

PostGIS_Scripts_Installed     返回安装脚本版本

PostGIS_Scripts_Released    返回卸载脚本版本

PostGIS_Version                  返回PostGIS版本信息

例如:

SELECT PostGIS_Full_Version();

SELECT PostGIS_GEOS_Version();

SELECT PostGIS_LibXML_Version();

SELECT PostGIS_Lib_Build_Date();

SELECT PostGIS_Lib_Version();

SELECT PostGIS_PROJ_Version();

SELECT PostGIS_Scripts_Build_Date();

SELECT PostGIS_Scripts_Installed();

SELECT PostGIS_Scripts_Released();

SELECT PostGIS_Version();定义的

5、Populate_Geometry_Columns

使用时,须确保定义的字段可修改或者空间参考已经注册。use_typmod=false时,获得过去行为。

函数:

text Populate_Geometry_Columns(boolean use_typmod=true);
int Populate_Geometry_Columns(oid relation_oid, boolean use_typmod=true);

注意:

2.0.0版本改变:现在使用类型修饰符替换检查约束约束几何类型。你仍可使用检查修饰替换新use_typmod,设置为 false。

2.0.0版本加强:介绍了use_typmod可选参数允许被控制,如果列被创建typmodifiers或检查约束。

例如:

CREATE TABLE public.myspatial_table_cs(gid serial, geom geometry);

INSERT INTO myspatial_table_cs(geom) VALUES(ST_GeomFromText('LINESTRING(1 2, 3 4)',4326) );

SELECT Populate_Geometry_Columns('public.myspatial_table_cs'::regclass, false);

6、UpdateGeometrySRID

修改空间参考SRID,也可用ST_SetSRID,注意修改的SRID必须是模式中存在的。

函数:

text UpdateGeometrySRID(varchar table_name, varchar column_name, integer srid);
text UpdateGeometrySRID(varchar schema_name, varchar table_name, varchar column_name, integer srid);
text UpdateGeometrySRID(varchar catalog_name, varchar schema_name, varchar table_name, varchar column_name, integer srid);

--创建表
CREATE TABLE public.oyz_common_poi (id integer NOT NULL,name character varying(256),longitude double precision,latitude double precision,address character varying(256),phone character varying(64),type character varying(256),real_type character varying(64),self_type character varying(64),pos character varying(512),height double precision,image character varying(32),geom geometry(geometry,4326)
);--插入数据
INSERT INTO public.oyz_common_poi VALUES (111287, '美萨木铝门窗', 101.7640832, 36.66519532, '青海省西宁市城北区朝阳东路62号西60米', NULL, '购物;家居建材', '购物', NULL, NULL, 2579.336, 'shopping');
INSERT INTO public.oyz_common_poi VALUES (111506, '友谊手机直销', 101.7328943, 36.63458114, '海湖路29号', NULL, '购物;家电数码', '购物', NULL, NULL, 2574.102, 'shopping');
INSERT INTO public.oyz_common_poi VALUES (111634, '永昌通讯', 101.7533861, 36.59198285, '城西区142号附近', NULL, '购物;家电数码', '购物', NULL, NULL, 2484.445, 'shopping');--查询数据
select * from oyz_common_poi;--如果忘记添加几何geometry字段
-- 添加:几何 geometry 数据类型
SELECT AddGeometryColumn('','oyz_common_poi','geom','4326','geometry',2);
-- 批量拼接并设置geom字段
update oyz_common_poi set geom = concat('SRID=4326;POINT (',longitude,' ',latitude,')')

参考链接:http://postgis.net/docs/AddGeometryColumn.html

PostGIS之路--AddGeometryColumn函数--添加一个几何类型字段相关推荐

  1. R语言dplyr包为dataframe添加数据列实战( Add Columns):基于mutate()函数添加一个或者多个数据列(尾部添加、头部添加、条件生成、某个具体数据列的前后)

    R语言dplyr包为dataframe添加数据列实战( Add Columns):基于mutate()函数添加一个或者多个数据列(尾部添加.头部添加.条件生成.某个具体数据列的前后) 目录

  2. Entity Framework 6 Recipes 2nd Edition(11-5)译 - 从”模型定义”函数返回一个匿名类型...

    11-5. 从"模型定义"函数返回一个匿名类型 问题 想创建一个返回一个匿名类型的"模型定义"函数 解决方案 假设已有游客(Visitor) 预订(reserv ...

  3. Spring Security在标准登录表单中添加一个额外的字段

    概述 在本文中,我们将通过向标准登录表单添加额外字段来实现Spring Security的自定义身份验证方案. 我们将重点关注两种不同的方法,以展示框架的多功能性以及我们可以使用它的灵活方式. 我们的 ...

  4. oracle 自定义函数 返回一个表类型

    oracle 中的函数可以返回表类型   但,这个表类型实际上是集合类型(与数组类似)   这个类型不能直接作为 from 的宾语     从oracle 9i 开始,提供了一个叫做"管道化 ...

  5. oracle自定义函数返回一个表,oracle 自定义函数 返回一个表类型

    oracle 中的函数可以返回表类型 但,这个表类型实际上是集合类型(与数组类似) 这个类型不能直接作为 from 的宾语 从oracle 9i 开始,提供了一个叫做"管道化表函数" ...

  6. Spark:给DataFrame添加一个有类型的null列

    我们知道,scala中Int类型不能为null, 而Dataset中表示的Int值的IntegerType类型列却能为null. 如果我们想产生一个IntegerType类型列为null的DataFr ...

  7. sql server2008如果表中已经有很多条记录,再添加一个非空字段

    alter table 表名 add 字段名 类型 not null default('') 转载于:https://www.cnblogs.com/deram/p/5880366.html

  8. PostGIS几何类型及常用函数

    1.PostGIS中的几何类型 1.1 WKB和WKT OGC 全称是开放地理空间信息联盟(Open Geospatial Consortium) 定义了两种描述几何对象的格式,分别是WKB(Well ...

  9. 编程高手之路——闭包函数

    目录 一.函数嵌套调用 1.1函数嵌套调用 1.2 函数嵌套定义 二.名称空间 2.1 名称空间说明 2.2 名称空间的分类 三.作用域 3.1 变量作用域 3.1.1 参数名称的另一种定义形式: 3 ...

最新文章

  1. CSS篇 《图解CSS3》笔记 Flex
  2. details在Java中_Spring安全性在Java配置中使用两个自定义UserDetailsS​​ervices
  3. java填写xls模板_Java 新建excle文件并填充模版内容
  4. 通过libusb操作usb设备扫描二维码
  5. SkyWalking集成与案例
  6. 拦截器 过滤器 监听器 的区别
  7. jq之mousedown
  8. 114. Flatten Binary Tree to Linked List【Medium】【将给定的二叉树转化为“只有右孩子节点”的链表(树)】...
  9. html radio 更换图片,html修改radio、checkbox样式
  10. 阿里iconfont图库官网网址
  11. AJAX(Asynchronous JavaScript And XML,异步JavaScript + XML)
  12. 如何在Mac上捕获流视频 ?Movavi Screen Recorder 实用教程
  13. debian10上安装samba服务器
  14. 注册表怎么禁用计算机,注册表的禁用方法与解锁方法
  15. 乐高大颗粒作品24:金蟾
  16. 神经网络在控制中的作用,神经网络控制基本原理
  17. 2017全球最具影响力机器人公司TOP排行榜
  18. MySQLdb._exceptions.OperationalError: (1045, “Access denied for user ‘root‘@‘localhost‘ (using passw
  19. oracle数据库字符集子集与超集对应关系表表
  20. CobaltStrike(钓鱼攻击工具)

热门文章

  1. uboot和linux内核移植流程简述
  2. Jupyter-Notebook笔记-02 基本使用
  3. phpstudy配置oracle,【phpstudy】安装Oracle 客户端 并连接
  4. 转:利用python调用谷歌翻译API
  5. Android 学习之“工作资料”的初步学习与开发
  6. Java加密工具类EncryptUtils
  7. java 中符号_java中的符号
  8. 解决ubuntu中jupyter中文绘图中文字体乱码显示问题
  9. UE4 C++:Delegate委托
  10. git push -u什么意思 和git push --set-upstream origin master:master什么意思