PostGIS

本文介绍PostGIS中的几何类型及其操作,包括WKT、EWKT格式的定义与使用,空间索引的建立,以及多种几何对象处理函数的应用。

PostGIS中的几何类型

OGC的WKB和WKT格式

OGC定义了两种描述几何对象的格式,分别是WKB(Well-Known Binary)和WKT(Well-Known Text)。
在SQL语句中,用以下的方式可以使用WKT格式定义几何对象:

几何要素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格式插入一个点要素到一个表中,其中用到的GeomFromText等函数在后面会有详细介绍:

INSERT INTO table (SHAPE,NAME)
VALUES (GeomFromText('POINT(116.39 39.9)', 4326), '北京');

EWKT、EWKB和Canonical格式

EWKT和EWKB相比OGC WKT和WKB格式主要的扩展有3DZ、3DM、4D坐标和内嵌空间参考支持。
以下以EWKT语句定义了一些几何对象:

几何类型格式
3D点POINT(0 0 0)
内嵌空间参考的点SRID=32632;POINT(0 0)
带M值的点POINTM(0 0 0)
带M值的3D点POINT(0 0 0 0)
内嵌空间参考的带M值的多点SRID=4326;MULTIPOINTM(0 0 0,1 2 1)

以下语句可以使用EWKT格式插入一个点要素到一个表中:

INSERT INTO table (SHAPE, NAME)
VALUES(GeomFromEWKT('SRID=4326;POINTM(116.39 39.9 10)'), '北京')

Canonical格式是16进制编码的几何对象,直接用SQL语句查询出来的就是这种格式。

SQL-MM格式

SQL-MM格式定义了一些插值曲线,这些插值曲线和EWKT有点类似,也支持3DZ、3DM、4D坐标,但是不支持嵌入空间参考。
以下以SQL-MM语句定义了一些插值几何对象:

几何类型格式
插值圆弧CIRCULARSTRING(0 0, 1 1, 1 0)
插值复合曲线COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))
曲线多边形CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))
多曲线MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))
多曲面MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))

PostGIS中空间信息处理的实现

spatial_ref_sys表

在基于PostGIS模板创建的数据库的public模式下,有一个spatial_ref_sys表,它存放的是OGC规范的空间参考。

srid存放的就是空间参考的Well-Known ID,对这个空间参考的定义主要包括两个字段,srtext存放的是以字符串描述的空间参考,proj4text存放的则是以字符串描述的PROJ.4 投影定义(PostGIS使用PROJ.4实现投影)。

geometry_columns表

geometry_columns表存放了当前数据库中所有几何字段的信息,比如我当前的库里面有两个空间表,在geometry_columns表中就可以找到这两个空间表中几何字段的定义

其中f_table_schema字段表示的是空间表所在的模式,f_table_name字段表示的是空间表的表名,f_geometry_column字段表示的是该空间表中几何字段的名称,srid字段表示的是该空间表的空间参考。

在PostGIS中创建一个空间表

在PostGIS中创建一个包含几何字段的空间表分为2步:第一步创建一个一般表,第二步给这个表添加几何字段。

以下先在test模式下创建一个名为cities的一般表:

create table test.cities (id int4, name varchar(20))

再给cities添加一个名为shape的几何字段(二维点):

select AddGeometryColumn('test', 'cities', 'shape', 4326, 'POINT', 2)

PostGIS对几何信息的检查

PostGIS可以检查几何信息的正确性,这主要是通过IsValid函数实现的。
以下语句分辨检查了2个几何对象的正确性,显然,(0, 0)点和(1,1)点可以构成一条线,但是(0, 0)点和(0, 0)点则不能构成,这个语句执行以后的得出的结果是TRUE,FALSE。

select IsValid('LINESTRING(0 0, 1 1)'), IsValid('LINESTRING(0 0,0 0)')

默认PostGIS并不会使用IsValid函数检查用户插入的新数据,因为这会消耗较多的CPU资源(特别是复杂的几何对象)。当你需要使用这个功能的时候,你可以使用以下语句为表新建一个约束:

ALTER TABLE cities
ADD CONSTRAINT geometry_valid
CHECK (IsValid(shape))

这时当我们往这个表试图插入一个错误的空间对象的时候,会得到一个错误:

INSERT INTO test.cities ( shape, name )
VALUES ( GeomFromText('LINESTRING(0 0,0 0)', 4326), '北京');

ERROR: new row for relation “cities” violates check constraint “geometry_valid”
SQL 状态: 23514

PostGIS中的空间索引

数据库对多维数据的存取有两种索引方案,R-Tree和GiST(Generalized Search Tree),在PostgreSQL中的GiST比R-Tree的健壮性更好,因此PostGIS对空间数据的索引一般采用GiST实现。

以下的语句给sde模式中的cities表添加了一个空间索引shape_index_cities,在pgAdmin中也可以通过图形界面完成相同的功能。

CREATE INDEX shape_index_cities
ON sde.cities
USING gist
(shape);

另外要注意的是,空间索引只有在进行基于边界范围的查询时才起作用,比如“&&”操作。

PostGIS中的常用函数

首先需要说明一下,这里许多函数是以ST_[X]yyy形式命名的,事实上很多函数也可以通过xyyy的形式访问,在PostGIS的函数库中我们可以看到这两种函数定义完全一样。

OGC标准函数

管理函数:

函数说明
AddGeometryColumn(, , , , , )添加几何字段
DropGeometryColumn(, , )删除几何字段
Probe_Geometry_Columns()检查数据库几何字段并在geometry_columns中归档
ST_SetSRID(geometry, integer)给几何对象设置空间参考(在通过一个范围做空间查询时常用)

几何对象关系函数:

函数说明
ST_Distance(geometry, geometry)获取两个几何对象间的距离
ST_DWithin(geometry, geometry, float)如果两个几何对象间距离在给定值范围内,则返回TRUE
ST_Equals(geometry, geometry)判断两个几何对象是否相等(比如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的几何对象)
ST_Disjoint(geometry, geometry)判断两个几何对象是否分离
ST_Intersects(geometry, geometry)判断两个几何对象是否相交
ST_Touches(geometry, geometry)判断两个几何对象的边缘是否接触
ST_Crosses(geometry, geometry)判断两个几何对象是否互相穿过
ST_Within(geometry A, geometry B)判断A是否被B包含
ST_Overlaps(geometry, geometry)判断两个几何对象是否是重叠
ST_Contains(geometry A, geometry B)判断A是否包含B
ST_Covers(geometry A, geometry B)判断A是否覆盖 B
ST_CoveredBy(geometry A, geometry B)判断A是否被B所覆盖
ST_Relate(geometry, geometry, intersectionPatternMatrix)通过DE-9IM 矩阵判断两个几何对象的关系是否成立
ST_Relate(geometry, geometry)获得两个几何对象的关系(DE-9IM矩阵)

几何对象处理函数:

函数说明
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)获取两个几何对象相交的部分
ST_Shift_Longitude(geometry)将经度小于0的值加360使所有经度值在0-360间
ST_SymDifference(geometry A, geometry B)获取两个几何对象不相交的部分(A、B可互换)
ST_Difference(geometry A, geometry B)从A去除和B相交的部分后返回
ST_Union(geometry, geometry)返回两个几何对象的合并结果
ST_Union(geometry set)返回一系列几何对象的合并结果
ST_MemUnion(geometry set)用较少的内存和较长的时间完成合并操作,结果和ST_Union

几何对象存取函数:

函数说明
ST_AsText(geometry)获取几何对象的WKT描述
ST_AsBinary(geometry)获取几何对象的WKB描述
ST_SRID(geometry)获取几何对象的空间参考ID
ST_Dimension(geometry)获取几何对象的维数
ST_Envelope(geometry)获取几何对象的边界范围
ST_IsEmpty(geometry)判断几何对象是否为空
ST_IsSimple(geometry)判断几何对象是否不包含特殊点(比如自相交)
ST_IsClosed(geometry)判断几何对象是否闭合
ST_IsRing(geometry)判断曲线是否闭合并且不包含特殊点
ST_NumGeometries(geometry)获取多几何对象中的对象个数
ST_GeometryN(geometry,int)获取多几何对象中第N个对象
ST_NumPoints(geometry)获取几何对象中的点个数
ST_PointN(geometry,integer)获取几何对象的第N个点
ST_ExteriorRing(geometry)获取多边形的外边缘
ST_NumInteriorRings(geometry)获取多边形内边界个数
ST_NumInteriorRing(geometry)(同上)
ST_InteriorRingN(geometry,integer)获取多边形的第N个内边界
ST_EndPoint(geometry)获取线的终点
ST_StartPoint(geometry)获取线的起始点
ST_GeometryType(geometry)获取几何对象的类型
ST_GeometryType(geometry)类似上,但是不检查M值,即POINTM对象会被判断为point
ST_X(geometry)获取点的X坐标
ST_Y(geometry)获取点的Y坐标
ST_Z(geometry)获取点的Z坐标
ST_M(geometry)获取点的M值

几何对象构造函数:

参考语义:
Text:WKT
WKB:WKB
Geom:Geometry
M:Multi
Bd:BuildArea
Coll:Collection ST_GeomFromText(text,[])

PostGIS扩展函数

管理函数:

删除一个空间表(包括geometry_columns中的记录) DropGeometryTable([], )
更新空间表的空间参考 UpdateGeometrySRID([], , , )
更新空间表的统计信息 update_geometry_stats([, ])

参考语义:
Geos:GEOS库
Jts:JTS库
Proj:PROJ4库 postgis_version()

几何操作符:

函数说明
A范围=B范围A = B
A范围覆盖B范围或A范围在B范围左侧A &<> B
A范围在B范围左侧A <<>> B
A范围覆盖B范围或A范围在B范围下方A &<|B
A范围覆盖B范围或A范围在B范围上方A |&> B
A范围在B范围下方A <<| B
A范围在B范围上方A |>> B
A=BA ~= B
A范围被B范围包含A @ B
A范围包含B范围A ~ B
A范围覆盖B范围A && B

几何量测函数:

函数说明
ST_Area(geometry)量测面积
ST_distance_sphere(point, point)根据经纬度点计算在地球曲面上的距离,单位米,地球半径取值6370986米
ST_distance_spheroid(point, point, spheroid)类似上,使用指定的地球椭球参数
ST_length2d(geometry)量测2D对象长度
ST_length3d(geometry)量测3D对象长度
ST_length_spheroid(geometry,spheroid)根据经纬度对象计算在地球曲面上的长度
ST_distance(geometry, geometry)量测两个对象间距离
ST_max_distance(linestring,linestring)量测两条线之间的最大距离
ST_perimeter2d(geometry)量测2D对象的周长
ST_perimeter3d(geometry)量测3D对象的周长
ST_azimuth(geometry, geometry)量测两点构成的方位角,单位弧度

几何对象输出:

函数说明
ST_AsBinary(geometry,{‘NDR’|’XDR’})Binary
ST_AsEWKT(geometry)EWKT
ST_AsEWKB(geometry, {‘NDR’|’XDR’})EWKB
ST_AsHEXEWKB(geometry, {‘NDR’|’XDR’})Canonical
ST_AsSVG(geometry, [rel], [precision])SVG
ST_AsGML([version], geometry, [precision])GML
ST_AsKML([version], geometry, [precision])KML
ST_AsGeoJson([version], geometry, [precision], [options])GeoJson

几何对象创建:

ST_GeomFromEWKB(bytea);ST_MakePoint(, , [], []);ST_MakePointM(, , );ST_MakeBox2D(, );ST_MakeBox3D(, );ST_MakeLine(geometry set);ST_MakeLine(geometry, geometry)
ST_LineFromMultiPoint(multipoint);ST_MakePolygon(linestring, [linestring[]]);ST_BuildArea(geometry);ST_Polygonize(geometry set);ST_Collect(geometry set);ST_Collect(geometry, geometry)
ST_Dump(geometry);ST_DumpRings(geometry)

几何对象编辑:

线性参考:

根据location(0-1)获得该位置的点 ST_line_interpolate_point(linestring, location)

获取一段线 ST_line_substring(linestring, start, end)

根据点获取location(0-1) ST_line_locate_point(LineString, Point)

根据量测值获得几何对象 ST_locate_along_measure(geometry, float8)

根据量测值区间获得几何对象集合 ST_locate_between_measures(geometry, float8, float8)

杂项功能函数:

长事务支持:

1 Introduction 1 1.1 Project Steering Committee . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Contributors Past and Present . . . . . . . . . . . . . . . 1 1.3 More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Installation 3 2.1 Short Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 Getting the Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Installation . . . . . . . 4 2.4.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4.2 Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4.4 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 Create a spatially-enabled database . . . . . . . . . . . . . . . 8 2.6 Create a spatially-enabled database from a template . . . . . . 9 2.7 Upgrading . . . . . . . . 9 2.7.1 Soft upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.7.2 Hard upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.8 Common Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.9 JDBC . . . . . . . . . . 10 2.10 Loader/Dumper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3 Frequently Asked Questions 12 4 Using PostGIS: Data Management and Queries 16 4.1 GIS Objects . . . . . . . 16 4.1.1 OpenGIS WKB and WKT . . . . . . . . . . . . . . . 16 4.1.2 PostGIS EWKB, EWKT and Canonical Forms . . . . . . . . . . . . . . . . 17 4.1.3 SQL-MM Part 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 PostGIS Geography Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.1 Geography Basics . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.2 When to use Geography Data type over Geometry data type . . . . . . . . . . . . . 20 4.2.3 Geography Advanced FAQ . . . . . . . . . . . . . . . 21 4.3 Using OpenGIS Standards . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.3.1 The SPATIAL_REF_SYS Table and Spatial Reference Systems . . . . . . . . . . . 22 4.3.2 The GEOMETRY_COLUMNS Table . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 23 4.3.3 Creating a Spatial Table . . . . . . . . . . . . . . . . 23 4.3.4 Manually Registering Geometry Columns in geometry_columns . . . . . . . . . . . . . . . . . 24 4.3.5 Ensuring OpenGIS compliancy of geometries . . . . . . . . . . . . . . . . . . . . . . 25 4.3.6 Dimensionally Extended 9 Intersection Model (DE-9IM) . . . . . . . . . . . . . . . 29 4.3.6.1 Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.4 Loading GIS Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4.1 Using SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4.2 Using the Loader . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.5 Retrieving GIS Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.5.1 Using SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.5.2 Using the Dumper . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.6 Building Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.6.1 GiST Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.6.2 Using Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.7 Complex Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.7.1 Taking Advantage of Indexes . . . . . . . . . . . . . . . . . . . . . . . . 38 4.7.2 Examples of Spatial SQL . . . . . . . . . . . . . . . . 39 5 Using PostGIS: Building Applications 42 5.1 Using MapServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.1.1 Basic Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.1.2 Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . 43 5.1.3 Advanced Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.1.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.2 Java Clients (JDBC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3 C Clients (libpq) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.1 Text Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.2 Binary Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6 Performance tips 49 6.1 Small tables of large geometries . . . . . . . . . . . . . . . . 49 6.1.1 Problem description . . . . . . . . . . . . . . . 49 6.1.2 Workarounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.2 CLUSTERing on geometry indices . . . . . . . . . . . . . . . 50 6.3 Avoiding dimension conversion . . . . . . . . . . . . . . . . . 50 6.4 Tuning your configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.4.1 Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.4.2 Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7 PostGIS Reference 52 7.1 PostgreSQL PostGIS Types . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.1.1 box2d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.1.2 box3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.1.3 box3d_extent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.1.4 geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.1.5 geometry_dump . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.1.6 geography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.2 Management Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 7.2.1 AddGeometryColumn . . . . . . . . . . . . . . . . . 55 7.2.2 DropGeometryColumn . . . . . . . . . . . . . . . . . 56 7.2.3 DropGeometryTable . . . . . . . . . . . . . . . 57 7.2.4 PostGIS_Full_Version . . . . . . . . . . . . . . . . . 57 7.2.5 PostGIS_GEOS_Version . . . . . . . . . . . . . . . . 58 7.2.6 PostGIS_LibXML_Version . . . . . . . . . . . . . . . . . . . . . . . . 58 7.2.7 PostGIS_Lib_Build_Date . . . . . . . . . . . . . . . 59 7.2.8 PostGIS_Lib_Version . . . . . . . . . . . . . . . . . 59 7.2.9 PostGIS_PROJ_Version . . . . . . . . . . . . . . . . 60 7.2.10 PostGIS_Scripts_Build_Date . . . . . . . . . . . . . . . . 61 7.2.11 PostGIS_Scripts_Installed . . . . . . . . . . . . . . . 61 7.2.12 PostGIS_Scripts_Released . . . . . . . . . . . . . . . 62 7.2.13 PostGIS_Uses_Stats . . . . . . . . . . . . . . . 62 7.2.14 PostGIS_Version . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7.2.15 Populate_Geometry_Columns . . . . . . . . . . . . . . . . 64 7.2.16 Probe_Geometry_Columns . . . . . . . . . . . . . . . 64 7.2.17 UpdateGeometrySRID . . . . . . . . . . . . . . . . . 65 7.3 Geometry Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7.3.1 ST_BdPolyFromText . . . . . . . . . . . . . . . 66 7.3.2 ST_BdMPolyFromText . . . . . . . . . . . . . . . . . 66 7.3.3 ST_GeogFromText . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.3.4 ST_GeographyFromText . . . . . . . . . . . . . . . . 68 7.3.5 ST_GeogFromWKB . . . . . . . . . . . . . . . 68 7.3.6 ST_GeomCollFromText . . . . . . . . . . . . . . . . 69 7.3.7 ST_GeomFromEWKB . . . . . . . . . . . . . . . . . 69 7.3.8 ST_GeomFromEWKT . . . . . . . . . . . . . . . . . 70 7.3.9 ST_GeometryFromText . . . . . . . . . . . . . . . . 72 7.3.10 ST_GeomFromGML . . . . . . . . . . . . . . . 72 7.3.11 ST_GeomFromKML . . . . . . . . . . . . . . . 73 7.3.12 ST_GMLToSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.3.13 ST_GeomFromText . . . . . . . . . . . . . . . 75 7.3.14 ST_GeomFromWKB . . . . . . . . . . . . . . . 76 7.3.15 ST_LineFromMultiPoint . . . . . . . . . . . . . . . . 77 7.3.16 ST_LineFromText . . . . . . . . . . . . . . . . . . . . . . . . . . 78 7.3.17 ST_LineFromWKB . . . . . . . . . . . . . . . 79 7.3.18 ST_LinestringFromWKB . . . . . . . . . . . . . . . 79 7.3.19 ST_MakeBox2D . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.3.20 ST_MakeBox3D . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.3.21 ST_MakeLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7.3.22 ST_MakeEnvelope . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.3.23 ST_MakePolygon . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.3.24 ST_MakePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.3.25 ST_MakePointM . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.3.26 ST_MLineFromText . . . . . . . . . . . . . . . 87 7.3.27 ST_MPointFromText . . . . . . . . . . . . . . . 88 7.3.28 ST_MPolyFromText . . . . . . . . . . . . . . . 89 7.3.29 ST_Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.3.30 ST_PointFromText . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.3.31 ST_PointFromWKB . . . . . . . . . . . . . . . 92 7.3.32 ST_Polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.3.33 ST_PolygonFromText . . . . . . . . . . . . . . . . . 94 7.3.34 ST_WKBToSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.3.35 ST_WKTToSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.4 Geometry Accessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.4.1 GeometryType . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.4.2 ST_Boundary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.4.3 ST_CoordDim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.4.4 ST_Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.4.5 ST_EndPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.4.6 ST_Envelope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 7.4.7 ST_ExteriorRing . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 7.4.8 ST_GeometryN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.4.9 ST_GeometryType . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.4.10 ST_InteriorRingN . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7.4.11 ST_IsClosed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 7.4.12 ST_IsEmpty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.4.13 ST_IsRing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 7.4.14 ST_IsSimple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 7.4.15 ST_IsValid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 7.4.16 ST_IsValidReason . . . . . . . . . . . . . . . . . . . . . . . . . . 109 7.4.17 ST_M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 7.4.18 ST_NDims . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.4.19 ST_NPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 7.4.20 ST_NRings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 7.4.21 ST_NumGeometries . . . . . . . . . . . . . . . 113 7.4.22 ST_NumInteriorRings . . . . . . . . . . . . . . . . . 114 7.4.23 ST_NumInteriorRing . . . . . . . . . . . . . . . 114 7.4.24 ST_NumPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.4.25 ST_PointN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7.4.26 ST_SRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.4.27 ST_StartPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 7.4.28 ST_Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 7.4.29 ST_X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 7.4.30 ST_Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 7.4.31 ST_Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7.4.32 ST_Zmflag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 7.5 Geometry Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.5.1 ST_AddPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.5.2 ST_Affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.5.3 ST_Force_2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.5.4 ST_Force_3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.5.5 ST_Force_3DZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 7.5.6 ST_Force_3DM . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 7.5.7 ST_Force_4D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 7.5.8 ST_Force_Collection . . . . . . . . . . . . . . . 128 7.5.9 ST_ForceRHR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.5.10 ST_LineMerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.5.11 ST_CollectionExtract . . . . . . . . . . . . . . . 131 7.5.12 ST_Multi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.5.13 ST_RemovePoint . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.5.14 ST_Reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.5.15 ST_Rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.5.16 ST_RotateX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 7.5.17 ST_RotateY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.5.18 ST_RotateZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.5.19 ST_Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 7.5.20 ST_Segmentize . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 7.5.21 ST_SetPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 7.5.22 ST_SetSRID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.5.23 ST_SnapToGrid . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 7.5.24 ST_Transform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 7.5.25 ST_Translate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 7.5.26 ST_TransScale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 7.6 Geometry Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.6.1 ST_AsBinary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.6.2 ST_AsEWKB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 7.6.3 ST_AsEWKT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 7.6.4 ST_AsGeoJSON . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 7.6.5 ST_AsGML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 7.6.6 ST_AsHEXEWKB . . . . . . . . . . . . . . . . . . . . . . . . . . 152 7.6.7 ST_AsKML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 7.6.8 ST_AsSVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7.6.9 ST_GeoHash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 7.6.10 ST_AsText . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 7.7 Operators . . . . . . . . 156 7.7.1 && . . . . . . . 156 7.7.2 &< . . . . . . . 157 7.7.3 &<| . . . . . . . 158 7.7.4 &> . . . . . . . 159 7.7.5 « . . . . . . . . 160 7.7.6 «| . . . . . . . . 161 7.7.7 = . . . . . . . . . . . . . . . 161 7.7.8 » . . . . . . . . . . . . . . . 163 7.7.9 @ . . . . . . . . . . . . . . . 163 7.7.10 |&> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 7.7.11 |» . . . . . . . . . . . . . . . 165 7.7.12 ~ . . . . . . . . . . . . . . . 166 7.7.13 ~= . . . . . . . . . . . . . . . 167 7.8 Spatial Relationships and Measurements . . . . . 167 7.8.1 ST_Area . . . . . . . . . . . . . . . 167 7.8.2 ST_Azimuth. . . . . . . . . . . . 169 7.8.3 ST_Centroid. . . . . . . . . . . . 170 7.8.4 ST_ClosestPoint. . . . . . . . . . 171 7.8.5 ST_Contains. . . . . . . . . . . . 172 7.8.6 ST_ContainsProperly. . . . . . . . 176 7.8.7 ST_Covers. . . . . . . . . . . . . 177 7.8.8 ST_CoveredBy. . . . . . . . . . . 179 7.8.9 ST_Crosses. . . . . . . . . . . . . 180 7.8.10 ST_LineCrossingDirection . . . . . . . . . . . . . . . 183 7.8.11 ST_Disjoint. . . . . . . . . . . . . 185 7.8.12 ST_Distance. . . . . . . . . . . . 187 7.8.13 ST_HausdorffDistance. . . . . . . 188 7.8.14 ST_MaxDistance. . . . . . . . . . 189 7.8.15 ST_Distance_Sphere. . . . . . . . 190 7.8.16 ST_Distance_Spheroid. . . . . . . 191 7.8.17 ST_DFullyWithin. . . . . . . . . . 191 7.8.18 ST_DWithin. . . . . . . . . . . . 192 7.8.19 ST_Equals. . . . . . . . . . . . . 193 7.8.20 ST_HasArc. . . . . . . . . . . . . 194 7.8.21 ST_Intersects. . . . . . . . . . . . 195 7.8.22 ST_Length. . . . . . . . . . . . . 196 7.8.23 ST_Length2D. . . . . . . . . . . . 198 7.8.24 ST_Length3D. . . . . . . . . . . . 198 7.8.25 ST_Length_Spheroid. . . . . . . . 199 7.8.26 ST_Length2D_Spheroid . . . . . . . . . . . . . . . . 200 7.8.27 ST_Length3D_Spheroid . . . . . . . . . . . . . . . . 201 7.8.28 ST_LongestLine. . . . . . . . . . 202 7.8.29 ST_OrderingEquals. . . . . . . . . 204 7.8.30 ST_Overlaps. . . . . . . . . . . . 205 7.8.31 ST_Perimeter. . . . . . . . . . . . 207 7.8.32 ST_Perimeter2D. . . . . . . . . . 208 7.8.33 ST_Perimeter3D. . . . . . . . . . 208 7.8.34 ST_PointOnSurface. . . . . . . . 209 7.8.35 ST_Relate . . . . . . . . . . . . . . . 210 7.8.36 ST_ShortestLine. . . . . . . . . . 212 7.8.37 ST_Touches. . . . . . . . . . . . . 213 7.8.38 ST_Within. . . . . . . . . . . . . 215 7.9 Geometry Processing Functions . . . . . . . . . . . . . . . . 217 7.9.1 ST_Buffer. . . . . . . . . . . . . 217 7.9.2 ST_BuildArea. . . . . . . . . . . 221 7.9.3 ST_Collect. . . . . . . . . . . . . 222 7.9.4 ST_ConvexHull. . . . . . . . . . . 224 7.9.5 ST_CurveToLine. . . . . . . . . . 225 7.9.6 ST_Difference. . . . . . . . . . . 228 7.9.7 ST_Dump . . . . . . . . . . . . . . . 229 7.9.8 ST_DumpPoints. . . . . . . . . . 230 7.9.9 ST_DumpRings. . . . . . . . . . 232 7.9.10 ST_Intersection. . . . . . . . . . . 233 7.9.11 ST_LineToCurve. . . . . . . . . . 235 7.9.12 ST_MemUnion. . . . . . . . . . . 236 7.9.13 ST_MinimumBoundingCircle . . . . . . . . . . . . . 237 7.9.14 ST_Polygonize. . . . . . . . . . . 238 7.9.15 ST_Shift_Longitude. . . . . . . . 239 7.9.16 ST_Simplify. . . . . . . . . . . . 240 7.9.17 ST_SimplifyPreserveTopology . . . . . . . . . . . . . 241 7.9.18 ST_SymDifference. . . . . . . . . 242 7.9.19 ST_Union . . . . . . . . . . . . . . . 244 7.10 Linear Referencing. . . . . . . . . . . . . 246 7.10.1 ST_Line_Interpolate_Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 7.10.2 ST_Line_Locate_Point. . . . . . . 248 7.10.3 ST_Line_Substring. . . . . . . . . 249 7.10.4 ST_Locate_Along_Measure . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 250 7.10.5 ST_Locate_Between_Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 7.10.6 ST_LocateBetweenElevations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 7.10.7 ST_AddMeasure. . . . . . . . . . 253 7.11 Long Transactions Support. . . . . . . . . 254 7.11.1 AddAuth . . . . . . . . . . . . . . . 254 7.11.2 CheckAuth. . . . . . . . . . . . . 255 7.11.3 DisableLongTransactions . . . . . . . . . . . . . . . . . . . . . . . . . . 256 7.11.4 EnableLongTransactions . . . . . . . . . . . . . . . . . . . . . . . . . .6 7.11.5 LockRow . . . . . . . . . . . . . . . 257 7.11.6 UnlockRows. . . . . . . . . . . . 257 7.12 Miscellaneous Functions. . . . . . . . . . 258 7.12.1 ST_Accum. . . . . . . . . . . . . 258 7.12.2 Box2D . . . . . . . . . . . . . . . . 259 7.12.3 Box3D . . . . . . . . . . . . . . . . 260 7.12.4 ST_Estimated_Extent. . . . . . . 260 7.12.5 ST_Expand. . . . . . . . . . . . . 261 7.12.6 ST_Extent. . . . . . . . . . . . . 262 7.12.7 ST_Extent3D. . . . . . . . . . . . 264 7.12.8 Find_SRID. . . . . . . . . . . . . 265 7.12.9 ST_Mem_Size. . . . . . . . . . . 265 7.12.10 ST_Point_Inside_Circle . . . . . . . . . . . . . . . . . . . 267 7.12.11 ST_XMax . . . . . . . . . . . . . . . 267 7.12.12 ST_XMin . . . . . . . . . . . . . . . 268 7.12.13 ST_YMax . . . . . . . . . . . . . . . 269 7.12.14 ST_YMin . . . . . . . . . . . . . . . 270 7.12.15 ST_ZMax . . . . . . . . . . . . . . . 271 7.12.16 ST_ZMin . . . . . . . . . . . . . . . 272 7.13 Exceptional Functions. . . . . . . . . . . 273 7.13.1 PostGIS_AddBBox. . . . . . . . . 274 7.13.2 PostGIS_DropBBox. . . . . . . . 274 7.13.3 PostGIS_HasBBox. . . . . . . . . 275 8 PostGIS Special Functions Index 277 8.1 PostGIS Aggregate Functions. . . . . . . . 277 8.2 PostGIS SQL-MM Compliant Functions . . . . . . . . . . . . . . 277 8.3 PostGIS Geography Support Functions . . . . . . . . . . .. . . . . . . 281 8.4 PostGIS Geometry Dump Functions . . . . . . . . . . . . . . . . . . . . . 282 8.5 PostGIS Box Functions. . . . . . . . . . . 282 8.6 PostGIS Functions that support 3D . . . . . . . . . . . . . . . . . . . 283 8.7 PostGIS Curved Geometry Support Functions . . . . . .. . . . . . . . . . . . . . . . 286 8.8 PostGIS Function Support Matrix . . . . . . . . . . . . . . . . .. . . . . 288 8.9 New PostGIS Functions. . . . . . . . . . . 294 8.9.1 PostGIS Functions new, behavior changed, or enhanced in 1.5 . . . . . .9.2 PostGIS Functions new, behavior changed, or enhanced in 1.4 . . . . . . . . . . 296 8.9.3 PostGIS Functions new in 1.3 . . . . . . . . . . . . . . . . . . . . . . . . . 296 9 Reporting Problems 297 9.1 Reporting Software Bugs. . . . . . . . . . 297 9.2 Reporting Documentation Issues . . . . . . . . . . . . . . 297 A Appendix 298. . . . . . . . . . . . . . . 298 A.1.1 Bug Fixes . . . . . . . . . . . . . . . 298 A.2 Release 1.5.2 . . . . . . . . . . . . . . . . . 298 A.2.1 Bug Fixes . . . . . . . . . . . . . . . 299 A.3 Release 1.5.1 . . . . . . . . . . . . . . . . . 299 A.3.1 Bug Fixes . . . . . . . . . . . . . . . 299 A.4 Release 1.5.0 . . . . . . . . . . . . . . . . . 300 A.4.1 API Stability. . . . . . . . . . . . 300 A.4.2 Compatibility. . . . . . . . . . . . 300 A.4.3 New Features. . . . . . . . . . . . 300 A.4.4 Enhancements. . . . . . . . . . . 301 A.4.5 Bug fixes . . . . . . . . . . . . . . . 301 A.5 Release 1.4.0 . . . . . . . . . . . . . . . . . 301 A.5.1 API Stability. . . . . . . . . . . . 301 A.5.2 Compatibility. . . . . . . . . . . . 301 A.5.3 New Features. . . . . . . . . . . . 301 A.5.4 Enhancements. . . . . . . . . . . 302 A.5.5 Bug fixes . . . . . . . . . . . . . . . 302 A.6 Release 1.3.6 . . . . . . . . . . . . . . . . . 302 A.7 Release 1.3.5 . . . . . . . . . . . . . . . . . 302 A.8 Release 1.3.4 . . . . . . . . . . . . . . . . . 303 A.9 Release 1.3.3 . . . . . . . . . . . . . . . . . 303 A.10 Release 1.3.2 . . . . . . . . . . . . . . . . . 303 A.11 Release 1.3.1 . . . . . . . . . . . . . . . . . 303 A.12 Release 1.3.0 . . . . . . . . . . . . . . . . . 303 A.12.1 Added Functionality. . . . . . . . 303 A.12.2 Performance Enhancements . . . . . . . . 303 A.12.3 Other Changes. . . . . . . . . . . 304 A.13 Release 1.2.1 . . . . . . . . . . . . . . . . . 304 A.13.1 Changes . . . . . . . . . . . . . . . . 304 A.14 Release 1.2.0 . . . . . . . . . . . . . . . . . 304 A.14.1 Changes . . . . . . . . . . . . . . . . 304 A.15 Release 1.1.6 . . . . . . . . . . . . . . . . . 304 A.15.1 Upgrading. . . . . . . . . . . . . 304 A.15.2 Bug fixes . . . . . . . . . . . . . . . 305 A.15.3 Other changes. . . . . . . . . . . . 305 A.16 Release 1.1.5 . . . . . . . . . . . . . . . . . 305 A.16.1 Upgrading. . . . . . . . . . . . . 305 A.16.2 Bug fixes . . . . . . . . . . . . . . . 305 A.16.3 New Features. . . . . . . . . . . . 305 A.17 Release 1.1.4 . . . . . . . . . . . . . . . . . 305 A.17.1 Upgrading. . . . . . . . . . . . . 306 A.17.2 Bug fixes . . . . . . . . . . . . . . . 306 A.17.3 Java changes. . . . . . . . . . . . 306 A.18 Release 1.1.3 . . . . . . . . . . . . . . . . . 306 A.18.1 Upgrading. . . . . . . . . . . . . 306 A.18.2 Bug fixes / correctness. . . . . . . 306 A.18.3 New functionalities. . . . . . . . . 307 A.18.4 JDBC changes. . . . . . . . . . . 307 A.18.5 Other changes. . . . . . . . . . . . 307 A.19 Release 1.1.2 . . . . . . . . . . . . . . . . . 307 A.19.1 Upgrading. . . . . . . . . . . . . 307 A.19.2 Bug fixes . . . . . . . . . . . . . . . 307 A.19.3 New functionalities. . . . . . . . . 308 A.19.4 Other changes. . . . . . . . . . . . 308 A.20 Release 1.1.1 . . . . . . . . . . . . . . . . . 308 A.20.1 Upgrading. . . . . . . . . . . . . 308 A.20.2 Bug fixes . . . . . . . . . . . . . . . 308 A.20.3 New functionalities. . . . . . . . . 308 A.21 Release 1.1.0 . . . . . . . . . . . . . . . . . 309 A.21.1 Credits . . . . . . . . . . . . . . . . 309 A.21.2 Upgrading. . . . . . . . . . . . . 309 A.21.3 New functions. . . . . . . . . . . 309 A.21.4 Bug fixes . . . . . . . . . . . . . . . 310 A.21.5 Function semantic changes . . . . . . . 310 A.21.6 Performance improvements . . . . . . .. 310 A.21.7 JDBC2 works. . . . . . . . . . . . 310 A.21.8 Other new things. . . . . . . . . . 310 A.21.9 Other changes. . . . . . . . . . . . 310 A.22 Release 1.0.6 . . . . . . . . . . . . . . . . . 311 A.22.1 Upgrading. . . . . . . . . . . . . 311 A.22.2 Bug fixes . . . . . . . . . . . . . . . 311 A.22.3 Improvements. . . . . . . . . . . . 311 A.23 Release 1.0.5 . . . . . . . . . . . . . . . . . 311 A.23.1 Upgrading. . . . . . . . . . . . . 311 A.23.2 Library changes. . . . . . . . . . . 312 A.23.3 Loader changes. . . . . . . . . . . 312 A.23.4 Other changes. . . . . . . . . . . . 312 A.24 Release 1.0.4 . . . . . . . . . . . . . . . . . 312 A.24.1 Upgrading. . . . . . . . . . . . . 312 A.24.2 Bug fixes . . . . . . . . . . . . . . . 312 A.24.3 Improvements. . . . . . . . . . . . 313 A.25 Release 1.0.3 . . . . . . . . . . . . . . . . . 313 A.25.1 Upgrading. . . . . . . . . . . . . 313 A.25.2 Bug fixes . . . . . . . . . . . . . . . 313 A.25.3 Improvements. . . . . . . . . . . . 313 A.26 Release 1.0.2 . . . . . . . . . . . . . . . . . 313 A.26.1 Upgrading. . . . . . . . . . . . . 314 A.26.2 Bug fixes . . . . . . . . . . . . . . . 314 A.26.3 Improvements. . . . . . . . . . . . 314 A.27 Release 1.0.1 . . . . . . . . . . . . . . . . . 314 A.27.1 Upgrading. . . . . . . . . . . . . 314 A.27.2 Library changes. . . . . . . . . . . 314 A.27.3 Other changes/additions . . . . . 314 A.28 Release 1.0.0 . . . . . . . . . . . . . . . . . 315 A.28.1 Upgrading. . . . . . . . . . . . . 315 A.28.2 Library changes. . . . . . . . . . . 315 A.28.3 Other changes/additions . . . . . . . 315 A.29 Release 1.0.0RC6 . . . . . . . . . . . . . . . 315 A.29.1 Upgrading. . . . . . . . . . . . . 315 A.29.2 Library changes. . . . . . . . . . . 315 A.29.3 Scripts changes. . . . . . . . . . . 315 A.29.4 Other changes. . . . . . . . . . . . 316 A.30 Release 1.0.0RC5 . . . . . . . . . . . . . . . 316 A.30.1 Upgrading. . . . . . . . . . . . . 316 A.30.2 Library changes. . . . . . . . . . . 316 A.30.3 Other changes. . . . . . . . . . . . 316 A.31 Release 1.0.0RC4 . . . . . . . . . . . . . . . 316 A.31.1 Upgrading. . . . . . . . . . . . . 316 A.31.2 Library changes. . . . . . . . . . . 316 A.31.3 Scripts changes. . . . . . . . . . . 317 A.31.4 Other changes. . . . . . . . . . . . 317 A.32 Release 1.0.0RC3 . . . . . . . . . . . . . . . 317 A.32.1 Upgrading. . . . . . . . . . . . . 317 A.32.2 Library changes. . . . . . . . . . . 317 A.32.3 Scripts changes. . . . . . . . . . . 317 A.32.4 JDBC changes. . . . . . . . . . . 318 A.32.5 Other changes. . . . . . . . . . . . 318 A.33 Release 1.0.0RC2 . . . . . . . . . . . . . . . 318 A.33.1 Upgrading. . . . . . . . . . . . . 318 A.33.2 Library changes. . . . . . . . . . . 318 A.33.3 Scripts changes. . . . . . . . . . . 318 A.33.4 Other changes. . . . . . . . . . . . 319 A.34 Release 1.0.0RC1 . . . . . . . . . . . . . . . 319 A.34.1 Upgrading. . . . . . . . . . . . . 319 A.34.2 Changes . . . . . . . . . . . . . . . . 319
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值