postgis:通过命令创建几何图形-geometry

已被阅读 2305 次 | 文章分类:geoserver | 2019-12-23 22:32

可以利用数据库的查询工具创建空间数据表

一:执行查看结果

直接打开query tool输入命令,创建测试数据表,然后插入几何对象数据,通过查询语句查看结果如下

                                        
CREATE TABLE geometry_test (name varchar, geom geometry);
 
INSERT INTO geometry_test VALUES
  ('Point', 'POINT(0 0)'),
  ('Linestring', 'LINESTRING(0 0, 1 1, 2 1, 2 2)'),
  ('Polygon', 'POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'),
  ('PolygonWithHole', 'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1))'),
  ('Collection', 'GEOMETRYCOLLECTION(POINT(2 0),POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))');
 
SELECT name, ST_AsText(geom) FROM geometry_test;
                                        
                                    

小白GIS

该表中我们插入5个几何图形数据(geometry)

                                        
一个点(POINT)
一条线(LINESTRING)
一个多边形(POLYGON)
一个内含空洞的多边形(POLYGON with a hole)
一个图形集合(COLLECTION)
                                        
                                    

二:查看元数据表

1、通过元数据表我们可以了解,该数据库中所有数据表的类型,以及表列参数解释

主要了解两个元数据表spatial_ref_sys以及geometry_columns,geometry_columns是我们的视图,可以通过查询语句查看表内容,也可以通过view查看

                                        
SELECT * FROM geometry_columns;
                                        
                                    

小白GIS

小白GIS

每一列所表示情况如下:

                                        
f_table_catalog,f_table_schema,和f_table_name提供各个几何图形(geometry)的要素表(feature table)分别是数据库名、模式名、空间数据表名。
f_geometry_column包含对应空间数据表中用于记录几何信息的属性列的列名。
coord_dimension定义几何图形的维度(2维、3维或4维)
srid定义引用自spatial_ref_sys表的空间参考标识符
type列定义了几何图形的类型。比如"点(Point)"和"线串(Linestring)"等类型。
                                        
                                    

该view表存在的意义,方便我们对数据库中表的类型以及数据有所认识,方便应用投影、处理、渲染

三:几何对象图形的查询方法

通过以下方法可以查询几何实体的类型以及参考,维度等信息

                                        
ST_GeometryType(geometry)    ——    返回几何图形的类型
ST_NDims(geometry)    ——    返回几何图形的维数
ST_SRID(geometry)    ——    返回几何图形的空间参考标识码
                                        
                                    

打开查询工具,查询之前创建的几何对象实体测试表

小白GIS

1、point几何实体查询

(1) postgis提供的点坐标查询方法如下

                                        
ST_X(geometry)    ——    返回X坐标
ST_Y(geometry)    ——    返回Y坐标
                                        
                                    

查询空间数据表点坐标如下,这里对导入的一张山东省银行数据查询

通过SELECT * from bank 查询表数据如下

小白GIS

查询农村信用社前孙分社的坐标值如下

小白GIS

(2) 返回一个点几何实体图形

                                        

SELECT name, geom
FROM bank
LIMIT 1;
                                        
                                    

小白GIS

2、LineString查询方法

(1) 几何实体查询

                                        
SELECT name, ST_AsText(geom)
FROM highspeedrail
                                        
                                    

小白GIS

用于处理线串的一些特定空间函数包括:

                                        
ST_Length(geometry)    ——    返回线串的长度
ST_StartPoint(geometry)    ——    将线串的第一个坐标作为点返回
ST_EndPoint(geometry)    ——    将线串的最后一个坐标作为点返回
ST_NPoints(geometry)    ——    返回线串的坐标数量
                                        
                                    

如线段长度查询如下

小白GIS

3、Polygon实体查询

(1) 几何实体查询

                                        
SELECT name,ST_AsText(geom)
FROM shandong
where name='济南市'
                                        
                                    

小白GIS

也可以使用like查询返回多个多边形

小白GIS

(2) 其他的空间查询方法

                                        
ST_Area(geometry)    ——     返回多边形的面积
ST_NRings(geometry)    ——    返回多边形中环的数量(通常为1个,其他是孔)
ST_ExteriorRing(geometry)    ——    以线串的形式返回多边形最外面的环
ST_InteriorRingN(geometry, n)    ——    以线串形式返回指定的内部环
ST_Perimeter(geometry)    ——    返回所有环的长度
                                        
                                    

比如面积查询

                                        
SELECT name,ST_Area(geom)
FROM shandong
where name like'济%'
                                        
                                    

QQ:3410192267 | 技术支持 微信:popstarqqsmall

Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号