この規格ページの目次
30
X 7107 : 2005 (ISO 19107 : 2003)
る)とみなすので,共通の端点を共有する二つの(GMComplexとしての)GMCompositeCurve
は,交差する。
6.2.2.18.4 equals ブール値を返す“equals”(同値判定)操作は,GMObjectが他のGMObjectと等しい
場合にTRUEを返す。この操作は,TransfiniteSet<DirectPosition>::equalsのインスタンス化を目的とする。
GMObject::equals(pointSet : GMObject) : Boolean
二つの異なるGMObjectは,それに関連付けられた座標参照系で有効な範囲のすべてのDirectPosition
に対して,そのGMObject::contains操作の試験が同じ真偽値を返す場合,等しいものとする。
備考 直接位置の無限集合は試験できないため,同値の内部実装は,二つの異なる表現の間の同一性
を試験しなければならない。この試験は,座標系の解像度又はデータの精度によって制限して
よい。応用スキーマは,元のGMObjectと指定したGMObjectが同じ次元をもち,二つの
GMObjectのすべての直接位置が相手の直接位置から許容誤差距離以内にある場合に真を返す
ような,許容誤差を定めてよい。
6.2.2.18.5 union “union”(和集合取得)操作は,このGMObjectと指定したGMObjectとの集合論に
おける和集合を返す。
この操作はTransfiniteSet<DirectPosition>::unionのインスタンス化を目的とする。
GMObject::union(pointSet : GMObject) : GMObject
6.2.2.18.6 intersection “inersection”(積集合取得)操作は,このGMObjectと指定したGMObjectとの
集合論における積集合を返す。
この操作はTransfiniteSet<DirectPosition>::intersectionのインスタンス化を目的とする。
GMObject::intersection(pointSet : GMObject) : GMObject
6.2.2.18.7 difference “difference”(差集合取得)操作は,このGMObjectと指定したGMObjectとの集
合論における差集合を返す。
この操作はTransfiniteSet<DirectPosition>:: difference のインスタンス化を目的とする。
GMObject::difference(pointSet : GMObject) : GMObject
備考 difference操作は左右対称ではなく,通常A.difference(B)はB.difference(A)に等しくない。
6.2.2.18.8 symmetricDifference “symmetricDifference”(対称差集合取得)操作はこのGMObjectと指定
したGMObjectとの集合論における対称差集合を返す。この操作はTransfiniteSet<DirectPosition>::
symmetricDifference のインスタンス化を目的としたものである。
GMObject::symmetricDifference(pointSet : GMObject) : GMObject
6.3 Geometric primitiveパッケージ
6.3.1 意味
Geometric primitive(幾何プリミティブ)パッケージは,あらゆる幾何プリミティブ及びそ
れらの境界を記述するために使用されるデータに対応するための型を含む。
6.3.2 GMBoundary 幾何オブジェクトの境界を表すデータに使用するすべての型の抽象基底クラスを
GMBoundary(幾何境界)(図7参照)とする。GMObjectの任意の下位クラスは,GMObject::boundary
操作による境界の表現にGMBoundaryの下位クラスを使用する。幾何の本来の特性によって境界オブジ
ェクトは,輪体となる。
備考 GMBoundaryに対して“幾何境界”と表記しているように,幾何と位相に同様の定義があり,
区別が必要な場合にはそれぞれを付加して明示している。
GMBoundary:
[{isCycle() = TRUE}]
――――― [JIS X 7107 pdf 36] ―――――
31
X 7107 : 2005 (ISO 19107 : 2003)
Type
GMComplex
(from Geometric complex)
Abstract
[{isCycle() = TRUE}] GMBoundary
Abstract Type
GMPrimitiveBoundary GMComplexBoundary
Type Type Type
GMCurveBoundary GMSurfaceBoundary GMSolidBoundary
0..n 0..n 1 1 1 1
Type Type Type
1 1 0..1 0..n 0..1 0..n
GMPoint +endPoint
GMRing +interior
GMShell +interior
+startPoint +exterior +exterior
Type Type
GMCompositeSurface GMCompositeCurve
(from Geometric complex) (from Geometric complex)
Type [{isSimple() = TRUE}] Type
GMShell [{isCycle() = TRUE}] GMRing
図 7 GMBoundary
6.3.3 GMComplexBoundary GMComplexオブジェクトに対する境界取得操作は,プリミティブの集
まりで,元のオブジェクトより次元が一つ小さいGMComplexとなる,GMComplexBoundary(幾何複体
境界)を返す。
6.3.4 GMPrimitiveBoundary GMPrimitiveBoundary(幾何プリミティブ境界)抽象クラスは,
GMPrimitiveの下位型の境界操作が返す様々な型の基底となる。点は,境界をもたないため,その境界に
は特別な下位クラスは必要としない。
6.3.5 GMCurveBoundary
6.3.5.1 意味 GMCurveの境界はGMCurveBoundary(曲線境界)として表現する。
6.3.5.2 startPoint,endPoint GMCurveBoundaryは,二つのGMPointの参照を含む。
GMCurveBoundary::startPoint : Reference<GMPoint>;
GMCurveBoundary::endPoint : Reference<GMPoint>;
6.3.6 GMRing GMRing(幾何輪)は,GMSurfaceBoundaryの単連結要素を表現するのに使用する。
これは,輪体(境界が空のオブジェクト)として連結した幾つかのGMOrientableCurveへの参照で構成す
る。
GMRingは,列の各GMOrientableCurveの終点が次のGMOrientableCuveの始点となる点で,
GMCompositeCurveと類似した構造をもつ。列は,円形であるため,この法則は常に成り立つ。各輪は,
すべての境界と同様に輪体で単純とする。
――――― [JIS X 7107 pdf 37] ―――――
32
X 7107 : 2005 (ISO 19107 : 2003)
GMRing:
[{isSimple() = TRUE}]
[{isCycle() = TRUE}]
6.3.7 GMSurfaceBoundary
6.3.7.1 意味 GMSurfaceの境界は,GMSurfaceBoundary(曲面境界)として表現する。
6.3.7.2 exterior及びinterior GMSurfaceBoundaryは,その境界の様々な要素に対応する,幾つかの
GMRingで構成する。通常の二次元の場合,これらの輪のいずれか一つを外部(exterior)境界として区別す
る。一般的な多様体では外部境界を常に指定する必要はなく,その場合すべての境界を内部(interior)境界
として関連し,外部を空とする。
GMSurfaceBoundary::exterior[0,1] : GMRing;
GMSurfaceBoundary::interior[0..n] : GMRing;
備考 ここでの外部と内部の使用は,幾何オブジェクトの“内部”及び“外部”の定義を指すもので
はない。これらの用語は,一般的な用法として用いており,オブジェクトの内部であるという
概念に対して,容器の内部であるという,同じ言語構文を用いた言語的隠喩を反映したもので
ある。通常の数学の用語では,外部境界とはジョルダンの分割定理(ジョルダンの曲線定理の
二次元からの拡張)で使用されるものである。外部境界は,無限の空間から曲面(又は三次元
の立体)を分離する。内部境界は,他の有界オブジェクトからオブジェクトを直接分離する。
外部の一意性は,非有界空間の一意性による。基本的に,ジョルダンの分割定理は,輪又は殻
の挿入がそれぞれ二次元又は三次元空間を有界部分と非有界部分とに分離することを示す。こ
れは,より大きい次元でも同様だが,この規格では,最大でも三次元までに制限する。
例1. 基礎多様体が無限円柱である場合,この円柱の二つの横断面による切断は,切断面間のコンパ
クトな曲面及び二つの部分の分離した非有界円柱を定義する。この場合,いずれかの切断を合
理的に外部と呼ぶこともできる。このような多義的な場合,この規格ではすべての境界を“内
部”集合として示すこととする。外部境界の一意性が保証されるのは,二次元平面E2上だけで
ある。
例2. 球面の赤道をとって1メートルのバッファを生成すると,二つの同形の境界要素をもつ曲面が
得られる。これらのうちのいずれかを外部として区別する公平な方法はない。
6.3.8 GMShell GMShell(幾何殻)は,GMSolidBoundaryの単連結要素を表現するのに使用する。こ
れは,位相輪体(境界が空のオブジェクト)として連結した幾つかのGMOrientableSurfaceへの参照で構
成する。GMRingとは異なり,GMShellの要素に,は自然な順序はない。GMRingと同様にGMShell
は,単純とする。
GMShell:
[{isSimple() = TRUE}]
[{isCycle() = TRUE}]
6.3.9 GMSolidBoundary
6.3.9.1 意味 GMSolidの境界は,GMSolidBoundary(立体境界)として表現する。
6.3.9.2 exterior及びinterior GMSolidBoundaryは,GMSurfaceBoundaryと類似する。通常の三次元ユ
ークリッド空間では,一つの殻を外部(exterior)境界として区別する。より一般的な場合には,常にそうす
る必要はない。
GMSolidBoundary::exterior[0,1] : GMShell;
――――― [JIS X 7107 pdf 38] ―――――
33
X 7107 : 2005 (ISO 19107 : 2003)
GMSolidBoundary::interior[0..n] : GMShell;
備考 外部殻をもたない立体は,有限の立体の“補集合”を定義するために使用してよい。このよう
な無限立体は,内部(interior)境界だけをもつ。この規格を四次元ユークリッド空間まで拡張し
たり三次元コンパクト多様体を(おそらく地理情報の範ちゅうを超えて)使用するような場合,
外部境界をもたない有界立体を新たに例示することができる。
6.3.10 GMPrimitive
6.3.10.1 意味 GMPrimitive(幾何プリミティブ)(図8)は幾何プリミティブの抽象基底クラスとする。
この主な目的は,各次元のプリミティブを一まとめにして基本的な“boundary”操作を定義することであ
る。幾何プリミティブ(GMPrimitive)は,システム内で更に他のプリミティブに分解することのできな
いような,幾何オブジェクトとする。曲線及び曲面は,それぞれが複数の曲線分及び曲面分で構成されて
はいるが,幾何プリミティブに含まれる。この合成は,強い集成とし,曲線分及び曲面分は,プリミティ
ブ以外の部分では用いてはならない。
備考 大部分の幾何プリミティブは,何度でも限りなく分解できる。線分に中点を与えることによっ
て,その線分は,二つの独立した線分に分割できる。曲面に沿った曲線を与えることによって,
その曲面は,それぞれが曲面となる二つの部分に分割できる。このため,プリミティブを“不
可分”とする一般的な定義は,不可分となる唯一の幾何オブジェクトが点であるという幾何学
モデルにおいては理にかなったこととはいえない。
地物の記述に用いる幾何オブジェクトは幾何プリミティブの集まりとする。幾何プリミティブの集まり
は,幾何複体であってもよく,そうでなくてもよい。幾何複体は,境界取得操作による閉包又は相互に排
他的な構成部分による閉包などのさらなる操作ももつ。
GMPrimitive及びGMComplexは,操作,属性及び関連の点で大部分の意味が共通する。この例外とし
て,GMPrimitiveは(境界が空となるGMPointの自明な場合を除き)その境界を含まないが,GMComplex
はすべての場合においてその境界を含む。これは,GMPrimitive及びGMComplexの両方としてGMObject
の操作を実装するインスタンス化されたオブジェクトについて,集合論的な各操作は,その名前の解決方
法によってその意味を決めることを示す。具体的には,GMCompositeCurveのような特定のオブジェクト
は,GMPrimitive::contains (端点に対してFALSEを返す。)とGMComplex::contains(端点に対してTRUE
を返す。)とは異なる。さらに,そのオブジェクトをGMPrimitiveの値及びGMComplexの値に型変換し
た場合には,この二つの値は,GMObjectとして等しくなくてよい。
――――― [JIS X 7107 pdf 39] ―――――
34
X 7107 : 2005 (ISO 19107 : 2003)
<<Type>>
GMObject
(from Geometry root)
[{dimension() >= cotainedPrimitive.dimension()}]
Complex 1..n Type +containedPrimitive
+element GMPrimitive 0..n
Interior to
+ boundary() : GMPrimitiveBoundary
0..n
+ GMPrimitive(e : GMEnvelope) : GMPrimitive
+containingPrimitive
+complex
0..n
Type
GMComplex Type
(from Geometric complex) GMOrientablePrimitive
Type Type
GMOrientableCurve GMOrientableSurface
Type Type Type Type
GMPoint GMCurve GMSurface GMSolid
図 8 GMPrimitive
6.3.10.2 boundary “boundary”(境界取得)操作は,GMPrimitiveの境界をGMPrimitiveの集合として
返す。これは,GMObjectの操作を特化したもので,戻り値である集合のクラスを制約しない。GMPrimitive
の境界集合の構成は,プリミティブの型に依存する。
GMPrimitive::boundary() : GMPrimitiveBoundary
6.3.10.3 GMPrimitive(コンストラクタ) 問合せ操作では,よくGMEnvelopeを用いるため,GMObject
を返す型変換操作をもたなければならない。GMPrimitiveのコンストラクタがこれを提供する。
GMPrimitive::GMPrimitive(env : GMEnvelope) : GMPrimitive.
備考 この操作の実際の戻り値は,座標参照系の次元及び包被の範囲によって決める。二次元のシス
テムで返すプリミティブ(包被が点又は線に畳み込めない限り)は,GMSurfaceとする。三次
元のシステムの場合,通常の戻り値はGMSolidとする。
例 GMEnvelopeがそのSCCRS (空間参照系)オブジェクトの有効領域に完全に含まれている場合,
その関連するGMPrimitiveは,各頂点の座標値を組合せた凸包となる。例えば,二次元上のある
包被を次のように定義する(ここではSCCRSは,広域変数として無視する。)。
env : GMEnvelope = <lowerCorner = (x1,y1), upperCorner = (x2,y2)>
次に,各座標要素を組み換えて,ポリゴンを構成する一連の頂点を作成する。
multipoint : GMMultiPoint = [{ (x1,y1), (x1,y2), (x2,y1), (x2,y2)}]
――――― [JIS X 7107 pdf 40] ―――――
次のページ PDF 41
JIS X 7107:2005の引用国際規格 ISO 一覧
- ISO 19107:2003(IDT)
JIS X 7107:2005の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.70 : 自然科学へのITの応用
JIS X 7107:2005の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX7111:2014
- 地理情報―座標による空間参照