Submit Search
Upload
空間データで遊ぶ
•
1 like
•
2,506 views
オラクルエンジニア通信
Follow
Oracle Spatial and Graph Spatial Features 空間データ で遊ぶ
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 41
Download now
Download to read offline
Recommended
Oracle Spatial 概要説明資料
Oracle Spatial 概要説明資料
オラクルエンジニア通信
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
Hironobu Isoda
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
オラクルエンジニア通信
超高速処理とスケーラビリティを両立するApache GEODE
超高速処理とスケーラビリティを両立するApache GEODE
Masaki Yamakawa
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
オラクルエンジニア通信
データベースで始める機械学習
データベースで始める機械学習
オラクルエンジニア通信
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
Recommended
Oracle Spatial 概要説明資料
Oracle Spatial 概要説明資料
オラクルエンジニア通信
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
Hironobu Isoda
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
Oracle GoldenGate 19c を使用した 簡単データベース移行ガイド_v1.0
オラクルエンジニア通信
超高速処理とスケーラビリティを両立するApache GEODE
超高速処理とスケーラビリティを両立するApache GEODE
Masaki Yamakawa
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
オラクルエンジニア通信
データベースで始める機械学習
データベースで始める機械学習
オラクルエンジニア通信
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
オラクルエンジニア通信
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
オラクルエンジニア通信
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
臨床現場・研究における医療DXの現状と展望 (Oracle Cloudウェビナーシリーズ: 2021年8月18日)
臨床現場・研究における医療DXの現状と展望 (Oracle Cloudウェビナーシリーズ: 2021年8月18日)
オラクルエンジニア通信
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オラクルエンジニア通信
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版
オラクルエンジニア通信
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
オラクルエンジニア通信
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
Spark MLlibではじめるスケーラブルな機械学習
Spark MLlibではじめるスケーラブルな機械学習
NTT DATA OSS Professional Services
Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)
オラクルエンジニア通信
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
Yahoo!デベロッパーネットワーク
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
オラクルエンジニア通信
More Related Content
What's hot
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
オラクルエンジニア通信
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
オラクルエンジニア通信
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
臨床現場・研究における医療DXの現状と展望 (Oracle Cloudウェビナーシリーズ: 2021年8月18日)
臨床現場・研究における医療DXの現状と展望 (Oracle Cloudウェビナーシリーズ: 2021年8月18日)
オラクルエンジニア通信
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オラクルエンジニア通信
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
KnowledgeGraph
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版
オラクルエンジニア通信
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
オラクルエンジニア通信
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
Spark MLlibではじめるスケーラブルな機械学習
Spark MLlibではじめるスケーラブルな機械学習
NTT DATA OSS Professional Services
Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)
オラクルエンジニア通信
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
Yahoo!デベロッパーネットワーク
What's hot
(20)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
はじめてのOracle Cloud Infrastructure(Oracle Cloudウェビナーシリーズ: 2021年2月3日)
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
SSII2022 [OS3-02] Federated Learningの基礎と応用
SSII2022 [OS3-02] Federated Learningの基礎と応用
自律型データベース Oracle Autonomous Database 最新情報
自律型データベース Oracle Autonomous Database 最新情報
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
臨床現場・研究における医療DXの現状と展望 (Oracle Cloudウェビナーシリーズ: 2021年8月18日)
臨床現場・研究における医療DXの現状と展望 (Oracle Cloudウェビナーシリーズ: 2021年8月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
ナレッジグラフ/LOD利用技術の入門(後編)
ナレッジグラフ/LOD利用技術の入門(後編)
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
OCI GoldenGate Overview 2021年4月版
OCI GoldenGate Overview 2021年4月版
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
暗号技術の実装と数学
暗号技術の実装と数学
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
Spark MLlibではじめるスケーラブルな機械学習
Spark MLlibではじめるスケーラブルな機械学習
Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
More from オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
オラクルエンジニア通信
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
オラクルエンジニア通信
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
オラクルエンジニア通信
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
オラクルエンジニア通信
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
オラクルエンジニア通信
More from オラクルエンジニア通信
(20)
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
空間データで遊ぶ
1.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Oracle Spatial
and Graph Spatial Features 空間データ で遊ぶ ⽇本オラクル株式会社 クラウド・テクノロジー事業統括 Cloud/Big Data/DISプロダクト本部 エンジニアリング部 中井 亮⽮(Ryoya.Nakai@Oracle.com) 1
2.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2
3.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 本資料の前提 • 対象:Oracle
Spatial and Graphの Spatial機能を触ってみようという⽅ • 前提スキル: – Oracle Databaseの機能と使い⽅がなんとなくわかってること(DBA的な意味で) – SQLやShell, Java恐怖症でないこと • 前提環境: – Oracle DB 12.2 のインスタンス • (12.1以前の場合には空間索引作成部に注意) • オンプレミスの場合には Enterprise Edition + Spatial and Graph Optiion, • DBCSの場合にはHighPerformance以上必須 – Linux環境+Java (JDK1.8) • Windowsでも機能的には問題ないですが、shell記載部などは適宜置き換えが必要です 3
4.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Oracle Spatialで遊ぶ お品書き 最初の最初(触ってみる) 地理参照データ Open Street
Map から経路探索 その他の遊べるデータのご紹介 素材のプチッチ http://putiya.com/ イラストわんパグ http://www.wanpug.com/ 4
5.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 最初の最初 確認 • 確認(DBCS High Performance 以上ならTRUEのはず) 5 SQL>
select * from v$option where parameter like '%Spatial%' PARAMETER VALUE CON_ID ------------------------------ ---------- ---------- Spatial TRUE 0
6.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 最初の最初 準備 • 準備 –
ユーザ、スキーマ作成とか適当にやっちゃってください • 特に特殊な設定は不要です – めんどくさい人は以下のスクリプトをdbaで流してください • spuserが作成されます 6 -- USER 作成 CREATE USER spuser IDENTIFIED BY spuser DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP ; --- 権限付与 GRANT connect,resource, unlimited tablespace TO spuser ; ALTER USER spuser quota unlimited ON users ;
7.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 表(テーブル) ベクトルデータ格納のアーキテクチャ 普通の列の1つとして表に格納 データ構造 • 表のSDO_GEOMETRY列 •
メタデータ – USER_SDO_GEOM_METADATA • 空間索引 • ビュー – USER_SDO_INDEX_METADATA 7 ID 名称 GEOM(SDO_GEOMETRY) 01 東洋 SDO_GEOMETRY(...) 02 神奈川 SDO_GEOMETRY(...) 03 岐⾩ SDO_GEOMETRY(...) 04 兵庫 SDO_GEOMETRY(...) 空間索引 メタデータ (USER_SDO_GEOM _METADATA) 測地系データ、空間演算⼦、空間演算関数
8.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • 表を作る –
MDSYS.SDO_GEOMETRY型のある表を作るだけです – メタデータを登録(USER_SDO_GEOM_METADATA) 最初の最初 8 CREATE TABLE TEST01 ( GEO_ID number primary key, GEO_NAME varchar2(200), GEOM MDSYS.SDO_GEOMETRY ); INSERT INTO USER_SDO_GEOM_METADATA VALUES ('TEST01','GEOM', SDO_DIM_ARRAY( SDO_DIM_ELEMENT('X', 0, 20, 0.001), SDO_DIM_ELEMENT('Y', 0, 20, 0.001)), null); COMMIT; 0 2 10 20 20 10 2 メタデータが表現している 空間はこんな感じ
9.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Spatialのはなし 空間データってなに いろんな形や場所を表すデータ 地球上のデータ • 地球上の形や場所を表現(2D/3D)
-- ⼤抵は緯度経度 – 地球上の点のデータ (GPS,位置,所在地,店舗,駅...) – 地球上の線のデータ (道路,線路,河川,動線...) – 地球上の形(ポリゴン)のデータ(⾏政区画,国,海,湖,農地..) – 地球上の⾯(点群/TIN)のデータ(地表⾯,地層, 海⽔⾯..) デカルト座標系のデータ • X/Y/(Z)が垂直に交差する仮想的な座標系(2D/3D) – 機械,電⼦部品,ビル,建造物, (多くの⼈⼯物が該当) Kevin M. Gill さんのイラスト http://free-photos.gatag.net/2013/07/14/190000.html 点 線 形 9
10.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | ご参考:SDO_GEOMETRYで表現されるジオメトリ形状 点(ポイント) 線(ライン) ポリゴン(多角形) 穴空きポリゴン 自己交差するライン円弧線ストリング
複合線ストリング 円弧ポリゴン 複合ポリゴン 3点指定の円 最適化された矩形 (2点指定) 点クラスタ ※地理空間上での最適化され た矩形、3点指定の円は、問 い合わせウィンドウ⽤となり ます。 DBへの格納時にはポ リゴンを使⽤してください。 ※円弧の表現は地理空間上での 利⽤に制限があります。 10
11.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 最初の最初 データを入れてみます 11 INSERT INTO
TEST01 VALUES( 1, '右目', SDO_GEOMETRY(2001, null, SDO_POINT_TYPE(8,14,null), null,null)); INSERT INTO TEST01 VALUES( 2, '左目', SDO_GEOMETRY(2001, null, SDO_POINT_TYPE(12,14,null), null,null)); INSERT INTO TEST01 VALUES( 3, '太陽', SDO_GEOMETRY(2001, null, SDO_POINT_TYPE(18,18,null), null,null)); INSERT INTO TEST01 VALUES( 4, '海', SDO_GEOMETRY(2002, null, null, SDO_ELEM_INFO_ARRAY(1,2,1),SDO_ORDINATE_ARRAY(1,5,19,5))); INSERT INTO TEST01 VALUES( 5, 'くちばし', SDO_GEOMETRY(2003, null, null, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(10,13,6,11,14,11,10,13)) ); INSERT INTO TEST01 VALUES( 6, '体', SDO_GEOMETRY(2003, null, null, SDO_ELEM_INFO_ARRAY(1,1005,2, 1,2,1, 7,2,2), SDO_ORDINATE_ARRAY(4,12,4,2,16,2,16,12,10,18,4,12)) ); INSERT INTO TEST01 VALUES( 7, '右手', SDO_GEOMETRY(2003, null, null, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(2,6,4,6,4,10,2,6)) ); INSERT INTO TEST01 VALUES( 8, '左手', SDO_GEOMETRY(2003, null, null, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(16,10,16,6,18,6,16,10)) ); 0 2 10 20 20 10 2 こんなデータ 点データ:右目、左目、太陽 線データ:海 ポリゴン:体、くちばし、右手、左手 ※黒丸は点で本当は面積はないです
12.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 最初の最初 • 空間索引の作成(12.2以降の場合) –
12.1以前のDBでは以下で空間索引が作成されます • V2は12.2以降 12 CREATE INDEX spidx_test01 ON test01(geom) INDEXTYPE IS MDSYS.SPATIAL_INDEX_V2 ; CREATE INDEX spidx_test01 ON test01(geom) INDEXTYPE IS MDSYS.SPATIAL_INDEX ; 0 2 10 20 20 10 2 こんなデータ 点データ:右目、左目、太陽 線データ:海 ポリゴン:体、くちばし、右手、左手 ※黒丸は点で本当は面積はないです
13.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • 右目と左目の距離(点と点) •
右目と海の距離(点と線) 最初の最初 距離計算 (1) 13 SELECT SDO_GEOM.SDO_DISTANCE(a.GEOM, b.GEOM) from (SELECT * FROM TEST01 WHERE GEO_NAME='右目') a, (SELECT * FROM TEST01 WHERE GEO_NAME='左目') b ; SDO_GEOM.SDO_DISTANCE(A.GEOM,B.GEOM) ------------------------------------ 4 0 2 10 20 20 10 2 SELECT SDO_GEOM.SDO_DISTANCE(a.GEOM, b.GEOM) from (SELECT * FROM TEST01 WHERE GEO_NAME='右目') a, (SELECT * FROM TEST01 WHERE GEO_NAME='海') b ; SDO_GEOM.SDO_DISTANCE(A.GEOM,B.GEOM) ------------------------------------ 9
14.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • 右目とくちばしの距離(点とポリゴン) •
くちばしと右手の距離(ポリゴンとポリゴン) 最初の最初 距離計算(2) 14 SELECT SDO_GEOM.SDO_DISTANCE(a.GEOM, b.GEOM) from (SELECT * FROM TEST01 WHERE GEO_NAME='右目') a, (SELECT * FROM TEST01 WHERE GEO_NAME='くちばし') b ; SDO_GEOM.SDO_DISTANCE(A.GEOM,B.GEOM) ------------------------------------ 1.78885438 0 2 10 20 20 10 2 SELECT SDO_GEOM.SDO_DISTANCE(a.GEOM, b.GEOM) from (SELECT * FROM TEST01 WHERE GEO_NAME='くちばし') a, (SELECT * FROM TEST01 WHERE GEO_NAME='右手') b ; SDO_GEOM.SDO_DISTANCE(A.GEOM,B.GEOM) ------------------------------------ 2.23606798
15.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 補足:空間位相関係 位相関係 DISJOINT 境界および内部が交差しない。 TOUCH
境界は交差するが、内部は交差しない。 OVERLAPBDYDISJOINT 1つのオブジェクトの内部が他のオブジェクトの境界 および内部と交差するが、その2つの境界は交差しない。 たとえば、1本の線がポリゴンの外側から始まり、ポリ ゴンの内側で終わる場合に発⽣します。 OVERLAPBDYINTERSECT 2つのオブジェクトの境界および内部が交差する。 EQUAL 2つのオブジェクトの境界および内部が同じである。 CONTAINS 1つのオブジェクトの内部および境界が完全にもう1つ のオブジェクトの内部に含まれている。 COVERS 1つのオブジェクトの内部が、完全にもう1つのオブ ジェクトの内部または境界に含まれ、その2つのオブ ジェクトの境界が交差する。 INSIDE CONTAINSの逆。A INSIDE Bは、B CONTAINS A を意味します。 COVEREDBY COVERSの逆。A COVEREDBY Bは、B COVERS Aを 意味します。 ON 1つのオブジェクトの内部および境界が、もう1つのオ ブジェクトの境界上にある。この関係は、たとえば、1 本の線がポリゴンの境界上にある場合に発⽣します。 ANYINTERACT オブジェクトがなんらかの形で接合する。 OVERLAPBYINTERSECT 15
16.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • 体の中にあるやつ(INSIDE位相関係) •
体と接してるやつ(TOUCH位相関係) 最初の最初 空間検索 16 SELECT a.GEO_NAME from TEST01 a , (SELECT * FROM TEST01 WHERE GEO_NAME='体') b WHERE SDO_INSIDE( a.geom, b.geom) = 'TRUE'; GEO_NAME --------------------------------------------------- くちばし 右目 左目 0 2 10 20 20 10 2 SELECT a.GEO_NAME from TEST01 a , (SELECT * FROM TEST01 WHERE GEO_NAME='体') b WHERE SDO_TOUCH( a.geom, b.geom) = 'TRUE'; GEO_NAME ---------------------------------------------------------- 右手 左手 ※INSIDEでは接してたり突き抜けたりしてるやつは含まれなくて 中にいるやつだけ
17.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • 体となんか関係してるやつ
(ANYINTERACT位相関係) 最初の最初 空間検索 17 SELECT a.GEO_NAME from TEST01 a , (SELECT * FROM TEST01 WHERE GEO_NAME='体') b WHERE SDO_ANYINTERACT( a.geom, b.geom) = 'TRUE'; GEO_NAME ----------------- 海 右手 体 くちばし 右目 左目 左手 0 2 10 20 20 10 2 ※ANYINTERACTは重なってたり、はみでてたり、中に入ってたり、 接したり何かの関係があるやつを取り出します
18.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • 太陽から近いやつ(近傍検索)とその距離 最初の最初 空間検索 18 0
2 10 20 20 10 2 SELECT a.GEO_NAME, SDO_NN_DISTANCE(1) dist from TEST01 a , (SELECT * FROM TEST01 WHERE GEO_NAME='太陽') b WHERE SDO_NN( a.geom, b.geom,null,1) = 'TRUE' ORDER BY DIST; GEO_NAME DIST ---------- ---------- 太陽 0 体 4 左目 7.21110255 くちばし 8.06225775 左手 8.24621125 右目 10.7703296 海 13 右手 16.1245155 ※SDO_NNは近傍検索を行う演算子です。この例では全部取り出してい ますが、最近接だけを取り出したり、Top5を取ったりできます
19.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | • シルエットを生成してみる(和集合演算) 最初の最初 空間検索 19 0
2 10 20 20 10 2 INSERT INTO test01 SELECT 10,'シルエット', SDO_AGGR_UNION(SDOAGGRTYPE(GEOM,0.001)) FROM test01; SELECT * FROM test01 WHERE GEO_NAME='シルエット'; GEO_ID GEO_NAME -------------- ---------- GEOM(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) -------------------------------------------------- 10 シルエット SDO_GEOMETRY(2004, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1, 5, 2, 1, 9, 1, 1, 11, 1005, 2, 11, 2, 1, 29, 2, 2), SDO_ORDINATE_ARRAY(1, 5, 4, 5, 16, 5, 19, 5, 18, 18, 4, 12, 4, 10, 2, 6, 4, 6, 4, 2, 16, 2, 16, 6, 18, 6, 16, 10, 16, 12, 10, 18, 4, 12)) ※シルエットと書きましたが、演算 処理自体は空間データの和集合の 演算になります。 これを使って、東京23区+都下の 形状データから東京都の形状を作 成したりできます
20.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 最初の最初 • まずはデカルト空間(直交座標系)でSpatialの基本的な操作を見ました •
データはSDO_GEOMETRYに格納します – デカルト空間の場合にはSDO_GEOMETRYの第二引数をNULL にします • 距離計算や空間検索、和集合などの演算ができます 20
21.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Oracle Spatialで遊ぶ お品書き 最初の最初(触ってみる) 地理参照データ Open Street
Map から経路探索 その他の遊べるデータのご紹介 素材のプチッチ http://putiya.com/ イラストわんパグ http://www.wanpug.com/ 21
22.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 何がむつかしいの? 地球は丸いです • 緯度経度は直交座標系じゃないです –
経線は南極と北極で交わります – 緯度経度の世界に特有のことがいろいろあります • 北緯20度東経20度 - 北緯21度東経21度 の距離 (152.110 km) • 北緯30度東経30度 - 北緯31度東経31度 の距離 (146.647 km) 地球は丸いけど真球じゃないです – ちょびっと極がでっぱって横もひずんでます – 緯度経度は想定する回転楕円体と標準の地表⾯を定義して決定されます • 標⾼の⾼い国、低い国、緯度の⾼い国、低い国で座標の取り⽅が 違います(各国の測地座標系) これらを考慮して⼀から実装するのは⼤変です select sdo_geom.sdo_distance( sdo_geometry(2001,8307,sdo_point_type(20,20,null),null,null), sdo_geometry(2001,8307,sdo_point_type(21,21,null),null,null),0.005,'unit=km' ) from dual; select sdo_geom.sdo_distance( sdo_geometry(2001,8307,sdo_point_type(30,30,null),null,null), sdo_geometry(2001,8307,sdo_point_type(31,31,null),null,null),0.005,'unit=km' ) from dual; 22
23.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ • ここからは地理参照のあるデータを取り扱ってみます •
地理参照系もデカルト座標系も同じSDO_GEOMETRYに格納します • 各国の測地系や投影方法ごとのメタデータがDBの中に入っています – OracleではこれをSRIDという番号で管理します • CSVからロードしたりすることもできますが、この手のデータはよく Shapefile(シェープファイル)という形態で公開されています – 例:統計センター、国土数値データなどなど、 23
24.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ ダウンロード(1/6) • ここから国土数値データから東京の避難所のデータをダウンロードして データベースにいれて遊んでみたいと思います •
以下のURL「国土数値情報 ダウンロードサービス」にアクセスします • いろんなデータがありますが、、、 • 真ん中あたりの「避難施設」をクリックします 24 http://nlftp.mlit.go.jp/ksj/
25.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ ダウンロード(2/6) • ダウンロードの前画面に飛ぶので、 •
下の方の • 「ダウンロードするデータの選択」 • で「東京」のチェックボックスをつけます • その状態で「次へ」 25
26.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ ダウンロード(3/6) • データのダウンロード(3.ファイルの選択)画面になります •
チェックボックスをつけて「次へ」をクリックします 26
27.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ ダウンロード(4/6) • 「アンケートのご協力のお願い」 •
に正直に記入します • 「回答する」をクリックします 27
28.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ ダウンロード(5/6) • 利用約款があるので目を通して、 •
問題ないなら • 「はい」をクリックします 28
29.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ ダウンロード(6/6) • データのダウンロードにたどり着きました •
「ダウンロード」をクリックするとダウンロードできます (414kB) 29
30.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 準備とロード • ダウンロードしたzipファイル(P20-12_13_GML.zip)をDBサーバに送ります •
展開します • ファイルが展開されます – シェープファイル方式なので shpを含むファイルたちが展開されます 30 unzip P20-12_13_GML.zip ls KS-META-P20-12_13.xml P20-12_13.prj P20-12_13.shx P20-12_13_GML.zip P20-12_13.dbf P20-12_13.shp P20-12_13.xml
31.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 準備とロード • このデータは悲しいかな
MS932エンコードでデータが入っています – DBはJA16SJISやJA16SJISTILDEで対応していますが、Linuxの場合、defaultでは cp932(ms932)が化けちゃいます(Shift_JISでもだいたい大丈夫ですが、一応ms932 ベースのロケールを追加します • Rootユーザで以下を実施します – すでに追加済みの場合にはこの作業は不要です 31 localedef -f WINDOWS-31J -i ja_JP ja_JP.cp932
32.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 準備とロード • 以下を実行します 32 DB_HOST=localhost
# Oracle DBのホスト名 DB_PORT=1521 # Oracle DB のリスナーポート DB_SID=$ORACLE_SID # Oracle DB のSID SHPSRID=8307 # シェープファイルのSRID(地理参照ID), 8307はWGS84だけどJGD2000と互換 SHPFILE= P20-12_13 # シェープファイルの名前(拡張子を外した部分) TABNAME=hinanbasho # DBロード後の表の名前 DBCOMMIT=1000 # ロード時のコミットする単位になる件数 DBUSER=spuser DBPASS=spuser NLS_LANG=Japanese_Japan.JA16SJISTILDE LANG=ja_JP.cp932 SC_CP=. for i in $ORACLE_HOME/jdbc/lib/*.jar $ORACLE_HOME/md/jlib/*.jar do SC_CP=${SC_CP}:$i done java -cp $SC_CP oracle.spatial.util.SampleShapefileToJGeomFeature ¥ -h $DB_HOST -p $DB_PORT -s $DB_SID -u $DBUSER -d $DBPASS ¥ -r $SHPSRID -f P20-12_13 -t $TABNAME -v 500 -c $DBCOMMIT ※ORACLE_HOME, ORACLE_SID環境変数が設定済みの前提になっています ※黄色字の部分は各自環境に合わせて変更してください ※javaコマンドにパスが通ってない場合には適宜PATH環境変数に追加などしてください
33.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 準備とロード • 実行ログはこんな感じ 33 host:
localhost port: 1521 sid: ora122 db_username: spuser db_password: ******** db_tablename: hinanbasho shapefile_name: P20-12_13 SRID: 8307 commit_interval: 1000 println_interval: 500 Connecting to Oracle Database using... localhost, 1521, ora122 null, spuser, ********, hinanbasho, P20-12_13, null, 8307 Creating new table... Converting record #500 of 3919 Converting record #1000 of 3919 Converting record #1500 of 3919 Converting record #2000 of 3919 Converting record #2500 of 3919 Converting record #3000 of 3919 Converting record #3500 of 3919 3919 record(s) converted. Done. ※再実行すると表は上書き(drop/create)になります
34.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 準備とロード • 空間索引を作成します –
layer_gtype=point は表のデータを点データ縛りにする句です – R12.1以前のDBでは以下で空間索引が作成されます(V2は12.2以降) 34 CREATE INDEX spidx_hinanbasho ON hinanbasho(geometry) indextype is MDSYS.SPATIAL_INDEX_V2 parameters('layer_gtype=point'); CREATE INDEX spidx_hinanbasho ON hinanbasho(geometry) indextype is MDSYS.SPATIAL_INDEX parameters('layer_gtype=point');
35.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 避難所検索 • 東京スカイツリーから半径1km以内の避難所たち –
東京スカイツリー 緯度:35.7100627,経度:139.8107004 35 SELECT P20_002,P20_003,P20_004 from hinanbasho WHERE SDO_WITHIN_DISTANCE( GEOMETRY, SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(139.8107004, 35.7100627,null) , null,null), 'distance=1000') ='TRUE'; P20_002 P20_003 P20_004 -------------------------------------------------- ---------------------------------------- ---------------------- 本所中学校 東京都墨田区東駒形3-1-10 避難所 横川小学校 東京都墨田区東駒形4-18-4 避難所 墨田区役所・隅田公園自由広場一帯 東京都墨田区 避難場所 言問小学校 東京都墨田区向島5-40-14 避難所 柳島小学校 東京都墨田区横川5-2-30 避難所 業平小学校 東京都墨田区業平2-4-8 避難所 母子生活支援施設パークサイド亀島 東京都江東区亀戸3-36-13 避難所 特別養護老人ホームカメリア 東京都江東区亀戸3-36-5 避難所 介護老人保健施設キーストーン 東京都江東区亀戸3-36-1 避難所 都営文花一丁目住宅一帯 東京都墨田区 避難場所 押上小学校 東京都墨田区押上3-46-17 避難所 小梅小学校 東京都墨田区向島2-4-10 避難所 墨田中学校 東京都墨田区向島4-25-22 避難所 隅田公園一帯 東京都台東区 避難場所
36.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 避難所検索 • 渋谷ヒカリエから最寄りの避難所
5件検索 – ヒカリエ(緯度:35.6589582,経度:139.7034757) 36 SELECT P20_002,P20_003,P20_004 from hinanbasho WHERE SDO_NN( GEOMETRY, SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(139.7034757,35.6589582,null) ,null,null) , 'sdo_num_res=5')='TRUE'; P20_002 P20_003 P20_004 -------------------------------------------------- ------------------------- ---------- ケアコミュニティ・美竹の丘(旧渋谷小学校) 東京都渋谷区渋谷1-18-21 避難所 常磐松小学校 東京都渋谷区東1-7-10 避難所 神南小学校 東京都渋谷区宇田川町5-1 避難所 青山学院・実践女子学園一帯 東京都渋谷区 避難場所 鉢山中学校 東京都渋谷区鶯谷町9-1 避難所
37.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 地理参照データ 避難所検索 • 渋谷ヒカリエから最寄りの避難所
5件検索とその直線距離 – ヒカリエ(緯度:35.6589582,経度:139.7034757) 37 SELECT P20_002,P20_003,P20_004,sdo_nn_distance(1) dist from hinanbasho WHERE SDO_NN( GEOMETRY, SDO_GEOMETRY(2001,8307,SDO_POINT_TYPE(139.7034757,35.6589582,null) ,null,null) , 'sdo_num_res=5',1)='TRUE' order by dist; P20_002 P20_003 P20_004 DIST -------------------------------------------------- ------------------------- ---------- -------------- ケアコミュニティ・美竹の丘(旧渋谷小学校) 東京都渋谷区渋谷1-18-21 避難所 346.1792928497 鉢山中学校 東京都渋谷区鶯谷町9-1 避難所 645.0134131044 青山学院・実践女子学園一帯 東京都渋谷区 避難場所 654.5844892473 常磐松小学校 東京都渋谷区東1-7-10 避難所 719.0704056042 神南小学校 東京都渋谷区宇田川町5-1 避難所 722.2235992611
38.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | Oracle Spatialで遊ぶ お品書き 最初の最初(触ってみる) 地理参照データ Open Street
Map から経路探索 その他の遊べるデータのご紹介 素材のプチッチ http://putiya.com/ イラストわんパグ http://www.wanpug.com/ 38
39.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | coming soon つづきは、近日、作成公開予定・・・ 39
40.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | まとめ • Oracle
Spatialを使う視点でまとめてみました • デカルト座標系から地理参照データまでおんなじ感じで使えます • 近⽇中に更新し、経路探索までをご紹介する予定です 58
41.
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. | 59
Download now