25
X 7107 : 2005 (ISO 19107 : 2003)
Interface
[{dimension() > boundary().dimension}]
TransfiniteSet<DirectPosition>
[{boundary().notEmpty() mplies
(from Coordinate geometry)
boundary().dimension() = dimension() -1}]
[{boundary().isEmpty() = isCycle()}]
Type
GMObject
+ mbRegion() : GMObject
+ representativePoint() : DirectPosition
+ boundary() : GMBoundary
+ closure() : GMComplex
+object Coordinate Reference System
+ isSimple() : Boolean
+ isCycle() : Boolean 0..n
+ distance(geometry : GMObject) : Distance
+ dimension(point : DirectPosition = NULL) : Integer
+ coordinateDimension() : Integer
+ maximalComplex() : Set<GMComplex> [{Reference}]
+ transform(newCRS : SCCRS) : GMObject 0..1 +CRS
+ envelope() : GMEnvelope
+ centroid() : DirectPosition Abstract
+ convexHull() : GMObject SCCRS
+ buffer(radius : Distance) : GMObject (from Spatial Referencing by Coordinates)
Type Type Type
GMPrimitive GMComplex GMAggregate
(from Geometric primitive)(from Geometric complex) (from Geometric aggregates)
図6 GMObject
6.2.2.5 closure “closure”(閉包取得)操作は,このGMObjectとその境界上のすべての点を含んだ
GMObjectとの有限集合(オブジェクトとその境界との和集合)を返す。これらのオブジェクトの集まり
は,さらに適切な内部構造をもつ。戻り値のGMObjectの有限集合には,このGMObjectと同じ座標参
照系を用いる。もしGMObjectがGMComplexに含まれる場合には,このGMComplexは戻り値の境界
GMObjectを含む。GMObjectがどのGMComplexにも含まれない場合には,境界GMObjectを操作の
結果として生成してよい。
GMObject::closure() : GMComplex
6.2.2.6 isSimple “isSimple”(単純判定)操作は,GMObjectが内部に自己交差又は自己接触する点が
ない場合,TRUEを返す。数学的な形式論では,オブジェクト内部のすべての点が距離近傍をもち,その
近傍とオブジェクトとの共通集合がn次元球と同形であることを示す。ここでnは,このGMObjectの次
元とする。
――――― [JIS X 7107 pdf 31] ―――――
26
X 7107 : 2005 (ISO 19107 : 2003)
GMObject::isSimple() : Boolean
ほとんどの座標幾何は,その位相次元のユークリッド空間の領域において,直接又は間接に関数によっ
て表現されるので,単純性に関する最も簡単な試験は,一対一で双連続(双方向で連続)な関数が存在す
るか否かを調べる方法である。このような関数は,位相同形となる。この試験は,“閉じた”オブジェクト
(すなわち,isCycle操作がTRUEになるオブジェクト)には機能しない。
GMComplexには単純なGMObjectしか含んではならないが,“スパゲッティ”データ集合の中ではし
ばしば単純でないGMObjectが含まれる。
備考 “スパゲッティ”は,通常は,使用する前に“きれいに”しなければならないような,許容水
準を超えたデータの幾何的な異常及び矛盾を示す,軽べつした(無礼な)用語である。このよ
うな矛盾は,次の異常型(これらに限定されるわけではない)の一部又はすべてを含む。
1) a 過短線は,他の線と交差すべき線で,短すぎてそれと交差する点との間にすき間を残したも
のである。これを(道路同士がブロック一枚の厚さの壁で隔てられている場合のような)地
物が実際に“接近”している場合と区別するのは,しばしば困難である。この問題は,特に
過短線が曲面又はポリゴンの境界を閉じるのに失敗する場合に扱いが難しい。これは多くの
場合,縮尺の小さすぎる図を使用し,線の終点を“留め”るのに失敗したデジタイズ作業を
示す。
2) b 過長線は,他の線と交差して終わる線で,長すぎて交差する点の向こう側にわずかにはみ出
た線を残したものである。これは多くの場合,縮尺の小さすぎる図を用い,線の終点を視覚
的に“留め”ようとしたデジタイズ作業を示す。
3) c 端環線は,他の線と交差して終わる線で,長すぎて戻り交差する点の向こう側にわずかには
み出た環状の線を残したものである。これは多くの場合,縮尺の小さすぎる図を用い,線を
はみ出た後に“留め”たデジタイズ作業を示す。
4) d 裂片及びすき間は,同一の幾何を表現すべき複数の線で,一致せずに二つの面の境界間に重
複する地域(裂片)及びすき間を残したものである。この問題は,自然地物の実際の幾何が
単に下手なデジタイズ作業による裂片及びすき間に似ているため,入り組んだ小川の地域を
扱う際にとりわけ困難となる。これは多くの場合,共通のデータベースに統合された(しか
し正しく融合されなかった)複数の情報源が同一のデータに対して存在することを示す。
“スパゲッティ”の本当の問題は,問題を訂正するための試行錯誤が(手作業であれ自動であれ),多く
の場合新たに様々な事実誤認を引き起こすことである。これは幾何に関する深刻な品質の問題である。
6.2.2.7 isCycle “isCycle”(輪体判定)操作は,位相的な単純化(GMAggregateの下位クラスのような,
非構造的な集成の要素間の重複部分を取り除くこと)によってこのGMObjectの境界要素がなくなる場合,
TRUEを返す。この条件は,“閉曲線”の“閉”の代わりに参照する。これは,“閉”という語に二つの異
なる両立しない定義があるため,混乱の原因となる。輪体という語を用いるのはまれ(一般には代数的位
相幾何学の分野に限られる。)だが,混乱の原因を低減できる。本質的に,オブジェクトは,あるユークリ
ッド空間の領域の境界となる幾何オブジェクトと同形な場合,輪体となる。したがって点は,その境界が
空であるため輪体である。曲線は,同じ始終点をもつ円と同形の場合,輪体となる。曲面は,球面又はト
ーラスのいずれかと同形の場合,輪体となる。有限の大きさの立体は,三次元空間では決して輪体とはな
らない。
GMObject::isCycle(): Boolean
例 次の OCL は,境界取得操作を用いて GMObject を生成し,さらに
――――― [JIS X 7107 pdf 32] ―――――
27
X 7107 : 2005 (ISO 19107 : 2003)
TransfiniteSet<DirectPosition>::isEmpty() 操作を用いてその境界が空集合であるかを判定する。
GMObject:
isCycle() = boundary().isEmpty()
6.2.2.8 distance “distance”(距離取得)操作は,このGMObjectと他のGMObjectとの間の距離を返
す。この距離は,二つのGMObjectの各点のすべての対の距離の集合の最大下界として定義する。距離の
値は,メートルなどの距離単位に関連付けた負でない数とする。必要に応じて,二番目の幾何オブジェク
トは,距離を計算する前に最初のオブジェクトと同じ座標参照系に変換する。
GMObject::distance(geometry : GMObject) : Distance
幾何オブジェクトが重複又は接触する場合,その間の距離は0とする。このような場合に負の距離を用
いる実装も流通しているが,このような方法は実装の一貫性を損ない,理論的にも機能しない。
距離にはISO TS 19103で定義する計量データ型の単位のいずれかを使用する。
備考 距離計算における参照系の役割は重要である。一般に,点の間(すなわち,幾何オブジェクト
の間)で定義してよい距離として,少なくとも地図距離,測地距離及び地形距離の3種類があ
る。
地図距離は,(縮尺を考慮にいれた地図上のような)座標投影での位置によって定義した点間距
離である。地図距離は,縮尺関数が良質な導関数をもつ場合,通常は,小さな範囲で正確であ
る。
測地距離は,座標参照系が用いる地表モデルの表面に沿った,2点間の最短曲線の長さで定義
した距離である。測地距離は,範囲の広い領域に対してうまく機能し,地球の曲率を考慮する。
これは,特に航空及び航海に便利だが,航程線距離(方位が一定の曲線)と測地線距離とを区
別するよう注意が必要である。
地形距離は,局所的な垂直変位(測高)を考慮したものである。地形距離は,測地距離又は地
図距離のいずれに基づいてもよい。
6.2.2.9 dimension “dimension”(次元取得)操作は,このGMObjectに固有の次元を返す。その値は座
標次元以下でなければならない。幾何オブジェクトの集合の次元は,その部品の次元で最大のものとする。
点は零次元,曲線は一次元,曲面は二次元,立体は三次元とする。局所的には,幾何オブジェクトのある
点における次元は,その点の幾何オブジェクト上の局所近傍となる任意の座標近傍の次元となる。次元は,
このGMObjectの内部にある複数のDirectPositionに対してだけ,明確に定義される。渡されたDirectPosition
がNULLであるときは,この操作は,このGMObject中のすべてのDirectPositionの次元のなかで,最も
大きな次元を返さなければならない。
GMObject::dimension(point : DirectPosition = NULL) : Integer
6.2.2.10 coordinateDimension “coodinateDimension”(座標次元取得)操作は,このGMObjectを定義す
る座標の次元を返す。この次元は,このGMObjectの座標参照系の座標の次元と同じでなければならない。
GMObject::coordinateDimension(): Integer
6.2.2.11 maximalComplex プリミティブの集合としてのGMComplexは,元の複体の“上位複体”とし
て参照される,別のより大きなGMComplexに集合として含まれてよい。そのようなより大きい上位複体
がない場合,そのGMComplexは,極大とする。“maximalComplex”(極大複体取得)操作は,この
GMObjectが含まれる極大GMComplexの集合を返す。
GMObject::maximalComplex() : Set<GMComplex>
使用する応用スキーマがGMComplexを含まない場合,この操作は,NULL値を返す。
――――― [JIS X 7107 pdf 33] ―――――
28
X 7107 : 2005 (ISO 19107 : 2003)
備考 極大複体の通常の意味では,GMPrimitiveは,それを強集成する複数の極大複体に含まれては
ならない。これは,絶対ではなく,実装の意味に依存し,GMPrimitiveとGMComplexとの間
の関係は,多対多となってよい。プログラム作成の観点から見ると,これは,維持が困難な(だ
が不可能ではない。)動的構造ではあるが,静的な問合せだけの構造としては,同じ幾何オブジ
ェクトを要素とする二つの表現に固有の冗長なデータを最小化することにかなり有効である。
6.2.2.12 transform “transform”(変換取得)操作は,このGMObjectを,指定した座標参照系にその変
換精度以内で座標変換した新しいGMObjectを返す。
GMObject::transform(newCRS : SCCRS) : GMObject
6.2.2.13 envelope “envelope”(包被取得)操作は,このGMObjectの最小境界長方形を返す。この包被
は,このGMObjectのDirectPositionがとる各座標値の最小値から最大値までの範囲を示す座標領域とす
る。包被の最も単純な表現は,一つ目にはすべての直交座標のそれぞれの最小値を,二つ目には最大値を
もつ二つのDirectPositionからなる。ただし,これら二つの位置は,このオブジェクトの座標参照系の有効
範囲外になる場合もある。ここでは,この操作は応用システムが様々な方法の実装を選択できるようイン
タフェースとして定める。
GMObject::envelope() : GMEnvelope
6.2.2.14 centroid “centroid”(図心取得)操作は,このGMObjectの数学的な図心を返す。結果は,オ
ブジェクト上にあるとは限らない。異なる種類のプリミティブの集まりの場合,次元が最大となるプリミ
ティブだけを考慮して図心を求める。例えば,複数の曲面の図心を計算するには,面積で加重した平均を
求める。曲線は,面積をもたないのでこの平均には影響しない。
GMObject::centroid() : DirectPosition
備考 この位置は,オブジェクトの座標参照系の有効範囲の外側となる場合があるが,ほとんどの座
標参照系の有効範囲が凸であるため,その可能性は低い。このような稀有な状況が起こりうる
場合,実装は適切に対処しなければならない。
6.2.2.15 convexHull “convexHull”(凸包取得)操作は,このGMObjectの凸包を表すGMObjectを返
す。
GMObject::convexHull() : GMObject
備考 このGMObjectは,部分的にオブジェクトの座標参照系の有効範囲の外側となる場合があるが,
ほとんどの座標参照系の有効範囲が凸であるため,その可能性は低い。このような稀有な状況
が起こりうる場合,実装は適切に対処しなければならない。
凸の定義には“線”又は“最短の曲線”を使用する必要があるため,様々な座標系を使用してオブジェ
クトに様々な種類の凸包を定めてよい。それぞれの実装はこのあいまいさを適切に解決しなければならな
い。二つの妥当な座標系において,一方の座標系のオブジェクトの凸包は,もう一方の座標系において同
じオブジェクトの凸包を変換した像によって非常によく近似される。
6.2.2.16 buffer “buffer”(バッファ取得)操作は,このGMObjectからの距離がパラメタに指定した値
以下となるようなすべての点を含むGMObjectを返す。戻り値のGMObjectは,元のGMObjectと同じ
参照系を用いる。戻り値のGMObjectの次元は,通常は座標次元と同じとなる。すなわち,戻り値の
GMObjectは二次元空間上ではGMSurfaceの集合となり,三次元空間上ではGMSolidの集合となる。し
かし,応用システムは,これと異なるよう定義してもよい。
GMObject::buffer(radius : Distance) : GMObject
備考 このGMObjectは,部分的にオブジェクトの座標参照系の有効範囲の外側となる場合がある。
――――― [JIS X 7107 pdf 34] ―――――
29
X 7107 : 2005 (ISO 19107 : 2003)
このような状況が起こりうる場合,実装は適切に対処しなければならない。
6.2.2.17 Coordinate Reference System関連 “Coordinate Reference System::CRS”(座標参照系)関連は,
このGMObjectと,DirectPositionにおける座標に使用する座標参照系とを関連付ける。この関連が空の場
合,このGMObjectは,それを包含する他のGMObjectのSCCRSを使用する。
GMObject::CRS[0,1] : SCCRS
備考 この関連が空となるような最も一般的な例は,極大GMComplexの下位複体及び要素である。
GMComplexは,そのSCCRSをすべてのGMPrimitive要素及びすべてのGMComplex下位
複体に及ぼしてよい。この関連は,GMObjectからSCCRSの方向にだけ有効とする。これは,
データ集合中の座標参照系オブジェクトが,それを使用するGMObjectの一覧を保持しないこ
とを示す。
6.2.2.18 TransfiniteSetの実現による操作
6.2.2.18.1 GMObjectは,次の操作をTransfiniteSet<DirectPosition>インタフェース(ISO TS 19103)に基
づいて実現する。
6.2.2.18.2 contains ブール値を返す“contains”(包含判定)操作は,GMObjectが他のGMObject又は
座標(DirectPosition)で指定した一点を包含する場合にTRUEを返す。この操作は,
TransfiniteSet<DirectPosition>::containsのインスタンス化を目的とする。
GMObject::contains(pointSet : GMObject) : Boolean // 部分集合演算子
GMObject::contains(point : DirectPosition) : Boolean // 要素包含演算子
指定したGMObjectが単独のGMPointの場合,この操作は,このGMObjectの点のDirectPositionに
対して行った,集合要素に含まれるか否かの試験と一致する。点と他の幾何オブジェクトとは同一の基底
(GMObject)を共有するため,通常は,点の包含とGMObjectの集合の包含とを区別する必要はない。
次は,基本的な集合論の公理をOCLで表現したものを示す。
GMObject:
contains(that : GMObject) nd that.contains(other : GMObject)
implies contains(other)
contains(that : GMObject) nd that.contains(p : DirectPosition)
implies contains(p)
contains(point : GMPoint) mplies contains(point.position)
備考 “contains”は集合論における厳密な意味での包含であり,次元に関する制約を受けない。
GMComplex中のGMPrimitiveが包含する他のプリミティブは,次元が2以上低いものに限る
(6.3.10.4参照)。
6.2.2.18.3 intersects ブール値を返す“intersects”(交差判定)操作は,このGMObjectが他のGMObject
と交差する場合にTRUEを返す。この操作は,TransfiniteSet<DirectPosition>::intersectsのインスタンス化を
目的とする。
GMObject::intersects(pointSet : GMObject) : Boolean
GMComplex中では,GMPrimitive同士は,互いに交差しない。一般に,位相構造データは交差の情報
を得るために共有した幾何オブジェクトを使用する。
備考 この交差は,DirectPositionについての集合論における厳密な意味での共通な包含関係である。
GMPrimitiveを開集合(境界を包含しない)とみなすので,共通の端点を共有する二つの
(GMPrimitiveとしての)GMCurveは,交差しない。GMComplexを閉集合(境界を包含す
――――― [JIS X 7107 pdf 35] ―――――
次のページ PDF 36
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
- 地理情報―座標による空間参照