JIS X 7107:2005 地理情報-空間スキーマ | ページ 28

130
X 7107 : 2005 (ISO 19107 : 2003)
をとり,それをデータ型と同様のコンストラクタに対する引数として使用するような,既定のコンストラ
クタを仮定する。これは,SQL99で行われる方法と非常によく一致する。SQLは,挿入の意味での要件に
基づき,任意のUDT(利用者定義型)に対して自動的に既定のコンストラクタを生成する。“< >”がレコ
ード又は順序集合(リスト)を記述し,“[{}]”が非順序集合又は多重集合を記述することに注意する必要
がある。
構築は,点の生成から開始できる。ここでは,GMPointは,型であるためインスタンス化できないこと
による小さな問題がある。応用スキーマを適合させるため,GMPointの下位型となるインスタンス化可能
なクラスを含まなければならず,そして,そのクラスは,次の生成段階構文で使用するGMPointをそれ
ぞれ置き換えなければならない。まず,[{P1, ,,, P7}] として識別する黒点で示した七つのGMPoint
を生成する。
P1 = GMPoint < position = < 1.00, 5.00 > >
P2 = GMPoint < position = < 3.00, 5.00 > >
P3 = GMPoint < position = < 3.00, 2.00 > >
P4 = GMPoint < position = < 1.75, 2.75 > >
P5 = GMPoint < position = < 1.50, 4.50 > >
P6 = GMPoint < position = < 2.00, 3.25 > >
P7 = GMPoint < position = < 5.00, 4.00 > >
Insert P1,P2,P3,P4,P5,P6,P7 into Datastore
P1 (1.00, 5.00) P2 (3.00, 5.00) (6.00, 5.00)
C1
x
P5 (1.50, 4.50)
S2
(1.90, 4.25)
C5 x
P7 (5.00, 4.00)
x (2.00, 4.00) (4.25, 4.00)
S3
C3
C4 C2
x
(4.25, 3.25) x (5.00, 3.25)
P6(2.00, 3.25) C6
S1
P4 (1.75, 2.75)
x x
(1.00, 2.00) P3 (3.00, 2.00) (6.00, 2.00)
図 C.1 複数のGMPrimitiveからなるデータ集合
これらの点が存在することによって,[{CS1,CS2,CS3,CS4,CS5,CS6,CS7}] として識別する七つ
のGMCurveSegmentの段階構文を継続して構築することができ,それらをその後の曲線の構築に使用す
ることができる。GMCurveSegmentの下位型は,データ型であり,永続的な識別値を保持できないことに

――――― [JIS X 7107 pdf 136] ―――――

                                                                                            131
X 7107 : 2005 (ISO 19107 : 2003)
注意が必要である。すなわち,次の曲線分の定義に使用する変数は“ヒープ”又は局所変数であって,構
築の段階では定義されるが,オブジェクト型(この場合,後で定義する曲線)のメンバとして含まれるま
で永続的に保持されるものではない。ここで定義する曲線分は,折れ線又は円弧のいずれかとする。
CS1 = GMCurveSegment <controlPoint = <P1, P2>, interpolation = “linear”>
CS2 = GMCurveSegment <controlPoint = <P2, P3>, interpolation = “linear”>
CS3 = GMCurveSegment <controlPoint = <P2, (6, 5), (6, 2), P3>,
interpolation = “linear” >
CS4 = GMCurveSegment <controlPoint = <P1, (1, 2), P3>, interpolation = “linear”>
CS5 = GMCurveSegment <controlPoint = <P5, (1.9, 4.25), (2, 4)>,
interpolation = “arc”>
CS6 = GMCurveSegment <controlPoint = <(2, 4), P6>, interpolation = “linear”>
CS7 = GMCurveSegment <controlPoint = <P7, (4.25, 4), (4.25, 3.25), (5, 3.25), P7>,
interpolation =“linear”>
ここでは,既にデータ保持領域に記録されたP1のような永続的変数は,局所実体と永続実体との同期
を保持しつつ操作できるものと暗黙的に仮定する。したがって,GMPositionデータ型に基づいたGMPoint
を使用して,曲線分を(後の曲線のメンバとして)挿入することができる。SQL言語応用プログラムイン
タフェース(API)だけを使用するオブジェクトリレーショナルデータベースの場合,応用システムは変
数への参照をたどって,続く挿入文でそれらを使用する。同様に同じデータ保持領域へのオブジェクトイ
ンタフェースを使用する場合,データベースAPIは,この参照をたどる操作をプログラマに対して透過な
ものにする。
このようにして曲線分は,[{C1, ... C6}] として識別する六つのGMCurveの永続オブジェクトを構築す
るのに使用することができる。インスタンス化可能な型についての同じ解説が適用され,そのため局所応
用スキーマは,GMCurveの代わりに,必要とするGMCurveの下位型を使用しなければならない。
C1 = GMCurve segments = <CS1>
C2 = GMCurve segments = <CS2>
C3 = GMCurve segments = <CS3>
C4 = GMCurve segments = <CS4>
C5 = GMCurve segments = <CS5, CS6>
C6 = GMCurve segments = <CS7>
Insert C1,C2,C3,C4,C5,C6 into Datastore
さらに,曲線は曲面の構築に使用することができる。この場合,この座標空間は二次元なので,平面多
角形のコンストラクタを使用することができる。その曲面のupNormal(上方法線)は,曲面に対する標準
のupNormal(しばしばkとして表記する。)にほかならないため,指定する必要はない。完全位相複体を
定義することが目的であるため,座標面の範囲を曲面で完全に覆う必要がある。全域フェイスはしばしば
“フェイス0”として参照されるため,ここではそのフェイスの幾何実現をS0として定義する。そこで,
[{S0, S1, S2, S3}] として識別される四つのGMSurfaceを定義する。
S0 = GMSurface patch = <GMPolygon interior = << C1, C3, -C4 >> >
-- この全域フェイスは完全平面グラフをもつ位相複体の構築にだけ必要である。
S1 = GMSurface patch = <GMPolygon exterior = < C4, -C2, -C1 >,interior = << C5, -C5 >> >
S2 = GMSurface patch = <GMPolygon exterior = < -C3, C2 >,interior = << -C6 >> >

――――― [JIS X 7107 pdf 137] ―――――

132
X 7107 : 2005 (ISO 19107 : 2003)
S3 = GMSurface patch = <GMPolygon exterior = < C6 > >
Insert S0,S1,S2,S3 into Datastore
GMObjectの集まりの型であるGMComplexの生成のために必要な幾何要素がすべて定義できたので,
あとは必要なオブジェクトの完全なリストを与えさえすればよい。これは,TPComplexの生成に直接的
につなげることができる。
GComplex = GMComplex < surfaces = [{S0, S1, S2, S3}],
curves = [{C1, C2, C3, C4, C5, C6}]
points = [{P1, P2, P3, P4, P5, P6, P7}] >
TComplex = TPComplex < realization = GComplex >
Insert GComplex,TComplex into Datastore
これで,この箇条の最初の図式にある幾何データを幾何及び位相の記述によって構築する作業が完了し
た。この規格の対象からは外れるが,地物の構築(図C.2)の事例を次のようにまとめる。
Lake = AreaFeature featureType=“Hydrography::WaterBody”, extent = S3
centerline = C2
RoadCenterline = LineFeature featureType = “Transportation::Road”,
RoadArea = RoadCenterLine.centerline.buffer < distance = 10m >
RoadExtent = AreaFeature featureType = “LandCover::Road”, extent = RoadArea
RoadInstance = ComplexFeature featureType = “LandUse::Road”, featureComponents = [{RoadCenterline,
RoadArea}]
Trail = LineFeature featureType = “CulturalFacilities::HikingTrail”, centerline = C5
School = PointFeature featureType = “CulturalFacilities::School”, Location = P4
Insert Lake, RoadCenterline, RoadExtent, RoadInstance, Trail, School into Datastore
School
図 C.2 サンプルデータの単純な地図表現

――――― [JIS X 7107 pdf 138] ―――――

                                                                                            133
X 7107 : 2005 (ISO 19107 : 2003)
C.1.3 幾何オブジェクトの三次元座標参照系 図C.3は,平面で構成された三次元立体である。それは直
方体で,そこに直方体のくぼみを切り取っており,さらにそのくぼみが1単位だけ沈んだ状態がさかさま
になったものである。
P1 = GMPoint position = <2.00, 5.00, 4.00>
P2 = GMPoint position = <5.00, 5.00, 4.00>
P3 = GMPoint position = <5.00, 3.00, 4.00>
P4 = GMPoint position = <2.00, 3.00, 4.00>
P5 = GMPoint position = <2.00, 5.00, 2.00>
P6 = GMPoint position = <5.00, 5.00, 2.00>
P7 = GMPoint position = <5.00, 3.00, 2.00>
P8 = GMPoint position = <2.00, 3.00, 2.00>
P9 = GMPoint position = <1.00, 5.00, 1.00>
P10 = GMPoint position = <9.00, 5.00, 1.00>
P11 = GMPoint position = <9.00, 1.00, 1.00>
P12 = GMPoint position = <1.00, 1.00, 1.00>
P13 = GMPoint position = <1.00, 5.00, 7.00>
P14 = GMPoint position = <9.00, 5.00, 7.00>
P15 = GMPoint position = <9.00, 1.00, 7.00>
P16 = GMPoint position = <1.00, 1.00, 7.00>
(1,5,7)
(1,1,7) (2,5,4) (9,5,7)
(1,5,1) (5,5,4)
(2,5,2)
(2,3,4)
(9,1,7)
(5,3,4)
(2,3,2) (5,5,2) (9,5,1)
(1,1,1)
(5,3,2)
(9,1,1)
図 C.3 座標表記をもつ三次元幾何オブジェクト
この曲面は(自身を包み込んで位相円柱を形成する)GMGriddedSurface及び(位相円柱の両端の蓋と
して振る舞う)二つのGMPolygonとして表現され,すべて平面による内挿である。
S1 = GMSurface patch =

――――― [JIS X 7107 pdf 139] ―――――

134
X 7107 : 2005 (ISO 19107 : 2003)
< <GMBilinearGrid rows = 4, columns = 5,
controlPoint = < <P1, P2, P3, P4, P1>,
<P5, P6, P7, P8, P5>
<P9, P10,P11,P12,P9>,
<P13,P14,P15,P16,P13> >,
GMPolygon exteriorVertices = <P1, P2, P3, P4, P1 >,
GMPolygon exteriorVertices = <P16,P15,P14,P13,P16> >
図C.4の例はGMPoint [P1],GMCurve [C1]及びGMSurface [S1]からなる。GMSurfaceのSegmentation
関連は九つのGMSurfacePatchを指している。一つ目のGMSurfacePatchは破線の左側の範囲を表す。他
の八つのGMSurfacePatchはすべてGMTriangleであり,破線の右側の範囲を表す。
P1 (4,12,0) (8,12,0) C1 (14,12,0)
X
X (11,10,1)
S1
X
(8,7,0)
X (14,6,0)
(12,4,2)
X X X
(4,2,0) (8,2,0) (14,2,0)
図 C.4 曲面の例
P1 = GMPoint (4,12,0)
C1 = GMCurve segment = <Segment 1>
Segment 1 = GMCurveSegment controlPoint = <(4,12,0), (4,2,0), (14,2,0), (14,12,0),
(4,12,0)>
Patch1 = GMPolygon exterior = <P1, (4,2,0), (8,2,0), (8,12,0), P1>
Post1 = GMPosition (8,12,0)
Post2 = GMPosition (14,12,0)
Post3 = GMPosition (11,10,1)
Post4 = GMPosition (8,7,0)
Post5 = GMPosition (14,6,0)
Post6 = GMPosition (12,4,2)
Post7 = GMPosition (8,2,0)
Post8 = GMPosition (14,2,0)
T1 = GMTriangle exterior = <Post1, Post2, Post3, Post1>
T2 = GMTriangle exterior = <Post1, Post3, Post4, Post1>
T3 = GMTriangle exterior = <Post3, Post5, Post4, Post3>
T4 = GMTriangle exterior = <Post2, Post5, Post3, Post2>
T5 = GMTriangle exterior = <Post4, Post5, Post6, Post4>

――――― [JIS X 7107 pdf 140] ―――――

次のページ PDF 141

JIS X 7107:2005の引用国際規格 ISO 一覧

  • ISO 19107:2003(IDT)

JIS X 7107:2005の国際規格 ICS 分類一覧

JIS X 7107:2005の関連規格と引用規格一覧

規格番号
規格名称
JISX7111:2014
地理情報―座標による空間参照