OGC:SFS-几何对象模型及WKT表示
开放地理空间联盟(OGC)是一个由250多家公司、机构和大学组成的国际联盟,它们参与开发可用于管理空间数据的各种应用程序的公共概念解决方案。在其发布的OpenGIS® Implementation Standard for Geographic information -Simple feature access-Part 1: Common architecture 中定义了几何对象模型。如图1所示。
1.Geometry
Geometry是基类,一个不可实例化的抽象类。
2.GeometryCollection
几何集合(GeometryCollection)是一个几何对象,它是一些几何对象的集合。
3.Point
点(Point)是0维几何对象,表示坐标空间中的某个位置。坐标的解释取决于与该点相关联的坐标参考系统。X、Y一般表示经纬度或投影坐标值,Z一般表示高程值,M一般是表示一个附属的测量值,比如温度、浓度等。
4.MultiPoint
多点(MultiPoint)是一个元素为Point的0维GeometryCollection。如果MultiPoint中没有两个点相等,则“多点”是简单的。
5.Curve
曲线(Curve)通常是存储点序列的一维几何对象,Curve的子类型指定点之间插值的形式。模型中仅定义了一个Curve的子类LineString,使用点之间的线性插值。如果Curve不通过相同的点两次,则Curve是简单的,两个端点除外。如果曲线的起始点等于它的端点,则曲线是封闭的。简单而封闭的曲线是一个环(Ring)。
6.LineString,Line,LinearString
线(LineString)是在点之间进行线性插值的曲线。每一对连续的点定义了一个线段;Line是一条直线,正好有两个点;线环(LinearString)是既封闭又简单的LineString。
7.MultiCurve
多曲线(MultiCurve)是元素为Curve的一维GeometryCollection。多曲线是不可实例化的类;一个多曲线是简单的要求它的所有元素都是简单的,并且任意两个元素之间的唯一交点在两个元素的边界上。如果所有的元素都是封闭的,则该多曲线是封闭的。
8.MultiLineString
多线(MultiLineString)是元素为LineString的1维GeometryCollection。
9.Surface
曲面(Surface)是一个二维的几何对象。一个简单的曲面可以由一个“外部边界”和0或多个“内部”边界相关联的片组成。模型中定义的曲面实例化子类是多边形和多面体。
10.Polygon,Triangle
多边形(Polygon)是由1个外环和0或多个内环定义的平面。每个内环在多边形中构成了一个洞。外环沿逆时针方向, 内环沿顺时针方向。
三角形(Triangle)是具有3个不共线顶点且无内环的多边形。
11.PolyhedralSurface
多面体(PolyhedralSurface)是多边形的集合,它们共享共同的边界。
三角不规则网络(TIN)是一个由三角片组成的多面体。
12.MultiSurface
多曲面(MultiSurface)是一个元素为Surface的2维GeometryCollection。
13.MultiPolygon
多面(MultiPolygon)是元素为Polygon的2维GeometryCollection。
几何对象的WKT 表示
每个几何类型都有一个WKT(Well-known text)表示,既可以用来构造该类型的新实例,也可以将现有实例转换为文本形式。
几何类型 | WKT 例子 | 说明 |
Point |
Point (10 10) |
点 |
LineString |
LineString ( 10 10, 20 20, 30 40) |
有 3 个节点的线 |
Polygon |
Polygon ( (10 10, 10 20, 20 20, 20 15, 10 10) ) |
只有 1 个外环的多边形 |
Polygon |
Polygon ( (10 10, 10 20, 20 20, 20 15, 10 10), (12 12,12 14,14 14,12 12) ) |
有 1 个外环和1个内环的多边形 |
Multipoint |
MultiPoint ((10 10), (20 20)) |
有 2 个点的多点 |
MultiLineString |
MultiLineString ( (10 10, 20 20), (15 15, 30 15) ) |
有 2 条线的多线 |
MultiPolygon |
MultiPolygon ( ((10 10, 10 20, 20 20, 20 15, 10 10)), ((60 60, 70 70, 80 60, 60 60 )) ) |
有 2 个面的多面 |
GeomCollection |
GeometryCollection ( POINT (10 10), POINT (30 30), LINESTRING (15 15, 20 20) ) |
有 2 个点和 1 条线的几何集合 |
PolyhedralSurface |
PolyhedralSurface Z ( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)), ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)), ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1. 0 0 1)) ) |
一个立方体 |
Tin |
Tin Z ( ((0 0 0, 0 0 1, 0 1 0, 0 0 0)), ((0 0 0, 0 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 0 0 1, 0 0 0)), ((1 0 0, 0 1 0, 0 0 1, 1 0 0)), ) |
有 4 个三角形构成的TIN网络 |
Point |
Point Z (10 10 5) |
三维点 |
Point |
Point ZM (10 10 5 40) |
带 M 值的三维点 |
Point |
Point M (10 10 40) |
带 M 值的二维点 |