地理空间数据格式——OGC简单要素标准(WKT/WKB)
2016-11-10 17:38
190 查看
SFS-简单要素标准
1. 概述
SFS(OpenGIS® Simple Features Interface Standard)的当前版本是1.2.0。事实上SFS中包括两部分内容,第一部分是描述简单要素的通用模型(Part
1: Common architecture )、另一部分是描述前一部分模型在SQL中的实现(Part
2: SQL option )[1] 。我们平时所熟知的WKT、WKB等就在第一部分中叙述,而在空间SQL语句中常见的AsText、Intersects操作等则在第二部分中有定义。
下面就SFS中比较重要的内容进行详细的说明,包括第一部分中的几何对象模型、WKT描述的几何对象、WKB描述的几何对象、WKT描述的空间参考和第二部分中的SQL预定义schema、SQL几何类型、SQL空间操作。2. 几何对象模型
图1. SFS中定义的几何对象模型
图 1显示的是SFS中几何对象的关系结构,简单要素中的几何对象主要就是定义了点、线、面和多点、多线、多面。另外,几何对象还涉及一系列的操作,如图 2所示。
图2 Geometry的操作
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值的二维点 |
4. 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描述多边形的字节结构
5. 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/
[1] 原本还有关于CORBA和OLE/COM的实现,当前版本已经不支持了。
相关文章推荐
- 地理空间数据格式——OGC-GML
- 地理空间数据格式——OGC-KML
- 地理空间数据格式——GeoJSON
- 空间数据的WKT和WKB表现形式
- 地理空间数据格式——GeoJSON
- 地理空间数据格式——GeoCSV
- 使用标准的格式:WKT、WKB和GML(1)
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台八(C#开发)-图层分类标准定义
- 基于.NET 的WebSocket 的简单实例 --- 数据格式
- array grid的简单使用.根据官方示例改写(asp.net).json数据格式.
- BT.656与BT.601在数据格式上的简单区别
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台十(C#开发)-空间数据导入RDBMS上-MDB格式
- 关于简单格式大容量数据导出的web实现
- 目前世界上最主要的导航电子地图数据标准/格式
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台八(C#开发)-图层分类标准定义
- SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据
- SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- Google的KML格式成为OGC开放式标准
- ArcSDE创建空间数据存储类型为ST_Geometry的要素类