0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OACのデータセットにジオメトリデータを含める

Posted at

はじめに

OAC(Oracle Analytics Cloud)のプレビュー機能で、WKTやOracle DBのSDO_GEOMETRYでのジオメトリデータがサポートされます。
前提条件として

  • WKTはCSVに含めておく(Excelファイルはダメ)
  • それぞれのWKTの最大サイズは128KB
    などがあります。

※この前提条件は、OAC 2024 Novemberのものです。
その他の制限事項は、こちらのLimitationsを確認してください。

  • Well-known text(WKT)について

プレビュー機能を有効化する

「コンソール」に移動します。
image.png

「システム設定」を開きます。
image.png

「Preview」の「Enable Geometry Data Type」を有効にします。
image.png

画面左上部の「Apply」をクリックします。
image.png

サンプルデータ

このチュートリアルのworld_cities_data.xlsxを使ってみます。

WKT列の準備

Excelファイルをダウンロードして中身を確認します。
シート「world_cities_data」を選択します。
image.png

image.png

F列の右に新しい列を追加します。
追加した列(G列)に計算式を入力します。
image.png

="POINT (" & F2 & " " & E2 & ")"

これは、WKTで座標を表す場合の書式です。
このシートをCSV形式で保存します。
image.png

OACのデータセットとしてアップロード

CSVをデータセットとしてアップロードします。
このとき、作成した列がOACによって [GEOMETRY] と自動的に認識されていることが重要です。
image.png

ジオメトリ列として認識されていない場合は、書式が間違っていると思われます。
「ビジュアル化」をクリックします。

マップ

image.png
自動認識したジオメトリ列をキャンバスにドラッグ&ドロップします。

マップが作成できました。
image.png

その他のサンプル

緯度・経度の情報をWKT形式に変換するのは簡単ですが、これだけだとあまりメリットを感じられません。
そもそも、緯度・経度の情報があるなら、それを使ってマップを作ったとしても手間は大きく変わらないためです。

以前、こういう記事を書きました。

この記事では、QGISを使用して神奈川県の行政区域マップから各保健所の管轄地域を作成し、GeoJson形式で出力したものをOACのカスタム・マップ・レイヤーとして登録して使用しました。

ジオメトリ列を使用すれば、カスタム・マップ・レイヤーを作成せずに地図情報をCSVやOracle DBの表に埋め込んでしまえるため、柔軟性が増します。

そこで、こんなCSVデータを作成しました。
image.png

神奈川県の各保健所と、その管轄地域をWKTで表現したデータです。
前回作成したGeoJsonがあったので、WKT形式に変換して使用しました。

image.png

GeoJsonからWKTへの変換は、オンラインの変換サービスが探せばすぐに見つかると思います。
また、Oracle DBのSDO_UTILパッケージでも変換できます。
こんな感じ。戻り値がCLOBになることに注意してください。

select sdo_util.to_wktgeometry(sdo_util.from_geojson('{ "type": "MultiPolygon", "coordinates": [ [ [ [ 139.65819713, 35.55799195 ], [ 139.66345992, 35.55816441 ], [ 139.66417073, 35.55255859 ], [ 139.669122609999988, 35.55255259 ], [ 139.667150529999986, 35.56195025 ], [ 139.67006914000001, 35.56136497 ], [ 139.67383467, 35.55536997 ], [ 139.677770220000014, 35.55412441 ], [ 139.68462248, 35.55852605 ], [ 139.67640669, 35.56603831 ], [ 139.66930922, 35.58471884 ], [ 139.66441394, 35.589568 ], [ 139.65549642, 35.58997692 ], [ 139.64324392, 35.59815636 ], [ 139.637589170000012, 35.59261553 ], [ 139.63388973, 35.59543747 ], [ 139.6267708, 35.59453775 ], [ 139.6279772, 35.59233831 ], [ 139.62929713, 35.57957247 ], [ 139.634002939999988, 35.57163 ], [ 139.6396435, 35.56829833 ], [ 139.63969988, 35.56557111 ], [ 139.63674014, 35.56624889 ], [ 139.63333345, 35.56139861 ], [ 139.642934309999987, 35.55836139 ], [ 139.64833489, 35.55979333 ], [ 139.6582535, 35.55474278 ], [ 139.65819713, 35.55799195 ], [ 139.65819713, 35.55799195 ] ] ] ] }')) as wkt from dual;

SDO_UTILパッケージについては、こちらに記載があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?