GB/T 33187.1-2016 地理信息 简单要素访问 第1部分:通用架构

  • GB/T 33187.1-2016  地理信息 简单要素访问 第1部分:通用架构为pdf格式
  • 文件大小:6.7M
  • 下载速度:极速
  • 文件评级
  • 更新时间:2020-01-08
  • 发 布 人: 13648167612
  • 文档部分内容预览:
  • 6.1.2.3几何对象间的空间关系测试方法

    本条款中的方法在Geometry子类型的后续描述中有更详细的定义与描述。 Equals(anotherGeometry:Geometry):Integer 若该几何对象与另一个几何对象“空间上 相等”,则返回1(TRUE)。 Disjoint(anotherGeometry:Geometry):Integer若该几何对象与另一个几何对象“空间 上相离”,则返回1(TRUE)。 Intersects(anotherGeometry:Geometry):Integer 若该几何对象与另一个几何对象“空 间上相交”,则返回1(TRUE)。 Touches(anotherGeometry:Geometry):Integer 若该几何对象与另一个几何对象“空 间上相接”,则返回1(TRUE)。 Crosses(anotherGeometry:Geometry):Integer一一若该几何对象“空间上跨越”另一个几何 对象,则返回1(TRUE)。 Within(anotherGeometry:Geometry):Integer若该几何对象“空间上包含于”另一个几 何对象,则返回1(TRUE)。 Contains(anotherGeometry:Geometry):Integer若该几何对象“空间上包含”另一个几何 对象,则返回1(TRUE)。 Overlaps(anotherGeometry:Geometry).Integer— 若该儿何对象与另一个儿何对象“空间 上交登”,则返回1(TRUE)。 Relate(anotherGeometry:Geometry,intersectionPatternMatrix:String):Integer 若该儿 何对象与另一个几何对象符合intersection模型矩阵的值,则两对象空间上相关(Relate),返 回1(TRUE)

    6.1.2.4支持空间分析的方法

    6.1.3GeometryCollection

    档案标准GeometryCollection是由1个几何对象或多个几何对象集合而成的一个几何对象。 GeometryCollection的所有元素应在同一空间参照中。这也是GeometryCollection的空间参照

    GeometryCollection对其成员元素无约束条件。GeometryCollection子类则对其成员元素的维数 或成员元素间的交叠程度有所约束

    NumGeometries():Integer一返回该GeometryCollection中几何元素的数目。 GeometryN(N.integer)Geometry 返回该GeometryCollection中第N个几何元素。

    Point是0维几何对象,表示坐标空间中的一个单个位置。Point有工坐标值和y坐标值。 Point的边界是空集。

    X():Double 一返回该Point的工坐标值 Y(),Double——返回该Point 的 y坐标值

    X(:Double 一返回该Point的工坐标值 Y().Double 返回该Point的y坐标值。

    6.1.5MultiPoint

    MultiPoint是o维GeometryCollcction。MultiPoint的元素被限制为Point。这些Point 连接的或无序的。 MultiPoint中没有任意两个Point具有相同的坐标值,则它是简单的。 MultiPoint的边界是空集

    6.1.6 Curve

    Curve是存储为一系列Point(序列排列的点)的1维几何对象。其子类型决定了点与点之间插值 方式。本部分仅定义了Curve的一个子类一一LineString,它在点间采用线性插值。 Curve是1维几何对象,在f:[a,b]→R”映射中,它是一个真实的、闭合的、间隔D=[a,b]=(rE R.la≤≤b)的同胚映射。 若Curve没有两次穿过同一个Point,则该Curve是简单的(见参考文献[1]的3.12.7.3)。 VcECurve,[a,b]=c.Domain, c.IsSimple(l,2(a2→(1)f(2))(l,2[ab)2=f(1)f(2)) 若Curve的起始Point和终止Point相等,则该Curve是闭合的(见参考文献[1]的3.12.7.3)。 闭合Curve的边界是空。 简单闭合的Curve是Ring(环)。 非闭合Curve的边界由它的两个端Point组成(见参考文献[1]的3.12.3.2)。 Curve是拓扑闭合的

    Curve是存储为一系列Point(序列排列的点)的1维几何对象。其子类型决定了点与点 式。本部分仅定义了Curve的一个子类一一LineString,它在点间采用线性插值。 Curve是1维几何对象,在f:[a,b]R”映射中,它是一个真实的、闭合的、间隔D=[a,b]=(E R.la≤工≤b)的同胚映射。 若Curve没有两次穿过同一个Point,则该Curve是简单的(见参考文献[1]的3.12.7.3)。 VcECurve,[a,b]=c.Domain, c.IsSimple=(Vl,2(a,b]l2→f()f(2))(l,2[ab)2→f(1)f(2)) 若Curve的起始Point和终止Point相等,则该Curve是闭合的(见参考文献[1]的3.12.7.3)。 闭合Curve的边界是空。 简单闭合的Curve是Ring(环)。 非闭合Curve的边界由它的两个端Point组成(见参考文献[1]的3.12.3.2)。 Curve是拓扑闭合的

    Length().Double 该Curve在其空间参照系中的长度。 StartPoint():Point 该Curve的起始Point。 EndPoint(:Point 该Curve的终止Point。 IsClosed():Integer 若该Curve是闭合的[StartPoint()=EndPoint()],则返回

    (TRUE)。 IsRing():Integer一若该Curve是闭合的[StartPoint()=EndPoint()」、且简单的(没有超过 一次地穿过同一个Point),则返回1(TRUE)

    6.1.7LineString、Line(直线)和LinearRing(纟

    图2LineString的示例—(a)简单的LineString;(b)非简单的LineString (e)简单、闭合的LineString(LinearRing):(d)非简单、闭合的LineString

    NumPoints():Integer 返回该LineString中Point的数目, PointN(N.Integer):Point 返回该LineString中指定的第N个Point

    6.1.8 MultiCurve

    MultiCurve是元素为Curve的1维GeometryCollection,如图3所示。 在本部分中,MultiCurve是不可实例化的类;它为其子类定义了一套方法,且包括可扩展的原因。 当且仅当MultiCurve的所有元素是简单的、且任意两元素的交仅出现在这两元素边界上的Point 时,则该MultiCurve是简单的。 MultiCurve的边界可使用“模2”并规则获得:MultiCurve边界上的Point是该MultiCurve中奇数 个元素的边界上的Point(见参考文献[1]的3.12.3.2)。 若MultiCurve的所有元素是闭合的,则该MultiCurve是闭合的。闭合MultiCurve的边界总是 为空。 MultiCurve是拓扑闭合的

    IsClosed():Integer 若该MultiCurve中每条Curve是闭合的[StartPoint()一EndPo (1,则返回1(TRUE)

    Length():Double该MultiCurve的长度等于其所有Curve长度的总和

    6.1.9MultiLineString

    MultiLineString是元素为LineString的MultiCurve。 图3(a)、(b)、(c)中MultiLineString的边界分别是(sl,e2)、fsl,el)和0。

    其中:s起始:e终止

    图3MultiLineString示例——(a)简单的MultiLineString;(b)有2个元素的非简单 MultiLineString:(c)有2个元素的非简单,闭合的MultiLineString

    6.1410 Surface

    Surface是2维儿何对象。 一个简单Surface由与1个外边界,0到多个内边界相关的单个“斑块(Patch)”构成。在3维空间 中,简单Surface与平面是同构的。PolyhedralSurface(多面体曲面)由简单Surface沿着它们的边界 “缝合”而成;3维空间中的PolyhedralSurface总体上不可以是平坦的(见参考文献[1]的3.12.9.1、 .12.9.3)。 简单Surface的边界是由其内边界、外边界组成的闭合Curve的集合(见参考文献[1]的3.12.9.4)。 本部分定义了Surface唯一可实例化的子类Polygon它是简单的平坦 Surface,

    Area():Double——在该Surface空间参照系内,测量的该Surface的面积。 Centroid():Point 以点的形式返回该Surface的数学质心。返回的结果并不一定在该 Surface上。 PointOnSurface().Point 返回一个在该Surface上的Point。

    ):Double——在该Surface空间参照系内,测量的该Surface的面积。 id():Point 一以点的形式返回该Surface的数学质心。返回的结果并不一定在该 e上。 OnSurface()Point 返回一个在该Surface上的Point

    6.1.11Polygon

    Polygon是由1个外边界,o到多个内边界定义的平坦Surface。每一个内边界定义了Polygon的 个洞。 Polygon的声明(定义为有效Polygon的规则)如下: a)Polygon是拓扑闭合的; b)Polygon的边界由一套描述其内、外边界的LinearRing组成; c)边界上的两个Ring不能相互跨越,且Polygon边界上的Ring仅能相切在一个Point上。例

    如,VPolygon,Vcl2E.Boundaryl2EPointqEclqEc2→ ±c2]; d) Polygon不可以有切割线,边缘不可以有刺峰或刺孔。例如,PEPolygon,P=Closure(Interior (P)); e) 每个Polygon的内部是相连接的点的集合; D 有1或多个洞的Polygon的外部是不连通的。每个洞定义了外部的一个连接组分。 在上述声明中,内部、闭合和外部有了标准的拓扑定义。a)和c)的结合使Polygon成为一个规则的 闭合点集。 Polygon是简单几何对象。 图4示出Polygon的一些例子

    图4Polygon示例 (a)有1个Ring的Polygon(b)有2个Ring的Polygon: (c)有3个Ring的 Polygon

    6.1.11.2 方法

    声明、不能用单个Polygon实例表示的几何对象

    图5不能用单个Polygon实例表达的几何对象示例

    ExteriorRing():LineString 返回该Polygon的外环。 NumlnteriorRing():Integer 返回该Polygon内环的数目。 InteriorRingN(N:Integer).LineString 以LineString的形式返回该Polygon的第N个 Ring.

    6.1.12 MultiSurface

    MultiSurface是其元索为Surface的2维GeometryCollection。MultiSurface中任意两个Surface 的内部不可以相交。MultiSurface中任意两个元素的边界可能最多相交在有限个Point上。 本部分的MultiSurface是不可实例化的类。它为其子类定义了一套方法,且包括可扩展的原因。 MultiSurface可实例化的子类是MultiPolygon,对应Polygon的集合

    Area():Double—一在该MultiSurface空间参照系内,测量的该MultiSurface的面积。 Centroid()Point一 一以Point的形式返回该MultiSurface的数学质心。返回的结果并不一 定在该MultiSurface面上。 PointOnSurface()Point 返回在该MultiSurface上的一个Point

    6.1.13MultiPolygon

    6.1.14 关系算子

    6.1.14.1 背景

    不能用单个MultiPolygon实例所表示的几何对

    图9Touches关系的示

    图11 Within关系的示例一 (a)Polygon/Polygon;(b)Polygon/LineString (c)LineString/LineString;(d)Polygon/Point

    图12Overlaps关系的示例一 (a)Polygon/LineString:(b)LineString/LineString

    tains包含 a. Contains(b) 台 b. Within(a)

    [ntersects 相图

    6.2几何的WKT表示

    每个儿何类型都有其WKT表示。该表示可用于构建该类型的新实例,也可将已有实例转换为以 字母数字表达的文本形式。

    单”(tokens)重复0到多次:该大

    《GeometryTaggedText): (Point Tagged Text) I(LineString Tagged Text) I (Polygon Tagged Text) I《MultiPoint Tagged Text) I《MultiLineString Tagged Text) I 《MultiPolygon Tagged Text) I(GeometryCollection Tagged Text) 《Point Tagged Text);" POINT (Point Text) 《LineString Tagged Text)" LINESTRING (LineString Text)

    表2几何的WKT表示示例

    6.3几何的WKB表示

    几何的WKB表示(WKBGeometry)提供了一种几何对象连续字节流的便捷表示。它可以实现几 何对象在SQL/CLI客户端和SQL实现之间的二进制形式交换

    数字类型的序列,然后将每个数字类型序列化为公认定义的、标准的、二进制表示数据类型(ND R)之一的字节序列。几何表示的二进制编码(NDR或XDR)方式用位于系列字节之前的一字节 述。两种Geometry编码的唯一不同的是字节顺序,XDR编码是大端的,而NDR编码是小端的

    6.3.2.2数字(Numeric)类型的定义

    UnsignedInteger是对[0,4294967295]范围内的非负整数进行编码的32位(4字节)数据类型。 Double是采用IEEE745[18双精度格式对双精度数进行编码的64位(8字节)双精度数据类型。 上述定义在XDR和NDR中是一样的

    6.3.2.3数字类型的XDR(大端)编码

    UnsignedInteger的XDR表示是大端的(最有效的字节在前)。 Double的XDR表示是大端的(符号位是第一字节)

    63.2.4数字类型的NDR(小端)编码

    JnsignedInteger的NDR表乐 Double的NDR表示是小端的(符号位是最后字节)

    6.3.2.5WKBGeometry的NDR和XDR表示的转换

    UnsignedInteger和Double的NDR和XDR数据类型间的转换较为简单,即将字节流中的无符 型和双精度型字节进行交换

    槽钢标准6.3.2.6与其他COM和CORBA数据转换协议的关系

    上述用于UnsignedInteger和Double数值的XDR表示也是CORBA外部服务规范15中用于外 部化对象的CORBA标准流格式的UnsignedInteger和Double数值的标准表示。 上述用于UnsigncdInteger和Double数值的NDR表示也是基于DEC、RPC和NDR[16]的 DCOM协议中UnsignedInteger和Double数值的标准表示

    6.3.2.7WKBGeometry表示的描述

    Geometry的WKB表示的基本结构单元是由两个Double数组成的Point的字节流。可以使用日 定义几何对象的字节流构建其他几何对象的字节流。 //基本类型定义 //byte:1字节 //uint32:32位无符号整数(4字节)

    6.3.2.8几何的WKB表示的声明

    格式(B=1)的具有两个LinearRing(NR=2)、每 有3个点(NP=3)的Polygon(T=3)的WKB表

    Geometry的WKB表示设计用于几何类型实例。任何WKBGeometry实例应该满足它 何类型的声明(见6.1)。

    5.4空间参照系的WKT表示

    照明设计标准6.4空间参照系的WKT表示

    ....
  • 相关专题: 地理信息  

相关下载

常用软件