当前位置: 首页 > news >正文

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个字节,用以存储节点坐标值。其中的几何对象类型对应的整数可以参考下表:

image

图 3 WKB中几何类型对应的整数值

除此之外,WKB在第一位还存储了一个额外的字节用来标识字节序[1] (0=Big-Indian,1=Little-Indian)。因此,对于一个点(不带M值的二维点)来说,它的WKB描述应该类似下面的结构,总共占据21个字节:

image

图 4 WKB描述点的字节结构

对于有2个节点的线来说,WKB描述应该包含41个字节:

image

图 5 WKB描述线的字节结构

对于仅有1个外环,由3个节点构成的多边形来说,WKB描述则应该包含77个字节:

image

图 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/

相关文章:

  • [我研究]7月第三周
  • 查看服务器实例的属性信息函数--SERVERPROPERTY
  • 10w级别的mysql数据插入
  • 绿色 . IT . 从小事做起
  • x64 参数传递
  • 《Windows Phone 7 UI设计及人机交互指南》翻译稿
  • [转]获取SQL SERVER表字段详细信息
  • QTCreator 的使用
  • IO的学习笔记 - 同步,异步,阻塞,非阻塞
  • Qt Creator 的 error: collect2: ld returned 1 exit status 问题
  • C++ 类的本质 札记
  • 【转】【翻译】Orx官方教程:4.(anim)动画
  • Android之Providing Resources(提供资源)
  • SAP ECC Web Dynpro ICM Config...
  • 算法之美:排序
  • Apache的基本使用
  • chrome扩展demo1-小时钟
  • co.js - 让异步代码同步化
  • E-HPC支持多队列管理和自动伸缩
  • input实现文字超出省略号功能
  • Javascript设计模式学习之Observer(观察者)模式
  • Java应用性能调优
  • MySQL主从复制读写分离及奇怪的问题
  • oldjun 检测网站的经验
  • rabbitmq延迟消息示例
  • uva 10370 Above Average
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 工作手记之html2canvas使用概述
  • 类orAPI - 收藏集 - 掘金
  • 聊聊flink的TableFactory
  • 想写好前端,先练好内功
  • 协程
  • 一个JAVA程序员成长之路分享
  • nb
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​2020 年大前端技术趋势解读
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (7)STL算法之交换赋值
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (笔试题)分解质因式
  • (七)理解angular中的module和injector,即依赖注入
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • *2 echo、printf、mkdir命令的应用
  • .form文件_一篇文章学会文件上传
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法