已被阅读 2817 次 | 文章分类: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;
该表中我们插入5个几何图形数据(geometry)
一个点(POINT)
一条线(LINESTRING)
一个多边形(POLYGON)
一个内含空洞的多边形(POLYGON with a hole)
一个图形集合(COLLECTION)
二:查看元数据表
1、通过元数据表我们可以了解,该数据库中所有数据表的类型,以及表列参数解释
主要了解两个元数据表spatial_ref_sys以及geometry_columns,geometry_columns是我们的视图,可以通过查询语句查看表内容,也可以通过view查看
SELECT * FROM geometry_columns;
每一列所表示情况如下:
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) —— 返回几何图形的空间参考标识码
打开查询工具,查询之前创建的几何对象实体测试表
1、point几何实体查询
(1) postgis提供的点坐标查询方法如下
ST_X(geometry) —— 返回X坐标
ST_Y(geometry) —— 返回Y坐标
查询空间数据表点坐标如下,这里对导入的一张山东省银行数据查询
通过SELECT * from bank 查询表数据如下
查询农村信用社前孙分社的坐标值如下
(2) 返回一个点几何实体图形
SELECT name, geom
FROM bank
LIMIT 1;
2、LineString查询方法
(1) 几何实体查询
SELECT name, ST_AsText(geom)
FROM highspeedrail
用于处理线串的一些特定空间函数包括:
ST_Length(geometry) —— 返回线串的长度
ST_StartPoint(geometry) —— 将线串的第一个坐标作为点返回
ST_EndPoint(geometry) —— 将线串的最后一个坐标作为点返回
ST_NPoints(geometry) —— 返回线串的坐标数量
如线段长度查询如下
3、Polygon实体查询
(1) 几何实体查询
SELECT name,ST_AsText(geom)
FROM shandong
where name='济南市'
也可以使用like查询返回多个多边形
(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号