この規格ページの目次
35
X 7107 : 2005 (ISO 19107 : 2003)
ここで,multipointにGMObjectで定義された凸包関数を用いるとポリゴンを得る。
multipoint.convexHull () -> polygon : GMSurface
二次元のポリゴンの範囲は,その境界によって全体が定義される(ポリゴンを構成する曲面分
は,平面で,内部の制御点を必要としない。)。境界については,二次元のGMSurfaceを表現す
るためのデータ型がある。
polygon.boundary -> ring : GMRing = [{ string : GMLinestring
= <(x1,y1), (x1,y2), (x2,y2), (x2,y1), (x1,y1)>}]
よって,GMSurfaceBoundaryのレコードは,次のようになる(凸集合には“interior”の穴はな
い。)。
boundary : GMSurfaceBoundary = < exterior = ring, interior = [{}] >
これらの各型の正確な定義は,対応する箇条による。
6.3.10.4 Interior to関連 “Interior to”(内包)関連は,定義が互いに一致するGMPrimitive同士を関連
付ける。これは,応用システムがSet<DirectPosition>の解釈及びそれに関連する計算幾何を置き換え,一つ
のGMPrimitiveを他のそれの内包(interior to)として宣言することを認める。
この関連は,GMComplexに含まれるGMPrimitiveについて,ほとんどの場合,境界の情報で十分なた
め,通常は,空となる。
GMPrimitive::coincidentSubelement [0..n] : Reference<GMPrimitive>
GMPrimitive::superElement [0..n] : Reference<GMPrimitive>
この関連はGMObjectに定義した集合論の操作とdimension操作とによって制約される。
GMPrimitive:
superElement->includes(p: GMPrimitive) = GMObject::contains(p)
dimension() >= coincidentSubelement.dimension()
備考 この関連は,二つのGMPrimitiveが互いに近接しない場合には用いてはならない。これは,応
用システムが固有で不可避な丸め,切捨て,その他計算機による計算に特有の数学的な問題を
補正できるようにするためのものである。
6.3.10.5 Complex関連 GMPrimitiveは,幾つかのGMComplex(幾何複体)に含まれていてよい(6.6.2
参照)。この関連は,この(プリミティブから複体への)方向にたどれなくてもよく,それは,応用スキー
マで定める。
GMPrimitive::complex [0..n] : Reference<GMComplex>
6.3.11 GMPoint
6.3.11.1 意味 GMPoint(点)(図9参照)は,ただ一つの点からなる幾何オブジェクトを表す基本的な
データの型とする。
――――― [JIS X 7107 pdf 41] ―――――
36
X 7107 : 2005 (ISO 19107 : 2003)
Type DataType
GMPrimitive Bearing
+ angle[0,1,2] : Angle
+ direction[0,1] : Vector
Type
GMPoint
+ position : DirectPosition
-- 少なくとも片方の値は空でない。
+ boundary() : NULL [{angle.isEmpty() mplies Not direction.isEmpty()}]
+ bearing(toPoint : GMPosition) : Bearing [{direction.isEmpty() mplies Not angle.isEmpty()}]
+ GMPoint(position : GMPosition) : GMPoint
図 9 GMPoint
6.3.11.2 position “position”(位置)属性は,このGMPointのDirectPositionとする。
GMPoint::position : DirectPosition
GMPointは,それが定義している幾何を表現する上でGMPositionを使うことができないGMPrimitive
の唯一の下位クラスとする。GMPositionは,DirectPositionであるか,又はGMPoint(それからDirectPosition
を取得できる。)の参照とする。GMPointがこの手法を用いるのを禁止することによって,無限の回帰参
照を防止する。応用システムは,この論理上の問題を防ぐために他の方法を使用してもよい。
備考 多くの場合,GMPointの状態は,その位置属性によって完全に決まる。この唯一の例外は,記
号表記のような付加的な非幾何情報を提供するためにGMPointを下位クラス化する場合とす
る。
6.3.11.3 boundary “boundary”(境界取得)操作は,GMObjectの境界取得操作を特化した操作で,空
集合を示すEMPTY値を返す。
GMPoint::boundary() : EMPTY
6.3.11.4 bearing “bearing”(方向角取得)操作は,このGMPointと指定したGMPositionとの間の曲線
の(このGMPoint上での)接線の方向を返す。
GMPoint::bearing(toPoint : GMPosition) : Bearing
方向を定義するための曲線に用いる型はGMPointを定義するSCCRSによって異なる。例えば,メル
カトル図法では,曲線は,等角航路になる。三次元の地心座標系では,曲線は用いるジオイド又はだ(楕)
円体の表面に沿って2点を結ぶ測地線であってもよい。この関数に対応する実装は,用いる曲線の性質を
規定しなければならない。
備考 “Vector”型は,ISO TS 19103で定義する一般的なデータ型である。
6.3.11.5 GMPoint(コンストラクタ) GMPointコンストラクタは,指定した位置にGMPointを生成
する。
GMPoint::GMPoint(position : GMPosition) : GMPoint
6.3.12 Bearing
6.3.12.1 意味 Bearing(方向角データ)は,座標参照系における方向を表現するのに使用するデータ型と
する。これは,二次元の座標参照系では“真北から計測した角度”又はその方向の二次元の点ベクトルを
用いて実現する。三次元の座標参照系では,二つの角度又は任意の三次元ベクトルを使用してよい。角度
の集合及びベクトルの両方を用いる場合には,それらは互いに一貫性がなければならない。
――――― [JIS X 7107 pdf 42] ―――――
37
X 7107 : 2005 (ISO 19107 : 2003)
6.3.12.2 angle 二次元の座標系で通常使用されるこの形式のBearingは,その第一のangle(方位角)を参
照曲面の接平面に平行に第一座標軸(通常は,北)から反時計回りに計測する。二つの角度(angle)を指定
する場合,第二のanlge(仰角)は,通常,参照曲面の接平面に平行な局所平面に対して上方(正の角度)
又は下方(負の角度)の角度を表現する。
Bearing::angle [0,1,2] : Angle
6.3.12.3 direction 三次元の座標系で通常使用されるこの形式のBearingは,direction(方向)をその座標
系の任意のベクトルとして表現する。
Bearing::direction [0,1] : Vector
6.3.13 GMOrientablePrimitive
6.3.13.1 意味 有向プリミティブ(orientable primitive)(図10参照)は,その内部の局所座標系(多様体遷
移)に関して反対向きの新しい幾何オブジェクトを作成できるプリミティブとする。曲線の場合,その向
きは,曲線をたどる方向を反映し,すなわち,そのようなパラメタ化を意味する。境界曲線として用いる
場合,囲まれる曲面は,有向曲線の“左”にあるものとする。曲面の場合,その向きは,局所座標系が右
手系となるような“上”の方向又は右手系を形成するZ軸を満たす方向を向いた曲面を反映する。境界曲
面として用いる場合,囲まれる立体は,その曲面の“下”にあるものとする。点及び立体の向きは,三次
元空間では幾何の直接的な解釈が存在しない。
GMOrientablePrimitive(有向幾何プリミティブ)オブジェクトは,本質的に,このプリミティブと参照
したオブジェクトとの向きが一致するか一致しないかを判定する“orientation”反転可能フラグ(“+”又は
“-”のいずれか)をもった,幾何プリミティブへの参照とする。
備考 “正”のプリミティブを有向プリミティブの下位クラスとする理由は幾つかある。第一の理由
は,下位クラス化の意味による。下位クラス化は,“is type of”(の型である)階層とみなさ
れる。この視点から見れば,“正”のプリミティブは,単純に,正の向きをもつ有向プリミティ
ブである。もし逆の見方をして,有向プリミティブが“正”のプリミティブの下位クラスとし
た場合,下位クラス化の論理によって,“負”のプリミティブは,“正”のプリミティブと同じ
種類の幾何の記述を保持しなければならないこととなる。唯一可能な方法は,Geometry root(幾
何基底)パッケージにおいて“負”のプリミティブをその反対のオブジェクトを参照するもの
として分離することである。これは,下位クラス化の木を大きく複雑化する。オブジェクト数
を最少にして論理的な複雑さを避けるために,正の向きのプリミティブは,自己参照とし(か
つ対応するプリミティブの下位型のインスタンスとする。),負の向きのプリミティブはそうで
はないとする。
有向プリミティブは,(向きを示す)符号及び基本幾何プリミティブ(曲線又は曲面)によって示すこと
がある。符号データ型はISO TS 19103で定義したものを使用する。“c”を曲線とすると,“<+,c>”は正
の有向曲線となり,“<-,c>”は負の有向曲線となる。ほとんどの場合,レコードのための構文の“< , >”
を省いても混乱は起こらないので,“<+,c>”を“+c”又は単に“c”と,また“<-,c>”を“-c”と,そ
れぞれ書いてもよい。曲線が正しく一列に並ぶ場合,次のように曲線の空間計算を実行することができる。
c及びdは,GMOrientableCurveで,c.endPoint = d.startPointとすると
( c + d ) ==: GMCompositeCurve = < c,d >
6.3.13.2 orientation 有向プリミティブの“orientation”(向き属性)は,このオブジェクトが表現する向
きが二つのうちのいずれであるかを決定する。
GMOrientablePrimitive::orientation : Sign
――――― [JIS X 7107 pdf 43] ―――――
38
X 7107 : 2005 (ISO 19107 : 2003)
Type [{(orientation = "+") mplies (primitive = self )}]
GMPrimitive
+primitive 1
Type
0,2
GMOrientablePrimitive
Oriented
+proxy + orientation : Sign
Type Type
GMOrientableCurve GMOrientableSurface
+ boundary() : GMCurveBoundary + boundary() : GMSurfaceBoundary
Type Type
GMCurve GMSurface
[{primitive.isTypeOf(GMCurve)}] [{primitive = self}] [{primitive.isTypeOf(GMSurface)}]
[{orientation = "+"}]
図 10 GMOrientablePrimitive
6.3.13.3 Oriented関連 一次元又は二次元の各GMPrimitiveは,それぞれ異なる向きの二つの
GMOrientablePrimitiveへの関連をもつ。
GMPrimitive::proxy [0,2] : Reference<GMOrientablePrimitive>;
GMOrientablePrimitive::primitive [1] : Reference<GMPrimitive>;
曲線及び曲面には,それぞれの幾何オブジェクトに対してちょうど二つの有向プリミティブがある。
GMPrimitive:
(proxy->notEmpty) = (dimension = 1 or dimension = 2);
GMOrientablePrimitive:
a, b :GMOrientablePrimitive
((a.primitive = b.primitive) nd (a.orientation = b.orientation)) mplies a = b;
向きが“+”(正)の場合,GMOrientablePrimitiveは,対応するGMCurve又はGMSurfaceでなければ
ならない。
GMOrientableCurve:
orientation = “+” implies self.isTypeOf(GMCurve);
GMOrientableSurface:
orientation = “+” implies self.isTypeOf(GMSurface);
6.3.14 GMOrientableCurve
6.3.14.1 意味 GMOrientableCurve(有向曲線)は,GMOrientablePrimitiveから継承した向き及び曲線か
らなる。向きが“+”の場合,GMOrientableCurveは,GMCurveでなければならない。向きが“-”の場
合,GMOrientableCurveは,曲線上の通過方向と逆向きにパラメタ化されたもう一つのGMCurveに関連
をもたなければならない。
GMOrientableCurve:
[{Orientation = "+" implies primitive = self}];
――――― [JIS X 7107 pdf 44] ―――――
39
X 7107 : 2005 (ISO 19107 : 2003)
[{Orientation = "-" implies
primitive.parameterization(length()-s) = parameterization(s)}];
6.3.14.2 boundary “boundary”(境界取得)操作は,GMObject及びGMPrimitiveで定義した境界取得
操作を特化した操作とする。境界取得操作は,曲線の始点及び終点からなる点の順序対を返す。曲線が閉
じている場合,境界は空とする。GMCurveBoundaryデータ型は,曲線の境界の構造を単純化するために
定義している(6.3.5参照)。
GMOrientableCurve::boundary() : GMCurveBoundary
6.3.15 GMOrientableSurface
6.3.15.1 意味 GMOrientableSurface(有向曲面)は,GMOrientablePrimitiveから継承した向き及び曲線
からなる。向きが“+”の場合,GMOrientableSurfaceは,GMSurfaceでなければならない。向きが“-”
の場合,GMOrientableSurfaceは,“曲面の上方”を意味するupNormalがこのGMOrientableSurfaceの方
向と逆向きとなるような,GMSurfaceを参照しなければならない(6.4.33.2参照)。
GMOrientableSurface:
[{Orientation = "+" implies primitive = self}];
[{(Orientation = "-" and TransfiniteSet::contains(p :DirectPosition))
implies (primitive.upNormal(p) = - self.upNormal(p))}];
6.3.15.2 boundary “boundary”(境界取得)操作は,GMObjectで定義した境界取得操作を,
GMOrientableSurfaceに対応した戻り値の型をもつものとして特化したものとする。この操作は,この
GMSurfaceの範囲を限定するGMOrientableCurveの環状列の集合を返す。これらの曲線は,この
GMSurfaceの各境界要素をそれぞれ一つの曲線環状列として構成する。
GMOrientableSurface::boundary() : GMSurfaceBoundary;
“exterior”境界を明確に定義しない場合,GMSurfaceBoundaryのすべての輪は“interior”境界として列
挙されなければならない。
備考 曲面の外部境界の概念は,二次元平面においてだけ有効とする。有界な筒は,二つの境界要素
をもち,そのどちらも論理的に外部とすることはできない。したがって,三次元では,すべて
の場合を満たすような“外部”についての有効な定義はない。
6.3.16 GMCurve
6.3.16.1 意味 GMCurve(曲線)(図11参照)は,GMOrientablePrimitiveを通じてGMPrimitiveから派
生した下位型とする。これは,一次元幾何の基本的な要素となる。曲線は開区間の連続な像で,これによ
って,tを実パラメタ,Enをn(通常は,座標参照系によって決定される二又は三)次元ユークリッド空間
としてc(t):(a,b)→Enとするようなパラメタ化関数で表現できる。同一の曲線の像を同一の方向に描く,
e(t) = c(a + t(b-a)):(0,1)→Enといった正の伸縮又は線形転位のような他のパラメタ化表現はこの曲線に対す
る等しい表現とする。単純化のため,GMCurveは弧長によってパラメタ化することとし,これにしたが
ってGMGenericCurve (6.4.7参照)から継承するパラメタ化操作は0から曲線の長さまでの間のパラメ
タの値で有効となる。
曲線は,その座標系の下で連続かつ連結で可測な長さをもつ。この曲線の向きは,パラメタ化表現によ
って決定し,このパラメタ化表現の導関数を近似する接方向関数と一致し,常に“前”方向を指向する。
c(t):(a,b)→Enで定義される曲線の逆向きのパラメタ化表現はs(t) = c(a + b - t) :(a,b)→Enの形式の関数で定
義してよい。
一つの曲線は,一つ以上の曲線分からなる。曲線の各曲線分は,異なる内挿法を用いて定義してよい。
――――― [JIS X 7107 pdf 45] ―――――
次のページ PDF 46
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
- 地理情報―座標による空間参照