• 検索結果がありません。

Microsoft PowerPoint - ogc_spec.ppt[fiLJݔæ‡è’êŠp]

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - ogc_spec.ppt[fiLJݔæ‡è’êŠp]"

Copied!
45
0
0

読み込み中.... (全文を見る)

全文

(1)

®

Oracle Spatialにおける

OGC仕様の実装と機能概要

日本オラクル株式会社

日本オラクル株式会社

日本オラクル株式会社

日本オラクル株式会社

日本オラクル株式会社

日本オラクル株式会社

日本オラクル株式会社

日本オラクル株式会社

この資料は、2000年5月25日に東京ビッグサイトで行われた空間データセミ

ナーにて用いたものです。

資料中のOracle Spatialの関数や機能については、Oracle8i R8.1.6 Spatial

の機能を記載しています。

(2)

®

Agenda

Spatial概要

概要

概要

概要

Spatialで何ができるか?

で何ができるか?

で何ができるか?

で何ができるか?

– Spatialデータモデル

データモデル

データモデル

データモデル

– 主要関数

主要関数

主要関数

主要関数

Oracle Corp.の取り組み

の取り組み

の取り組み

の取り組み

(3)

#1

(4)

80

年代前半年代前半年代前半年代前半

80

年代後半年代後半年代後半年代後半

90

年代前半年代前半年代前半年代前半

90

年代後半年代後半年代後半年代後半 シンプルな シンプルな シンプルな シンプルな

OLTP

Active

Database

データウェアハウス

データウェアハウス

データウェアハウス

データウェアハウス

ハイ・エンド

ハイ・エンド

ハイ・エンド

ハイ・エンド

OLTP

OLTP

OLTP

OLTP

Web対応

対応

対応

対応

データベース

データベース

データベース

データベース

データ中心型

データ中心型

データ中心型

データ中心型

アプリケーション

アプリケーション

アプリケーション

アプリケーション

プラットフォーム

プラットフォーム

プラットフォーム

プラットフォーム

としての

としての

としての

としてのDB

DB

DB

DB

リレーショナル

リレーショナル

リレーショナル

リレーショナルDB

DB

DB

DB

初期

初期

初期

初期

クライアント・サーバー

クライアント・サーバー

クライアント・サーバー

クライアント・サーバー

リレーショナル

リレーショナル

リレーショナル

リレーショナルDB

DB

DB

DB

エンタープライズ

エンタープライズ

エンタープライズ

エンタープライズ

リレーショナル

リレーショナル

リレーショナル

リレーショナルDB

DB

DB

DB

インターネット

インターネット

インターネット

インターネット

コンピューティング

コンピューティング

コンピューティング

コンピューティング

データベース・テクノロジーの変遷

データベース・テクノロジーの変遷

データベース・テクノロジーの変遷

データベース・テクノロジーの変遷

(5)

®

Oracle8i Spatialの変遷

Muti-Dimensional Dimensional

Oracle7.3.3

Oracle8

Oracle8i

Context Context Option Option Spatial Data Spatial Data Option Option Image Image Cartridge Cartridge Visual Image Visual Image Retrieval Retrieval Cartridge Cartridge Time Series Time Series Cartridge Cartridge Context Context Cartridge Cartridge Spatial Spatial Cartridge Cartridge

Oracle7.2

国内では認定アプリ 国内では認定アプリ ケーション限定で ケーション限定で R8.0.5 R8.0.5 より出荷より出荷 AVS/Express / Advanced Visual Systems

AVS/Express / Advanced Visual Systems

Formida Fire / Formida Software

Formida Fire / Formida Software

GeoMedia / Intergraph

GeoMedia / Intergraph

GeoMedia Pro / Intergraph

GeoMedia Pro / Intergraph

ModelServer Continuum / Bentley Systems

ModelServer Continuum / Bentley Systems

interMedia interMedia Image Image Audio Audio Video Video Text Text Locator Locator P lug - I n s P lug - I n s Se rv ic e s Se rv ic e s

Spatial

Spatial

Visual Image Visual Image Retrieval Retrieval Time Series Time Series 国内では 国内では認定アプリ認定アプリ ケーション限定で ケーション限定でR8.1.6R8.1.6 より出荷開始予定 より出荷開始予定 ( (20002000年年77月~月~88月)月)

(6)

® GISアプリアプリアプリアプリC GISアプリアプリアプリアプリA GISアプリアプリアプリアプリB

従来の

GISシステムの問題点(1)

GIS

GIS

データが

データが

データが

データが

データが

データが

データが

データが

統一されていない

統一されていない

統一されていない

統一されていない

統一されていない

統一されていない

統一されていない

統一されていない

・GISデータはアプリによってデータ フォーマットが異なる ・異なるアプリ間でデータの連携を 行なうには、データの変換が必須 ・同じ情報でもアプリが異なると データは別々に用意

一般にGISアプリケーションが異なると、GISデータのフォーマットも異なりま

す。

GISアプリケーションA用のGISデータを GISアプリケーションBで使用する

ことは基本的にはできません。GISデータをGISアプリケーションB用にコン

バートすることで、使用可能となる場合もありますが、時間、コストがかかって

しまいます。

(7)

®

GISデータの標準化

GISアプリアプリアプリアプリA GISアプリアプリアプリアプリB GISアプリアプリアプリアプリC

Oracle Spatial

Oracle SpatialはOGCに準拠した標準化された形でGISデータを格納します。

したがって、異なるアプリケーションでもGISデータを共用することが可能で

す。いちいちデータをコンバートする必要はありません。

また、データが標準化されることで、必要に応じて必要なデータだけを差し

替えて使用することが可能になります。

(8)

105

GISデータを使用する場合、そのGISデータは関連した属性データを有して

います。

例えば、山手通りから500m以内のコンビニの売上高を計算する場合、GIS

データとして、山手通りの形状と、各コンビニ店舗の位置情報を管理しておく

必要があります。また、各コンビニ店舗は、住所、電話番号、売上高などの属

性情報を保持しています。

ビジネスでGISデータを用いる場合、GIS情報と属性情報を絡めて使用する

場合がほとんどです。しかし、従来、GISデータはGIS専用サーバーで管理さ

れ、属性情報は

RDBMSサーバーで管理されるといった二重管理が行なわ

れてきました。

マシン管理者の負荷は高くなり、コストも増大します。また、GISデータと属性

データの整合性を保つための仕組を組み込む必要があります。

®

従来の

GISシステムの問題点(2)

空間データ

空間データ

空間データ

空間データ

属性データ

属性データ

属性データ

属性データ

GISアプリケーションアプリケーションアプリケーションアプリケーション MISアプリケーションアプリケーションアプリケーションアプリケーション

データの二重管理

データの二重管理

データの二重管理

データの二重管理

(9)

®

・空間データと属性データを一元管理

・空間データと属性データを一元管理

・空間データと属性データを一元管理

・空間データと属性データを一元管理

Desktop Desktop GIS GIS Client Client Web Web Browser Browser Spatial MIS Spatial MIS Proprietary System Proprietary System Records

空間データと属性データの融合

Spatial

Oracle SpatialではGISデータも属性データもOracle DBで一元管理します。

複数のサーバを管理する必要はありません。

また、空間データもトランザクションの対象となります。両者の整合性は

Oracleによって保証されます。

(10)

®

Oracle Spatialとは

OracleDBで空間データを扱うための関数、

で空間データを扱うための関数、

で空間データを扱うための関数、

で空間データを扱うための関数、

プロシージャ、演算子を提供するオプション

プロシージャ、演算子を提供するオプション

プロシージャ、演算子を提供するオプション

プロシージャ、演算子を提供するオプション

Oracleデータベースでの空間データの格納、

データベースでの空間データの格納、

データベースでの空間データの格納、

データベースでの空間データの格納、

アクセス、分析を効率的に処理することを目

アクセス、分析を効率的に処理することを目

アクセス、分析を効率的に処理することを目

アクセス、分析を効率的に処理することを目

的とする

的とする

的とする

的とする

Oracle Spatialは - 多次元データを格納することが可能 - 空間データの演算は2次元データに対して のみ有効

Oracle Spatialは、

・多次元の空間データの格納

・空間データの演算(位相関係)

を行なうことができます。

ただし、次の点に注意してください。

Oracle Spatialでは、格納できる空間データは4次元までです。

また、Oracle Spatialが提供する関数を用いて演算を行なう場合、その対象と

できるのは2次元のデータです。もし、DB中に格納された3次元データを演

算にかけた場合、Spatialはそれのz値を無視して、x,yからなる2次元データと

見なして計算を行ないます。

(11)

®

東京駅から半径

東京駅から半径

東京駅から半径

東京駅から半径

500m以内の

以内の

以内の

以内の

ATMを検

を検

を検

を検

索する

索する

索する

索する

国道1号線が渡る一級河川を検索する

国道1号線が渡る一級河川を検索する

国道1号線が渡る一級河川を検索する

国道1号線が渡る一級河川を検索する

台風が通過したエリアに住む保険加入

台風が通過したエリアに住む保険加入

台風が通過したエリアに住む保険加入

台風が通過したエリアに住む保険加入

者のリストを求める

者のリストを求める

者のリストを求める

者のリストを求める

Spatialでできること

地図情報をグラフィカルに表示する

といった、視覚的に訴える機能は

備えていません

Oracle Spatialは、クライアントマシンに画像を表示する機能は備えていま

せん。Spatialが担当するのは、サーバー側でのGISデータの格納・管理・演

算です。

(12)

®

ORDB

Oracle8 R8.0より、Oracleデータベースは

オブジェクト・リレーショナル・データベース

となりました。

Oracle RDBMSはOracle8 R8.0より、オブジェクト・リレーショナル・データベー

スとなりました。

Oracle Spatialはこのオブジェクト機能を利用しています。

(13)

®

ORDBによる空間データの格納

山手線 中央線 (0,0) (10,9) 番号 10 20 ... 名称 名称 名称 名称 山手 山手 山手 山手 中央 中央 中央 中央 ... 営業キロ 営業キロ 営業キロ 営業キロ xxx xxx ... 地図情報 地図情報 地図情報 地図情報 (5,1) , (7,2) , (7,6) , ... , (5,1) (5,1) , (7,2) , (7,6) , ... , (5,1) (5,1) , (7,2) , (7,6) , ... , (5,1) (5,1) , (7,2) , (7,6) , ... , (5,1) (7,2) , (5,4) , (0,4) (7,2) , (5,4) , (0,4) (7,2) , (5,4) , (0,4) (7,2) , (5,4) , (0,4) ... ... ... ... 1つのセルに複数のデータが 格納されている

(14)

®

Spatialデータのデータ型

Spatialデータは、オブジェクト型であるmdsys.sdo_geometry型として格納します mdsys.sdo_geometry ( GTYPE , SRID , SDOPOINT , mdsys.sdo_elem_info_array ( a1 , a2 , a3 , .... ) , mdsys.sdo_ordinate_array (x1 , y1 , x2 , y2 , x3 , y3 , ... , xn , yn) );

GTYPE ... ジオメトリのタイプを指定 point/linestring/polygon/collection/multipoint/ ... etc SRID ... Spatial Reference System ID

SDOPOINT ... ジオメトリが1つの点で構成される場合、座標を指定する mdsys.sdo_elem_info_array ... ジオメトリを構成する座標の解釈を指定する mdsys.sdo_ordinate_array ... ジオメトリを構成する座標を指定する

(15)

®

insert文による新規ジオメトリの追加

1(5,10) 2(10,5) 3(15,10) 4(20,5)

insert into star values ( ‘カシオペアカシオペアカシオペアカシオペア’, mdsys.sdo_geometry (2,null,null, mdsys.sdo_elem_info_array(1,2,1), mdsys.sdo_ordinate_array (5,10,10,5,15,10,20,5,25,10) ) );

CREATE TABLE star ( name VARCHAR2(30),

stargeo mdsys.SDO_GEOMETRY);

(16)

® 点(ポイント) 点(ポイント)点(ポイント) 点(ポイント) 線(ライン)線(ライン)線(ライン)線(ライン) ポリゴン(多角形)ポリゴン(多角形)ポリゴン(多角形)ポリゴン(多角形) 穴空きポリゴン 穴空きポリゴン 穴空きポリゴン 穴空きポリゴン 自己交差するライン自己交差するライン自己交差するライン自己交差するライン 自己交差するポリゴン自己交差するポリゴン自己交差するポリゴン自己交差するポリゴン 可能 可能可能 可能 不可能不可能不可能不可能 可能 可能 可能 可能

Spatialが扱うことができる基本図形

Spatialでは、演算の対象となる図形を、これら基本図形の集合として定義します

Spatialが扱える基本的な図形は

・点

・線

・多角形

の3つです。

ちなみに、Oracle8iのオブジェクト・リレーショナル型では上記に加えて、

・円

・弧

を扱うことが可能です。

(注意)

Oracle8iのリレーショナル型では点、線、多角形のみ扱える

(17)

®

Spatialが扱うことができる基本図形

円弧線ストリング 円弧線ストリング円弧線ストリング 円弧線ストリング 円弧ポリゴン円弧ポリゴン円弧ポリゴン円弧ポリゴン 複合ポリゴン複合ポリゴン複合ポリゴン複合ポリゴン 複合線ストリング 複合線ストリング 複合線ストリング 複合線ストリング 円円円円 四角形四角形四角形四角形(2点指定)

(18)

®

Geometry Class Hierarchy

Geometry

Point Curve Surface GeometryCollection

LineString Line LinerRing Polygon Multi-Surface Multi-Curve Multi-Point Multi-Polygon Multi-LineString ※OpenGIS Simple Features Specification For SQL Revision 1.1 Figure2.1より抜粋

(19)

®

Agenda

Spatial概要

概要

概要

概要

Spatialで何ができるか?

で何ができるか?

で何ができるか?

で何ができるか?

– Spatialデータモデル

データモデル

データモデル

データモデル

– 主要関数

主要関数

主要関数

主要関数

Oracle Corp.の取り組み

の取り組み

の取り組み

の取り組み

(20)

®

データモデル(レイヤ)

東京

東京

東京

東京

23区と

区と

区と

区と

JR路線の空間問合せを行なうに

路線の空間問合せを行なうに

路線の空間問合せを行なうに

路線の空間問合せを行なうに

..

JRと区は性質が異なるため、と区は性質が異なるため、と区は性質が異なるため、と区は性質が異なるため、2つのグループ(つのグループ(つのグループ(つのグループ(23区グルー区グルー区グルー区グルー プと プと プと プとJRグループ)を定義する。グループ)を定義する。グループ)を定義する。グループ)を定義する。

このグループのことをこのグループのことをこのグループのことをこのグループのことをレイヤレイヤレイヤレイヤと呼ぶ。と呼ぶ。と呼ぶ。と呼ぶ。

23区レイヤには、新宿区と豊島区を定義する。区レイヤには、新宿区と豊島区を定義する。区レイヤには、新宿区と豊島区を定義する。区レイヤには、新宿区と豊島区を定義する。

JRレイヤには、山手線と中央線を定義する。レイヤには、山手線と中央線を定義する。レイヤには、山手線と中央線を定義する。レイヤには、山手線と中央線を定義する。

演算の対象となる最小単位「新宿区」、「豊島区」、「山手線」、演算の対象となる最小単位「新宿区」、「豊島区」、「山手線」、演算の対象となる最小単位「新宿区」、「豊島区」、「山手線」、演算の対象となる最小単位「新宿区」、「豊島区」、「山手線」、 「中央線」を 「中央線」を 「中央線」を 「中央線」をジオメトリジオメトリジオメトリジオメトリ(または形状)と呼ぶ。(または形状)と呼ぶ。(または形状)と呼ぶ。(または形状)と呼ぶ。

ジオメトリには、それを一意に識別する番号ジオメトリには、それを一意に識別する番号ジオメトリには、それを一意に識別する番号ジオメトリには、それを一意に識別する番号(GID)を振る。を振る。を振る。を振る。 ※簡略化のため、東京23区は新宿区と豊島区、JRは山手線と中央線のみ考慮 JRレイヤ 201 山手線 202 中央線 23区レイヤ 101 新宿区 102 豊島区 山手線 中央線 豊島区 新宿区

ここでは、「東京23区とJR路線の空間問合せ」を例にあげ、それを行なうまで

の手順を簡単に説明します。

どのようにして空間問合せを行なうか、その流れを掴んでください。細かな

説明は後に行ないますので、ここでは雰囲気を掴んでいただければ結構で

す。

(21)

®

データモデル

(座標)

ジオメトリは座標を用いてデータベース内で定義さジオメトリは座標を用いてデータベース内で定義さジオメトリは座標を用いてデータベース内で定義さジオメトリは座標を用いてデータベース内で定義さ れる。 れる。 れる。 れる。

ジオメトリの座標の基準とするため、座標軸を定義ジオメトリの座標の基準とするため、座標軸を定義ジオメトリの座標の基準とするため、座標軸を定義ジオメトリの座標の基準とするため、座標軸を定義 する必要がある。今回は する必要がある。今回は する必要がある。今回は する必要がある。今回は(0,0)~~~~(100,100)の座標の座標の座標の座標 系の中で各ジオメトリを定義する。 系の中で各ジオメトリを定義する。 系の中で各ジオメトリを定義する。 系の中で各ジオメトリを定義する。

座標軸は座標軸は座標軸は座標軸は(x,y)でもでもでもでも(緯度、経度)でも良い。緯度、経度)でも良い。緯度、経度)でも良い。緯度、経度)でも良い。 その格納データにあった定義を行なう。 その格納データにあった定義を行なう。 その格納データにあった定義を行なう。 その格納データにあった定義を行なう。

(100,100)

(0,0)

JRレイヤ 201 山手線 202 中央線 23区レイヤ 101 新宿区 102 豊島区

(22)

®

データモデル(エレメント)

中央線ジオメトリは次のような線から構成される。中央線ジオメトリは次のような線から構成される。中央線ジオメトリは次のような線から構成される。中央線ジオメトリは次のような線から構成される。 (100,100) (0,0) ! このようなジオメトリを構成する要素をこのようなジオメトリを構成する要素をこのようなジオメトリを構成する要素をこのようなジオメトリを構成する要素をエレメントエレメントエレメントエレメントと呼ぶ。と呼ぶ。と呼ぶ。と呼ぶ。 ! エレメントは点、線、円弧、円、ポリゴンとして構成される。エレメントは点、線、円弧、円、ポリゴンとして構成される。エレメントは点、線、円弧、円、ポリゴンとして構成される。エレメントは点、線、円弧、円、ポリゴンとして構成される。

(23)

®

データモデル(エレメント)

複数のエレメントが1つのジオ

複数のエレメントが1つのジオ

複数のエレメントが1つのジオ

複数のエレメントが1つのジオ

メトリを構成する例として「ハワ

メトリを構成する例として「ハワ

メトリを構成する例として「ハワ

メトリを構成する例として「ハワ

イジオメトリ」が考えられる。

イジオメトリ」が考えられる。

イジオメトリ」が考えられる。

イジオメトリ」が考えられる。

エレメント1 エレメント2 エレメント3 エレメント4 エレメント5 エレメント6 エレメント7 ハワイジオメトリ ハワイジオメトリハワイジオメトリ ハワイジオメトリ

ハワイジオメトリは

ハワイジオメトリは

ハワイジオメトリは

ハワイジオメトリは

7つのエレメ

つのエレメ

つのエレメ

つのエレメ

ントから構成される。

ントから構成される。

ントから構成される。

ントから構成される。

各エレメント(島)はポリゴンとし

各エレメント(島)はポリゴンとし

各エレメント(島)はポリゴンとし

各エレメント(島)はポリゴンとし

て定義される。

て定義される。

て定義される。

て定義される。

(24)

®

データモデル(

DB投影)

1つのレイヤはつのレイヤはつのレイヤはつのレイヤは1つの表によって定義される。つの表によって定義される。つの表によって定義される。つの表によって定義される。

今回は今回は今回は今回はJRレイヤとレイヤとレイヤとレイヤと23区レイヤがあるので区レイヤがあるので区レイヤがあるので区レイヤがあるので2つの表によって定義される。つの表によって定義される。つの表によって定義される。つの表によって定義される。

他に、ジオメトリのメタ情報を管理するための表を定義する必要がある。他に、ジオメトリのメタ情報を管理するための表を定義する必要がある。他に、ジオメトリのメタ情報を管理するための表を定義する必要がある。他に、ジオメトリのメタ情報を管理するための表を定義する必要がある。 JRレイヤ 201 山手線 202 中央線 (100,100) (0,0) 23区レイヤ 101 新宿区 102 豊島区 (100,100) (0,0) メタ情報管理表

(25)

®

表に格納されたデータ

区番号 区名 面積 人口 101 102 新宿区 豊島区 xxx xxx xxx xxx 区形状 ... ... 23区表 路線番号 名称 営業キロ 始発駅 終着駅 路線形状 201 202 山手線 中央線 xxx xxx 東京 東京 東京 高尾 ... ... JR表 メタ情報管理表 TABLE_NAME 23区表 JR表 COLUMN_NAME 区形状 路線形状 DIMINFO ... ... それぞれの座標データを 格納する(オブジェクト型) ・座標データが格納されたカラムを指定 ・DIMINFO列はオブジェクト型であり、 座標系の最小値、最大値、誤差範囲を 指定する

(26)

®

索引付け

空間問合せのパフォーマンスを向上させ

空間問合せのパフォーマンスを向上させ

空間問合せのパフォーマンスを向上させ

空間問合せのパフォーマンスを向上させ

るため、予め

るため、予め

るため、予め

るため、予め

空間索引

空間索引

空間索引

空間索引

を作成しておく

を作成しておく

を作成しておく

を作成しておく

CREATE INDEX JR_GEO_IDX on 表名 ( 列名 )

INDEXTYPE IS MDSYS.SPATIAL_INDEX

;

空間索引

定義域を細かい四角形に分割し、

各ジオメトリとそれを覆う四角形の

対応情報

(27)

®

固定サイズと可変サイズ

(28)

®

データモデル(演算)

これら表を用いて様々な演算を行なう

幾何演算用関数を用いることで、ジオメトリ間の空間

的関係を判断できる

– 新宿区を通るJR路線は?

– 豊島区を通るJR路線は?

(100,100) (0,0) (100,100) (0,0) メタ情報管理表 23区表 JR表

(29)

®

新宿区を通る路線を求める

SELECT jrname,wardname

FROM jr,ward

WHERE wardname='新宿区'

AND mdsys.sdo_relate

(

ward.geometry,jr.geometry ,

'mask=anyinteract querytype=window’

) = 'TRUE';

JRNAME WARDNAME

---山手線 新宿区

中央線 新宿区

(30)

®

豊島区を通る路線を求める

SELECT jrname , wardname

FROM jr , ward

WHERE wardname='豊島区'

AND mdsys.sdo_relate

(

ward.geometry,jr.geometry,

'mask=anyinteract querytype=window'

) = 'TRUE';

JRNAME WARDNAME

---山手線 豊島区

(31)

®

Agenda

Spatial概要

概要

概要

概要

Spatialで何ができるか?

で何ができるか?

で何ができるか?

で何ができるか?

– Spatialデータモデル

データモデル

データモデル

データモデル

– 主要関数

主要関数

主要関数

主要関数

Oracle Corp.の取り組み

の取り組み

の取り組み

の取り組み

(32)

®

主な関数(

1)

ポリゴンの面積を計算する ポリゴンの面積を計算する ポリゴンの面積を計算する ポリゴンの面積を計算する 面積 面積面積

面積 := := := sdo_geom.sdo_area(geometry,dim_array) := sdo_geom.sdo_area(geometry,dim_array)sdo_geom.sdo_area(geometry,dim_array)sdo_geom.sdo_area(geometry,dim_array)

ジオメトリ・オブジェクト データ型 : mdsys.sdo_geometry SDO_GEOM_METADATA表の ディメンション情報配列 データ型 : mdsys.sdo_dim_array ジオメトリの周囲の長さを計算する ジオメトリの周囲の長さを計算する ジオメトリの周囲の長さを計算する ジオメトリの周囲の長さを計算する 長さ 長さ長さ

長さ := := := := sdo_geom.sdo_length(geometry,dim_array)sdo_geom.sdo_length(geometry,dim_array)sdo_geom.sdo_length(geometry,dim_array)sdo_geom.sdo_length(geometry,dim_array)

ジオメトリにバッファ・ポリゴンを作成する ジオメトリにバッファ・ポリゴンを作成する ジオメトリにバッファ・ポリゴンを作成する ジオメトリにバッファ・ポリゴンを作成する ジオメトリ ジオメトリジオメトリ

ジオメトリ := := := sdo_geom.sdo_buffer(geometry,dim_array,distance) := sdo_geom.sdo_buffer(geometry,dim_array,distance)sdo_geom.sdo_buffer(geometry,dim_array,distance)sdo_geom.sdo_buffer(geometry,dim_array,distance)

距離 データ型 : number ジオメトリ・オブジェクトが

戻される

(33)

®

主な関数(

2)

2つのポリゴンの論理演算を行なう

sdo_geom.sdo_difference sdo_geom.sdo_difference sdo_geom.sdo_difference sdo_geom.sdo_difference sdo_geom.sdo_union sdo_geom.sdo_union sdo_geom.sdo_union sdo_geom.sdo_union sdo_geom.sdo_intersection sdo_geom.sdo_intersection sdo_geom.sdo_intersection sdo_geom.sdo_intersection sdo_geom.sdo_xor sdo_geom.sdo_xor sdo_geom.sdo_xor sdo_geom.sdo_xor Original Intersection Difference Union Xor 引数はどれも同じで

(geometry1 , geometry2 , tolerance ) 戻り値はジオメトリ・オブジェクトで、 データ型はmdsys.sdo_geometry

(34)

®

こんなこともできます

...

半径

1の2つの円C1,C2の

交差部分の面積を求める

C1 intersect := sdo_geom.sdo_intersection (c1,c2,0);

area := sdo_geom.sdo_area(intersect , dim_array);

area := 1.22836969860872

(10,10)

(11,10) (12,10) (13,10) (11,11) (12,11)

(35)

®

主な関数(

3)

ポリゴンの重心を求める ポリゴンの重心を求める ポリゴンの重心を求める ポリゴンの重心を求める 重心 重心重心

重心 := := := := sdo_geom.sdo_centroid(geometry,dim_array)sdo_geom.sdo_centroid(geometry,dim_array)sdo_geom.sdo_centroid(geometry,dim_array)sdo_geom.sdo_centroid(geometry,dim_array)

ジオメトリを覆うおおよそのポリゴン求める ジオメトリを覆うおおよそのポリゴン求める ジオメトリを覆うおおよそのポリゴン求める ジオメトリを覆うおおよそのポリゴン求める ポリゴン ポリゴンポリゴン

ポリゴン := := := := sdo_geom.sdo_convexhull(geometry,dim_array)sdo_geom.sdo_convexhull(geometry,dim_array)sdo_geom.sdo_convexhull(geometry,dim_array)sdo_geom.sdo_convexhull(geometry,dim_array)

ジオメトリ間の距離を求める ジオメトリ間の距離を求める ジオメトリ間の距離を求める ジオメトリ間の距離を求める 距離 距離距離

距離 := := := := sdo_geom.sdo_distance(geometry,dim_array)sdo_geom.sdo_distance(geometry,dim_array)sdo_geom.sdo_distance(geometry,dim_array)sdo_geom.sdo_distance(geometry,dim_array)

重心

(36)

®

主な関数(

4)

2つのオブジェクトが指定された距離内にあるか判定する

sdo_geom.within_distance sdo_geom.within_distance sdo_geom.within_distance sdo_geom.within_distance (geometry1,distance,geometry2,tolerance) (geometry1,distance,geometry2,tolerance) (geometry1,distance,geometry2,tolerance) (geometry1,distance,geometry2,tolerance) 2つのオブジェクトが指定距離内にある場合TRUEを返し、そうでない場合は、FALSEを返す

select jrname,wardname from jr,ward where sdo_geom.within_distance (jr.geometry,34,ward.geometry,0) = 'TRUE' JRNAME WARDNAME --- ---山手線 新宿区 山手線 豊島区 中央線 新宿区

select jrname,wardname from jr,ward where sdo_geom.within_distance (jr.geometry,35,ward.geometry,0) = 'TRUE' JRNAME WARDNAME - ---山手線 新宿区 山手線 豊島区 中央線 新宿区 中央線 豊島区 区とJR路線の組み合わせのうち、距離34以内のもの 区とJR路線の組み合わせのうち、距離35以内のもの 今回のジオメトリ定義では、中央線と豊島区の距離が 34以上、35以内であったためヒットした

(37)

®

主な関数(

5)

文法 文法文法 文法 SDO_GEOM.RELATE (geometry1,dim_array1,mask,geometry2,dim_array2) geometry1, geometry2 dim_array1, dim_array2 mask 比較するジオメトリ・オブジェクトを指定 データ型はmdsys.sdo_geometry SDO_GEOM_METADATA表から選択される ディメンション情報配列を指定 データ型はmdsys.sdo_dim_array チェックする関係を指定する パラメータ パラメータ パラメータ

パラメータ 戻り値戻り値戻り値戻り値((((varchar2)varchar2)varchar2)varchar2)

- マスクに指定した関係を満たす場合 戻り値にその関係が返される - ANYINTERACTを含むマスクを指定 した場合、2つのジオメトリが非接続で なければTRUEを返す

2つのオブジェクトの空間的関係を判定する

(38)

®

Inside

contains

Covers covered by

Touch

Overlap

boundaries

intersect

Equal

Disjoint

SDO_GEOM.RELATEが判断できる関係

Overlap

boundaries

disjoint

これら、ジオメトリ間の関係は、

Open GIS Simple Features Specification For SQL Revision1.1で規定されて

いるものと同じです。

(39)

®

SDO_GEOM.RELATEのMASK

ANYINTERACT2つのオブジェクトが何らかの空間的関係を持つつのオブジェクトが何らかの空間的関係を持つつのオブジェクトが何らかの空間的関係を持つつのオブジェクトが何らかの空間的関係を持つ

DISJOINT2つのオブジェクトに共通の境界または内点がないつのオブジェクトに共通の境界または内点がないつのオブジェクトに共通の境界または内点がないつのオブジェクトに共通の境界または内点がない

CONTAINS – 第2のオブジェクトが完全に第1のオブジェクトの内部にあり、かつオブジェ第2のオブジェクトが完全に第1のオブジェクトの内部にあり、かつオブジェ第2のオブジェクトが完全に第1のオブジェクトの内部にあり、かつオブジェ第2のオブジェクトが完全に第1のオブジェクトの内部にあり、かつオブジェ クトの境界が接していない クトの境界が接していない クトの境界が接していない クトの境界が接していない

INSIDE – 第第第第1のオブジェクトが完全に第のオブジェクトが完全に第のオブジェクトが完全に第のオブジェクトが完全に第2のオブジェクトの内部にあり、かつオブジェクのオブジェクトの内部にあり、かつオブジェクのオブジェクトの内部にあり、かつオブジェクのオブジェクトの内部にあり、かつオブジェク トの境界が接していない トの境界が接していない トの境界が接していない トの境界が接していない

EQUAL – オブジェクトの境界と内部(オブジェクト内のすべての穴を含む)のすべてのオブジェクトの境界と内部(オブジェクト内のすべての穴を含む)のすべてのオブジェクトの境界と内部(オブジェクト内のすべての穴を含む)のすべてのオブジェクトの境界と内部(オブジェクト内のすべての穴を含む)のすべての 点を 点を 点を 点を2つのオブジェクトが共有しているつのオブジェクトが共有しているつのオブジェクトが共有しているつのオブジェクトが共有している

MASK

MASKには次の値を指定可能

には次の値を指定可能

には次の値を指定可能

には次の値を指定可能

には次の値を指定可能

には次の値を指定可能

には次の値を指定可能

には次の値を指定可能

(40)

®

SDO_GEOM.RELATEのMASK

COVERS – 第第第第2のオブジェクトが完全に第のオブジェクトが完全に第のオブジェクトが完全に第1のオブジェクトの内部にあり、かつ境界がのオブジェクトが完全に第 のオブジェクトの内部にあり、かつ境界がのオブジェクトの内部にあり、かつ境界がのオブジェクトの内部にあり、かつ境界が1 つ以上の位置で接する つ以上の位置で接する つ以上の位置で接する つ以上の位置で接する

COVEREDBY – 第1のオブジェクトが完全に第2のオブジェクトの内部にあり、かつオブジェ第1のオブジェクトが完全に第2のオブジェクトの内部にあり、かつオブジェ第1のオブジェクトが完全に第2のオブジェクトの内部にあり、かつオブジェ第1のオブジェクトが完全に第2のオブジェクトの内部にあり、かつオブジェ クトの境界が クトの境界が クトの境界が クトの境界が1つ以上の点で接しているつ以上の点で接しているつ以上の点で接しているつ以上の点で接している

OVERLAPBDYDISJOINT2つのオブジェクトが重なるがその境界が相互干渉しないつのオブジェクトが重なるがその境界が相互干渉しないつのオブジェクトが重なるがその境界が相互干渉しないつのオブジェクトが重なるがその境界が相互干渉しない

OVERLAPBDYINTERSECT2つのオブジェクトが部分的に重なり、かつその境界がつのオブジェクトが部分的に重なり、かつその境界がつのオブジェクトが部分的に重なり、かつその境界が1つ以上の位置で交つのオブジェクトが部分的に重なり、かつその境界がつ以上の位置で交つ以上の位置で交つ以上の位置で交 差する 差する 差する 差する

TOUCH2つのオブジェクトが1つの共通境界点を共有するが、共通の内点がないつのオブジェクトが1つの共通境界点を共有するが、共通の内点がないつのオブジェクトが1つの共通境界点を共有するが、共通の内点がないつのオブジェクトが1つの共通境界点を共有するが、共通の内点がない

(41)

®

Agenda

Spatial概要

概要

概要

概要

Spatialで何ができるか?

で何ができるか?

で何ができるか?

で何ができるか?

– Spatialデータモデル

データモデル

データモデル

データモデル

– 主要関数

主要関数

主要関数

主要関数

Oracle Corp.の取り組み

の取り組み

の取り組み

の取り組み

(42)

®

Spatial Standards

OpenGIS Standardsへの対応

- Consortium RFP1 - Simple Features

- 1999年3月12日、Oracle8 Spatial Cartridgeにより

RFP1 conformance testに合格

- 1999年4月8日, Oracle8i SpatialによりRFP1

conformance testに合格

SQLMM 及び ISO211のspatial standards

initiativesにも参加

(43)

®

Oracle’s Contribution

OpenGIS

– Board of Directors

– Management Committee

– Technical Committee

ISO TC211

– HOD (Head of US Delegation)

– Project Leader Spatial Operators

– Liaison to SQL3MM

American National Standards Institute

– Chair National GIS Committee

(44)

®

Oracle Spatial Development

Partners

(45)

#1

参照

Outline

関連したドキュメント

詳細情報: 発がん物質, 「第 1 群」はヒトに対して発がん性があ ると判断できる物質である.この群に分類される物質は,疫学研 究からの十分な証拠がある.. TWA

上げ 5 が、他のものと大きく異なっていた。前 時代的ともいえる、国際ゴシック様式に戻るか

 高齢者の性腺機能低下は,その症状が特異的で

び3の光学活`性体を合成したところ,2は光学異`性体間でほとんど活'性差が認め

RNAi 導入の 2

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

ポケットの なかには ビスケットが ひとつ ポケットを たたくと ビスケットは ふたつ.

と言っても、事例ごとに意味がかなり異なるのは、子どもの性格が異なることと同じである。その