PostGIS之路--AddGeometryColumn函数--添加一个几何类型字段
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函数--添加一个几何类型字段相关推荐
- R语言dplyr包为dataframe添加数据列实战( Add Columns):基于mutate()函数添加一个或者多个数据列(尾部添加、头部添加、条件生成、某个具体数据列的前后)
R语言dplyr包为dataframe添加数据列实战( Add Columns):基于mutate()函数添加一个或者多个数据列(尾部添加.头部添加.条件生成.某个具体数据列的前后) 目录
- Entity Framework 6 Recipes 2nd Edition(11-5)译 - 从”模型定义”函数返回一个匿名类型...
11-5. 从"模型定义"函数返回一个匿名类型 问题 想创建一个返回一个匿名类型的"模型定义"函数 解决方案 假设已有游客(Visitor) 预订(reserv ...
- Spring Security在标准登录表单中添加一个额外的字段
概述 在本文中,我们将通过向标准登录表单添加额外字段来实现Spring Security的自定义身份验证方案. 我们将重点关注两种不同的方法,以展示框架的多功能性以及我们可以使用它的灵活方式. 我们的 ...
- oracle 自定义函数 返回一个表类型
oracle 中的函数可以返回表类型 但,这个表类型实际上是集合类型(与数组类似) 这个类型不能直接作为 from 的宾语 从oracle 9i 开始,提供了一个叫做"管道化 ...
- oracle自定义函数返回一个表,oracle 自定义函数 返回一个表类型
oracle 中的函数可以返回表类型 但,这个表类型实际上是集合类型(与数组类似) 这个类型不能直接作为 from 的宾语 从oracle 9i 开始,提供了一个叫做"管道化表函数" ...
- Spark:给DataFrame添加一个有类型的null列
我们知道,scala中Int类型不能为null, 而Dataset中表示的Int值的IntegerType类型列却能为null. 如果我们想产生一个IntegerType类型列为null的DataFr ...
- sql server2008如果表中已经有很多条记录,再添加一个非空字段
alter table 表名 add 字段名 类型 not null default('') 转载于:https://www.cnblogs.com/deram/p/5880366.html
- PostGIS几何类型及常用函数
1.PostGIS中的几何类型 1.1 WKB和WKT OGC 全称是开放地理空间信息联盟(Open Geospatial Consortium) 定义了两种描述几何对象的格式,分别是WKB(Well ...
- 编程高手之路——闭包函数
目录 一.函数嵌套调用 1.1函数嵌套调用 1.2 函数嵌套定义 二.名称空间 2.1 名称空间说明 2.2 名称空间的分类 三.作用域 3.1 变量作用域 3.1.1 参数名称的另一种定义形式: 3 ...
最新文章
- CSS篇 《图解CSS3》笔记 Flex
- details在Java中_Spring安全性在Java配置中使用两个自定义UserDetailsS​​ervices
- java填写xls模板_Java 新建excle文件并填充模版内容
- 通过libusb操作usb设备扫描二维码
- SkyWalking集成与案例
- 拦截器 过滤器 监听器 的区别
- jq之mousedown
- 114. Flatten Binary Tree to Linked List【Medium】【将给定的二叉树转化为“只有右孩子节点”的链表(树)】...
- html radio 更换图片,html修改radio、checkbox样式
- 阿里iconfont图库官网网址
- AJAX(Asynchronous JavaScript And XML,异步JavaScript + XML)
- 如何在Mac上捕获流视频 ?Movavi Screen Recorder 实用教程
- debian10上安装samba服务器
- 注册表怎么禁用计算机,注册表的禁用方法与解锁方法
- 乐高大颗粒作品24:金蟾
- 神经网络在控制中的作用,神经网络控制基本原理
- 2017全球最具影响力机器人公司TOP排行榜
- MySQLdb._exceptions.OperationalError: (1045, “Access denied for user ‘root‘@‘localhost‘ (using passw
- oracle数据库字符集子集与超集对应关系表表
- CobaltStrike(钓鱼攻击工具)
热门文章
- uboot和linux内核移植流程简述
- Jupyter-Notebook笔记-02 基本使用
- phpstudy配置oracle,【phpstudy】安装Oracle 客户端 并连接
- 转:利用python调用谷歌翻译API
- Android 学习之“工作资料”的初步学习与开发
- Java加密工具类EncryptUtils
- java 中符号_java中的符号
- 解决ubuntu中jupyter中文绘图中文字体乱码显示问题
- UE4 C++:Delegate委托
- git push -u什么意思 和git push --set-upstream origin master:master什么意思