OGC标准介绍 3
目录
· WKT 描述的几何对象
WKT(Well-known Text)可以通过文本来描述几何对象。下面的例子可以比较快速、直观地说明什么是WKT:
几何类型
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个外环的多边形
MultiPoint
MultiPoint
(
(10 10),
(20 20)
)
多点
MultiLineString
MultiLineString
(
(10 10, 20 20),
(15 15, 30 15)
)
多线
MultiPolygon
MultiPolygon
(
((10 10, 10 20, 20 20, 20 15, 10 10)),
((60 60, 70 70, 80 60, 60 60 ))
)
多面
GeometryCollection
GeometryCollection
(
POINT (10 10),
POINT (30 30),
LINESTRING (15 15, 20 20)
)
几何集合
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值的二维点
表 2 WKT描述几何对象示例
· WKB 描述的几何对象
WKB(Well-known Binary)通过序列化的字节对象来描述几何对象。在WKB中主要涉及两种数值类型:一种是uint32,占4个字节,用以存储节点数、几何对象类型等信息;另一种是double,占8个字节,用以存储节点坐标值。其中的几何对象类型对应的整数可以参考下表:
图 3 WKB中几何类型对应的整数值
除此之外,WKB在第一位还存储了一个额外的字节用来标识字节序[1] (0=Big-Indian,1=Little-Indian)。因此,对于一个点(不带M值的二维点)来说,它的WKB描述应该类似下面的结构,总共占据21个字节:
图 4 WKB描述点的字节结构
对于有2个节点的线来说,WKB描述应该包含41个字节:
图 5 WKB描述线的字节结构
对于仅有1个外环,由3个节点构成的多边形来说,WKB描述则应该包含77个字节:
图 6 WKB描述多边形的字节结构
· WKT 描述的空间参考
WKT除了可以描述几何对象,也可以描述空间参考。通过2个例子可以很直观地看到如何通过文本来描述空间参考。
对于一个地理坐标系,比如最常见的WGS84坐标系统,WKT描述是这样的:
GEOGCS
[
“GCS_WGS_1984”,
DATUM[“D_WGS_1984”,SPHEROID[“WGS_1984”,6378137.0,298.257223563]],
PRIMEM[“Greenwich”,0.0],
UNIT[“Degree”,0.0174532925199433],
AUTHORITY[“EPSG”,4326]
]
“GEOGCS”表明其后紧随的“[ ]”中描述的是一个地理坐标系统。该坐标系统名称为“GCS_WGS_1984”;采用的大地基准面为“D_WGS_1984”,该基准面近似椭球体的长轴为6378137.0米、扁率为298.257223563;以格林威治0度经线为起始经线;地图单位为度,该单位的转换因子[2] 为0. 0174532925199433(π/180);最后,该坐标系统在EPSG[3] 中的编码为“4326”。
对于一个投影坐标系,比如WGS84 Web Mercator(Auxiliary Sphere)坐标系统,WKT描述是这样的:
PROJCS
[
“WGS_1984_Web_Mercator_Auxiliary_Sphere”,
GEOGCS
[
“GCS_WGS_1984”,
DATUM[“D_WGS_1984”,SPHEROID[“WGS_1984”,6378137.0,298.257223563]],
PRIMEM[“Greenwich”,0.0],
UNIT[“Degree”,0.0174532925199433]
],
PROJECTION[“Mercator_Auxiliary_Sphere”],
PARAMETER[“False_Easting”,0.0],
PARAMETER[“False_Northing”,0.0],
PARAMETER[“Central_Meridian”,0.0],
PARAMETER[“Standard_Parallel_1”,0.0],
PARAMETER[“Auxiliary_Sphere_Type”,0.0],
UNIT[“Meter”,1.0],
AUTHORITY[“EPSG”,3857]
]
类似的,“PROJCS”代表这是一个投影坐标系。投影坐标系中必然会包括一个地理坐标系,这里的地理坐标系就是“GCS_WGS_1984”,这个地理坐标系的定义和上面的类似。下面紧跟着的是投影的相关参数,“Mercator_Auxiliary_Sphere”是采用投影的名称,这个投影坐标系以0度经线为中央经线进行投影;坐标系的单位为米(显然,转换因子就为1.0),而该坐标系的EPSG编码为“3857”。
[1] 关于字节序可以参考:http://zh.wikipedia.org/zh/%E5%AD%97%E8%8A%82%E5%BA%8F
[2] 转换因子意为一个单位所代表的米(线性单位)或所代表的弧度数(角度单位)。
[3] 在线EPSG编码参考:http://spatialreference.org/ref/epsg/