postgis使用手册

合集下载

PostGIS操作geometry方法

PostGIS操作geometry方法

PostGIS操作geometry⽅法WKT定义⼏何对象格式:POINT(0 0) ——点LINESTRING(0 0,1 1,1 2) ——线POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ——⾯MULTIPOINT(0 0,1 2) ——多点MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ——多线MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ——多⾯GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4))) ——⼏何集合常⽤函数:wkt转geometry st_geomfromtext(wkt,wkid)geometry转wkt st_astext(geom)获取点对象x、y坐标值 st_x(geom)、st_y(geom)获取线/⾯对象四⾄ st_xmin(geom)、st_ymin(geom)、st_xmax(geom)、st_ymax(geom)计算两点之间距离 st_distance(geom,geom) / st_distance(wkt,wkt)计算线的长度 st_length(geom) / st_length(wkt)计算⾯积 st_area(geom) / st_area(wkt)缓冲区计算 st_buffer(geom,distance) / st_buffer(wkt,distance)管理函数:添加⼏何字段 AddGeometryColumn(, , , , , )删除⼏何字段 DropGeometryColumn(, , )检查数据库⼏何字段并在geometry_columns中归档 Probe_Geometry_Columns()给⼏何对象设置空间参考(在通过⼀个范围做空间查询时常⽤) ST_SetSRID(geometry, integer)⼏何对象关系函数:获取两个⼏何对象间的距离 ST_Distance(geometry, geometry)如果两个⼏何对象间距离在给定值范围内,则返回TRUE ST_DWithin(geometry, geometry, float)判断两个⼏何对象是否相等(⽐如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的⼏何对象) ST_Equals(geometry, geometry)判断两个⼏何对象是否分离 ST_Disjoint(geometry, geometry)判断两个⼏何对象是否相交 ST_Intersects(geometry, geometry)判断两个⼏何对象的边缘是否接触 ST_Touches(geometry, geometry)判断两个⼏何对象是否互相穿过 ST_Crosses(geometry, geometry)判断A是否被B包含 ST_Within(geometry A, geometry B)判断两个⼏何对象是否是重叠 ST_Overlaps(geometry, geometry)判断A是否包含B ST_Contains(geometry A, geometry B)判断A是否覆盖 B ST_Covers(geometry A, geometry B)判断A是否被B所覆盖 ST_CoveredBy(geometry A, geometry B)通过DE-9IM 矩阵判断两个⼏何对象的关系是否成⽴ ST_Relate(geometry, geometry, intersectionPatternMatrix)获得两个⼏何对象的关系(DE-9IM矩阵) ST_Relate(geometry, geometry)⼏何对象处理函数:获取⼏何对象的中⼼ ST_Centroid(geometry)⾯积量测 ST_Area(geometry)长度量测 ST_Length(geometry)返回曲⾯上的⼀个点 ST_PointOnSurface(geometry)获取边界 ST_Boundary(geometry)获取缓冲后的⼏何对象 ST_Buffer(geometry, double, [integer])获取多⼏何对象的外接对象 ST_ConvexHull(geometry)获取两个⼏何对象相交的部分 ST_Intersection(geometry, geometry)将经度⼩于0的值加360使所有经度值在0-360间 ST_Shift_Longitude(geometry)获取两个⼏何对象不相交的部分(A、B可互换) ST_SymDifference(geometry A, geometry B)从A去除和B相交的部分后返回 ST_Difference(geometry A, geometry B)返回两个⼏何对象的合并结果 ST_Union(geometry, geometry)返回⼀系列⼏何对象的合并结果 ST_Union(geometry set)⽤较少的内存和较长的时间完成合并操作,结果和ST_Union相同 ST_MemUnion(geometry set)⼏何对象存取函数:获取⼏何对象的WKT描述 ST_AsText(geometry)获取⼏何对象的WKB描述 ST_AsBinary(geometry)获取⼏何对象的空间参考ID ST_SRID(geometry)获取⼏何对象的维数 ST_Dimension(geometry)获取⼏何对象的边界范围 ST_Envelope(geometry)判断⼏何对象是否为空 ST_IsEmpty(geometry)判断⼏何对象是否不包含特殊点(⽐如⾃相交) ST_IsSimple(geometry)判断⼏何对象是否闭合 ST_IsClosed(geometry)判断曲线是否闭合并且不包含特殊点 ST_IsRing(geometry)获取多⼏何对象中的对象个数 ST_NumGeometries(geometry)获取多⼏何对象中第N个对象 ST_GeometryN(geometry,int)获取⼏何对象中的点个数 ST_NumPoints(geometry)获取⼏何对象的第N个点 ST_PointN(geometry,integer)获取多边形的外边缘 ST_ExteriorRing(geometry)获取多边形内边界个数 ST_NumInteriorRings(geometry)同上 ST_NumInteriorRing(geometry)获取多边形的第N个内边界 ST_InteriorRingN(geometry,integer)获取线的终点 ST_EndPoint(geometry)获取线的起始点 ST_StartPoint(geometry)获取⼏何对象的类型 GeometryType(geometry)类似上,但是不检查M值,即POINTM对象会被判断为point ST_GeometryType(geometry)获取点的X坐标 ST_X(geometry)获取点的Y坐标 ST_Y(geometry)获取点的Z坐标 ST_Z(geometry)获取点的M值 ST_M(geometry)⼏何对象构造函数:参考语义:Text:WKTWKB:WKBGeom:GeometryM:MultiBd:BuildAreaColl:Collection ST_GeomFromText(text,[])ST_PointFromText(text,[])ST_LineFromText(text,[])ST_LinestringFromText(text,[])ST_PolyFromText(text,[])ST_PolygonFromText(text,[])ST_MPointFromText(text,[])ST_MLineFromText(text,[])ST_MPolyFromText(text,[])ST_GeomCollFromText(text,[])ST_GeomFromWKB(bytea,[])ST_GeometryFromWKB(bytea,[])ST_PointFromWKB(bytea,[])ST_LineFromWKB(bytea,[])ST_LinestringFromWKB(bytea,[])ST_PolyFromWKB(bytea,[])ST_PolygonFromWKB(bytea,[])ST_MPointFromWKB(bytea,[])ST_MLineFromWKB(bytea,[])ST_MPolyFromWKB(bytea,[])ST_GeomCollFromWKB(bytea,[])ST_BdPolyFromText(text WKT, integer SRID)ST_BdMPolyFromText(text WKT, integer SRID)。

postgis函数st_polygon用法 -回复

postgis函数st_polygon用法 -回复

postgis函数st_polygon用法-回复标题:PostGIS函数st_polygon用法探究:从基础操作到高级应用引言:PostGIS是一个开源的地理空间数据库扩展,为PostgreSQL提供了一系列强大的地理空间处理功能,是GIS(地理信息系统)开发者的首选工具之一。

其中,st_polygon函数是PostGIS中最常用的函数之一,用于创建一个多边形对象。

本文将一步一步探究st_polygon函数的用法,从基础操作到高级应用,帮助读者充分了解和应用这个强大的函数。

第一步:基础操作首先,我们需要了解st_polygon函数的基本语法和参数。

st_polygon函数的语法如下:st_polygon(linestring[] linestrings);该函数接受一个linestring数组作为参数,每个linestring代表一个闭环。

闭环是一系列点的组合,第一个点和最后一个点互相连接。

可以通过调用st_makeline函数创建一个linestring对象。

使用st_polygon函数可以将多个闭环组合成一个多边形对象。

注:闭环之间不能相交,否则会出现错误。

接下来,我们可以通过以下步骤演示st_polygon函数的基本操作:1. 创建一个空间数据库,并加载PostGIS扩展。

CREATE DATABASE spatial_db;\c spatial_db;CREATE EXTENSION postgis;2. 创建一个空间表,并添加一个geometry类型的列。

CREATE TABLE polygons (id SERIAL PRIMARY KEY, geom geometry(Polygon, 4326));3. 插入一个多边形对象。

INSERT INTO polygons (geom) VALUES(ST_SetSRID(ST_GeomFromText('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'), 4326));4. 查询多边形对象。

postgis函数st_polygon用法

postgis函数st_polygon用法

postgis函数st_polygon用法1.概述在P os tG IS中,st_p o ly go n是一个用来创建多边形的函数。

本文将介绍st_p ol yg on函数的语法、参数以及使用示例,帮助读者学习并掌握s t_po ly go n函数的用法。

2. st_polygo n函数语法s t_p ol yg on函数的语法如下:S T_P ol yg on(l in est r in gg eo me tr y);其中,l in es tr in g参数是用来构建多边形的线段集合。

3. st_polygo n函数参数s t_p ol yg on函数只有一个参数,即l ine s tr in g。

li ne st ri n g参数是一个代表线段集合的几何对象。

l i ne st ri ng的几何类型可以是L in eS tr i ng或M ul ti Li neS t ri ng,用来定义多边形的边界。

需要注意的是,边界最后一个点和第一个点必须相同,以闭合多边形。

4. st_polygo n函数示例下面我们通过几个示例来演示st_p ol ygo n函数的用法。

示例1:创建简单多边形我们首先通过st_p ol y go n函数创建一个简单的多边形,如下所示:S E LE CT ST_P ol yg on('LI NE ST RI NG(00,01,11,10,00)');以上示例中,我们通过线段集合'LI NE STR I NG(00,01,11,10,00)'创建了一个简单的正方形多边形。

示例2:创建带洞的多边形s t_p ol yg on函数还可以创建带洞的多边形。

例如,我们可以通过以下语句创建一个带有内洞的多边形:S E LE CT ST_P ol yg on('LI NE ST RI NG(00,010,1010,100,00)','L IN ES T RI NG(22,28,88,82,22)');以上示例中,我们通过两个线段集合分别定义了外部边界和内部边界,创建了一个带有内洞的多边形。

postgis 几何精度截取函数

postgis 几何精度截取函数

postgis 几何精度截取函数在PostGIS中,可以使用几何精度截取函数来限制几何对象的精度。

这些函数可以用于几何对象的表示、存储和计算过程中,以提高空间数据的处理效率和准确性。

下面将介绍一些常用的几何精度截取函数及其相关参考内容。

1. ST_SnapToGrid函数ST_SnapToGrid函数可以将几何对象的坐标点按照给定的网格大小进行截取。

它的语法如下:ST_SnapToGrid(geometry geomA, float gridSize);其中,geomA表示要进行精度截取的几何对象,gridSize表示网格的大小。

该函数将返回一个新的几何对象,其坐标点被截取到最近的网格点上。

对于ST_SnapToGrid函数的详细使用方法,可以参考PostGIS官方文档中的ST_SnapToGrid函数说明。

可以通过访问PostGIS官方网站或在PostGIS的安装目录中找到文档文件,并搜索"ST_SnapToGrid"关键字进行查阅。

2. ST_PrecisionReduce函数ST_PrecisionReduce函数可以通过控制坐标的小数位数来截取几何对象的精度。

它的语法如下:ST_PrecisionReduce(geometry a, integer maxFractionDigits);其中,a表示要进行精度截取的几何对象,maxFractionDigits 表示保留的小数位数。

该函数将返回一个新的几何对象,其坐标点的小数位数被截取到指定的最大位数上。

关于ST_PrecisionReduce函数的更多详细信息,可以在PostGIS官方文档中找到。

参考文档中会提供该函数的使用示例、参数说明以及可能的注意事项。

3. ST_Simplify函数ST_Simplify函数可以通过消除几何对象中的冗余点来减小几何对象的复杂度,从而提高空间数据的处理效率。

它的语法如下:ST_Simplify(geometry a, float tolerance);其中,a表示要进行简化的几何对象,tolerance表示简化的容忍度。

geoserver、postgis安装与配置详解、图解

geoserver、postgis安装与配置详解、图解

Opengis学习Geoserver 配置过程(基于windows)1、JDK安装安装JDK,1.5以上版本环境变量配置:(系统变量)如:JAVA_HOME: D:\Program Files\Java\jdk1.7.0_04PATH:%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin;CLASSPATH: .;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib测试:cmd>java –version>java>javac2、安装Myeclipse(此步骤可省略)目的是在线安装subversion和Maven3、SubversionGeoserver源代码由subversion库完成存储和版本管理。

(1)安装subversion(可以离线安装subversion)(2)使用以下方式取出开发版/trunk版本svn co /geoserver/trunk geoserver(3)使用以下方式取出稳定版/stable版本:svn co /geoserver/branches/1.7.x geoserver(4)使用一下方式只取出代码不包括数据svn co /geoserver/trunk/src(注:标红的部分是本人测试过的)4、Maven目的:编译源代码、运行单元测试、安装成果到本地Maven库(1)Cmd定位到geoserver的src目录下(2)Mvn环境变量设置maven_home=d:\apache-maven-2.0.9PATH=%maven_homeE%\bin(3)跳过测试构建:>mvn –DskipTests clean install一般构建:>mvn clean install(3)生成eclipse工程>mvn eclipse:eclipse或>mvn –DdownloadSources eclipse:eclipse(下载所有依赖库的源码)(注:标红的部分是本人测试过的)5、导入模块进Eclipse(1)启动运行Eclipse集成开发环境(2)打开Eclipse首选项Preferences(3)依次点击进入:Java,BuildPath,Classpath Variables,点击New(4)创建类路径变量名称”M2_REPO”,并且设置它的值为本地Maven库的位置,点击OK。

3.2.5 PostGIS[共3页]

3.2.5  PostGIS[共3页]

3.2 计算几何 73
• 交叉分析;
• 对称差分析;
• 凸包分析;
• 封装;
• 缓冲区分析;
• 简化;
• 多边形组合;
• 多边形验证;
• 面积计算;
• 长度计算;
• 空间索引;
• OGC WKT文本和WKB二进制输入/输出;
• C和C++ API;
• 线程安全。

GEOS库可以和GDAL库一起编译提供OGR库的所有功能。

希望了解GEOS更多信息,可以前往https:///geos/。

3.2.5 PostGIS
在当前的开源地理空间数据库领域,PostGIS是最流行的空间数据库。

PostGIS其实是大名鼎鼎的关系型数据库PostgreSQL的一个模块。

PostGIS的大部分强力特性是由前面提到的GEOS库提供的。

和JTS库类似,它也实现了SQL的OGC简单特征标准。

在地理空间环境下的综合计算几何能力奠定了PostGIS的重要地位。

PostGIS允许你在一个数据集中执行属性查询和空间查询。

如第2章所述,空间数据集一般是由多种数据类型构成,其中包括几何图形、属性(一行数据的多列),大部分情况下还有空间索引。

在PostGIS中,你可以像平常使用其他关系型数据库一样,使用SQL查询属性数据。

而且你还可以使用SQL查询几何图形。

空间操作可以使用SQL函数实现,你可以将它们当作查询的一部分。

下面是PostGIS的SQL语句示例,其目的是为佛罗里达州创建一个14.5km的缓冲区。

PostGIS数据库导入SHP数据

PostGIS数据库导入SHP数据

PostGIS数据库导⼊SHP数据
1 - 通过QGIS数据库管理⼯具将shp导⼊到postgis数据库
选择数据源中postgis对应的数据库schema(架构),然后选择导⼊图层或⽂件,弹出导⼊⽮量图层⾯板。

关于选项的说明:
1)源空间参考与⽬标空间参考⽆特殊需要,应当与数据源保持⼀致
2)编码默认即可,不进⾏选择,如选择编码UTF-8,会导致中⽂乱码。

3)需要注意源shp数据的⼏何类型,如果源数据是单部件⼏何图形,需要在选项⾥选中创建单部件⼏何图形(默认为多部件⼏何图形)。

4)建议选中将字段名转换为⼩写。

5)建议将表名改为⼩写。

注:该⼯具不⽀持批量导⼊shp⽂件,使⽤起来不够⽅便。

2 - 通过postgis提供的shpefile import/export管理⼯具导⼊
该⼯具在postgis插件安装⽬录下
1)连接数据库
2)选择shp⽂件导⼊,该⼯具⽀持批量导⼊shp⽂件。

选择完⼀个和多个shp⽂件后需要在导⼊列表中⼿动更改你要导⼊的schema(⽬标架构名称)以及SRID(空间坐标系)。

postgis 几何精度截取函数

postgis 几何精度截取函数

postgis 几何精度截取函数PostGIS是一个基于开源软件的空间数据库扩展,它为PostgreSQL 数据库添加了对空间对象的存储、查询和处理能力。

PostGIS提供了许多方便的函数来处理几何对象,其中包括一个用于截取几何精度的函数。

本文将详细介绍这个函数,并提供一步一步的解释和示例。

PostGIS中的几何精度截取函数是ST_SnapToGrid函数。

该函数将几何对象按照指定的精度进行截取,返回一个新的几何对象。

ST_SnapToGrid函数的语法如下:ST_SnapToGrid(geometry geomA, float gridSize);其中,geomA是要截取精度的几何对象,gridSize是指定的精度。

下面我们来逐步解释和演示如何使用这个函数。

Step 1: 安装和配置PostGIS在使用ST_SnapToGrid函数之前,首先需要在数据库中安装和配置PostGIS扩展。

你可以按照PostGIS的官方文档进行安装和配置。

Step 2: 创建一个测试表首先,我们需要创建一个测试表来存储几何对象。

假设我们要创建一个名为"test_table"的表,该表包含一个名为"geom"的几何字段。

sqlCREATE TABLE test_table(id SERIAL PRIMARY KEY,geom geometry(Point, 4326));Step 3: 插入测试数据接下来,我们将向表中插入一些测试数据。

我们将创建一个点对象,并将其插入到"geom"字段中。

sqlINSERT INTO test_table (geom)VALUES ('POINT(1 2)');Step 4: 使用ST_SnapToGrid函数进行几何精度截取现在,我们可以使用ST_SnapToGrid函数来截取几何精度。

假设我们要将点对象的精度截取到小数点后两位。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

postgis使用手册
一、PostGIS 简介
1.背景介绍
PostGIS 是一款开源的地理信息系统(GIS)扩展,用于PostgreSQL 数据库。

它为数据库增添了空间处理和分析功能,使得PostgreSQL 成为一个强大的空间数据管理系统。

PostGIS 遵循Open Geospatial Consortium (OGC)的简单要素规范,支持多种空间数据标准。

2.功能概述
PostGIS 提供了以下功能:
- 存储和处理几何数据类型,如点、线、面等。

- 支持空间索引,提高查询性能。

- 丰富的空间函数,用于几何操作和空间分析。

- 地理处理(Geoprocessing)功能,支持空间数据的输入、输出和处理。

- 地理分析(Geographic Analysis)功能,包括缓冲区、叠加分析等。

二、安装与配置
1.安装步骤
- 下载PostGIS 安装包。

- 安装PostgreSQL 数据库。

- 按照官方文档的指引,安装PostGIS 模块。

2.配置方法
- 在PostgreSQL 配置文件中添加或修改以下内容:
```
gepsy_path = "/usr/local/lib/postgresql/12/lib/gepsy"
spatial_config_path =
"/usr/local/lib/postgresql/12/share/postgresql/extensions/spatial_config .xml"
```
- 重启PostgreSQL 服务。

三、基本操作
1.数据库连接
使用PostgreSQL 客户端连接到安装了PostGIS 的数据库。

2.几何类型
PostGIS 支持以下几何类型:
- POINT(点)
- LINESTRING(线)
- POLYGON(面)
- MULTIPOINT(多点)
- MULTILINESTRING(多线)
- MULTIPOLYGON(多面)
- GEOMETRYCOLLECTION(几何集合)
3.空间函数
PostGIS 提供了一系列空间函数,如:
- ST_Intersects(判断两个几何对象是否相交)
- ST_Within(判断一个几何对象是否在另一个几何对象内部)
- ST_Buffer(创建缓冲区)
- ST_Centroid(计算几何对象的中心)
4.空间索引
PostGIS 支持创建空间索引以提高查询性能。

以下是一个创建空间索引的示例:
```sql
CREATE INDEX my_table_idx ON my_table (my_geom_column);
```
四、高级功能
1.地理处理
PostGIS 提供了地理处理(GPX)功能,可以对空间数据进行输入、输出和处理。

例如:
```sql
SELECT ST_AsText(ST_Simplify(my_geom, 0.01)) FROM my_table;
```
2.地理分析
PostGIS 支持地理分析功能,如缓冲区分析、叠加分析等。

以下是一个创建缓冲区的示例:
```sql
SELECT ST_AsText(ST_Buffer(my_geom, 10)) FROM my_table;
```
3.数据导出与可视化
PostGIS 可以使用GDAL 等库将空间数据导出为多种格式,如Shapefile、GeoJSON 等。

相关文档
最新文档