ビジュアライゼーションでのジオメトリ・データ型列の使用
Oracle Analyticsでは、ユーザーがビジュアライゼーションでジオメトリ列およびレイヤーをビジュアル化および操作できるジオメトリ・データ型がサポートされています。
トピック:
コンテンツ作成者は、ワークブックでジオメトリ・データ型を使用できます。
ジオメトリ・データ型について
Oracle Analyticsでは、OracleデータベースおよびCSVファイルのジオメトリ列が自動的に認識されるため、空間データを簡単にインポートして接続できます。
Oracle Analyticsのジオメトリ・データ型は、点、ポリゴン、線など、様々な空間形状を表すことができ、詳細で動的な地理的ビジュアライゼーションが可能になります。ジオメトリ・データ型を使用すると、マップ上のデータをビジュアル化したり、高度な空間計算の入力として使用して、詳細な空間分析を行うことができます。
ジオメトリ列は、Oracle Analyticsで次の操作に使用できる特別なファーストクラス・オブジェクトです:
- マップ・ビジュアライゼーションを作成するには
- (キャンバス上またはデータ・フロー内での)空間の測定および相関のカスタム計算
- カスタムSQLソーシングの一部として(つまり、手動SQL問合せモードで定義された空間SQLを使用してデータセットを作成できます)
ジオメトリ列を使用すると、他の多くの操作が無効になるか、非常に制限されます。ジオメトリ列をワークブックのフィルタとして使用したり、マップ以外のビジュアライゼーションのコンポーネント(ビジュアライゼーション定義文法)として使用することはできません。データ列にはジオメトリ・データ型を手動で設定できません。データセットとしてインポートする場合は、ジオメトリ・データ型として認識される必要があります。
ジオメトリ・データ型のビジネス価値について
OracleデータベースおよびCSVファイルのジオメトリ列を簡単に使用できるため、空間データを簡単にインポートして接続できます。
マップの設計とビジュアライゼーションの高速化
ジオメトリ列をキャンバスにドラッグ・アンド・ドロップすることで、地理情報をすばやくビジュアル化できます。キャンバスでは、マップ・レイヤーを手動で設定する必要なく、形状が自動的にマップ・ビジュアライゼーションとしてレンダリングされます。空間データ・オブジェクトは、Oracleデータベースから直接取得されたか、CSVファイルから取得されたかにかかわらず、Oracle Analyticsではマップとして簡単にレンダリングされるため、動的な空間インサイトを迅速に作成できます。このネイティブ機能により、視覚的なパフォーマンスが向上し、空間データ・オブジェクトのスムーズで応答性の高いレンダリングが保証されます。
マップ・レイヤー・メンテナンスの最適化
ジオメトリ・データ型を使用した、ジオメトリ定義が頻繁に変更されるシナリオ(配達ルート、洪水発生区域、カスタム販売地域など)では、Oracle Analyticsのマップが最新の形状の情報で自動的に更新されます。事前構成したり、Oracle Analytics環境に特定のマップ・レイヤーが存在することを確認する必要なしに、ジオメトリ・データがマップ・ビジュアライゼーションに自動的に表示されます。また、更新されたジオメトリ・データを問い合せてマップが動的に調整されるため、変更を反映するためにデータまたはマップ・レイヤーを手動で更新する必要もありません。これにより、データ・レイヤーまたはマップ・レイヤーの余分なメンテナンスが不要になり、常に最新のデータがマップに表示されます。
空間計算のサポート
ジオメトリ・データ型を使用して計算を行い、空間の測定を実行できます。空間計算を使用すると、ジオメトリ形状の面積と長さの計算、2つの地理データ型間の距離の測定(適切な結合が定義されていることを想定)、空間関係の判別、およびtrueまたはfalseを返す条件ベースの計算を実行できます。これらの計算により、地理データがより効果的に分析され、強力な空間データドリブンの意思決定が可能になります。
ジオメトリ・データ型列の操作
Oracle Analyticsでは、ジオメトリ列を表示および操作できるジオメトリ・データ型がサポートされています。
トピック:
コンテンツ作成者は、ワークブックでジオメトリ・データ型を使用できます。
マップをビジュアル化するためのジオメトリ列の準備
Oracle Analyticsのジオメトリ・データ型は、空間データ・オブジェクト・ジオメトリ・データ型(SDO.Geometry)を使用してOracleデータベースから、またはCSVファイルから、準備して接続できます。

ジオメトリ・データ型レイヤーの選択ツールの操作
選択ツールを使用して、ジオメトリ・データ型のマップ・レイヤーを操作できます。
属性ID列(形状の名前やIDなど)がマップ・ビジュアライゼーションに追加されている場合にのみ、ジオメトリ列に基づいてコンテンツを選択できます。たとえば、「選択項目の保持」および「選択項目の除去」オプションは、属性が「色」、「ツールチップ」または「形状」として追加された後にのみ使用できます。
この例では、ストーム・ライン・レイヤーと各都市の資産のレイヤーが示されています。属性列としてのCityは、「選択項目の保持」および「選択項目の除去」オプションを有効にするために、ツールチップとして使用されています。
図maps_geodatatype_layer_keepremove_selected.pngの説明
ジオメトリ・データ型の情報オプションの操作
マップ・ビジュアライゼーション・ツールで情報オプションを使用すると、マップに表示されない可能性のあるジオメトリ形状に関する情報を取得できます。
たとえば、サイズが128KB (レコード当たり)より大きい形状またはポリゴンは、マップ・ビジュアライゼーションに表示されません。この場合、情報アイコン()は、マップ・ビジュアライゼーションの右下に表示されます。アイコンをクリックすると、その色が灰色から緑色(
)に変わり、マップ・ビジュアライゼーションのタイトルの近くにある情報オプションがオンになります。このオプションにカーソルを合せると、レイヤーの一部としてレンダリングされない形状を確認できます。属性ID列が(ツールチップ、色または形状として)マップ・ビジュアライゼーションの一部である場合、表示される情報はより詳細になります。
この例は、情報オプションで、問題がある形状またはレンダリングされなかった形状の詳細情報を表示する方法を示しています。
この例では、ポリゴンがトレリス列に表示され、ポリゴンpoly_4およびpoly_5は形状サイズが128KBを超えているため表示されませんが、poly_6およびpoly_7は形状サイズが128KB以内であるため表示されます。
1つのジオメトリ列のみを必要とする計算について
1つのジオメトリ列のみを使用する計算を作成できます。
トピック:
ジオメトリの領域の計算
1つの列を使用してジオメトリの領域を計算できます。
形状が占める領域を計算するには、GeometryArea()関数を使用します。
この例は、GeometryArea()の計算に適用される集計関数max()を示しています。
この例では、面積に基づいて米国の上位の10郡が、計算された面積によって色付けされたすべての郡とともにビジュアル化されています。
ジオメトリの長さの計算
1つの列を使用してジオメトリの長さを計算できます。
形状が占める長さを計算するには、GeometryLength()関数を使用します。
この例は、GeometryLength()の計算に適用される集計関数max()を示しています。
この例では、GeometryLength()に基づいて上位の10郡が選択されている右側のビジュアライゼーションと、形状の外周の長さごとに色付けされたすべての郡が示されています。
標準テキスト形式での空間データ・オブジェクト定義の生成
ジオメトリ列のlongvarbinary値をWell-Known Text (WKT)形式に変換するには、GeometryAsText()関数を使用します。
GeometryAsText()関数は、特定の形状がビジュアライゼーションに表示されない場合のトラブルシューティングにも役立ちます。
この例では、GeometryAsText()の使用方法を示します。
この例は、ストーム・バッファ・ジオメトリ列の標準形式を示しています。
GeometryAsText()とともに標準計算関数を使用することもできます。たとえば、文字列関数Length()を使用して形状のサイズを計算できます。これは、形状が許容可能な制限である128KBを超えているかどうかを確認する場合に便利です。
使用方法: Length(GeometryAsText(Geometry_Column))
は、ジオメトリ形状のサイズをバイト単位で返します。
2つのジオメトリ列を必要とする計算について
2つのジオメトリ列を使用する計算を作成できます。
2つのジオメトリ・データ型間の距離の計算
2つの形状間の距離を計算するには、GeometryDistance()関数を使用します。
データで異なるデータセットの2つのジオメトリ列が保持されている場合、この関数を使用するには、すべてのジオメトリ・レコードが相互に関連する(空間結合の模倣)ように、2つのデータセットを正しく結合する必要があります。データセットの準備および作成中に結合を設定し、ワークブック・キャンバス内で列をアド・ホック・マッシュアップとしてブレンドしないようにすることをお薦めします。これらの結合は、常に結合の片側でなんらかのフィルタ値を指定して使用することが重要です。埋込みフィルタ値を使用してデータセットを設計するか、高度なジオメトリ計算で使用するときに明示的なフィルタ値を使用してキャンバスを設計します。GeometryDistance、GeometryRelate、GeometryWithinDistanceなどの計算を使用しているときは、常に値をフィルタリングすることをお薦めします。
使用方法: GeometryDistance(geometry_column1,geometry_column2)
。
この例は、GeometryDistance()の計算に適用される集計関数max()を示しています。
この例は、データセットの作成時に2つの異なるデータベース表間で定義された結合を示しています。
2つのジオメトリ・データ型の関連付け
ある形状が別の形状に関連しているかどうかを判断するには、GeometryRelate()関数を使用します。
あるジオメトリ列の形状は、別のジオメトリ列の別の形状の内部、外部、隣接する内部、隣接する外部にある場合があり、触れている場合もあります。形状は、内部、外部またはタッチとして分類されます。この関数では、デカルト結合が必要な場合があります。
使用方法: GeometryRelate(geometry_column1,geometry_column2)
。
この例では、GeometryRelate()の計算の使用方法を示します。
GeometryRelate()の計算内でジオメトリ列が選択される順序は、結果に直接影響し、結果では形状が相互に関連していることが識別されます。
この例では、潜在的な影響がある郡として、ストーム・バッファに触れているか、ストーム・バッファ内にある関連するすべての郡が右側のビジュアライゼーションを示されています。
この例は、GeometryRelate()の計算を使用して計算されたストーム・バッファの形状に触れる米国の郡の形状を示しています。
この例は、GeometryRelate()の計算を使用して計算されたストーム・バッファの形状内にある米国の郡の形状を示しています。
2つのジオメトリ・データ型が特定の距離内にあるかどうかの判別
2つの形状が相互に指定した距離内にあるかどうかを判断するには、GeometryWithinDistance()関数を使用します。
この関数では、計算に基づいて結果としてTrueまたはFalseを返し、ユーザーは結果に基づいてビジュアライゼーションを設計できます。この関数では、デカルト結合が必要な場合があります。計算内でジオメトリ列が選択される順序は、結果に直接影響します。
使用方法: GeometryWithinDistance(geometry_column1,geometry_column2,distance_in_meter)
。
この例では、2つのジオメトリ列が350,000m (または350km)内にあるかどうかに関するGeometryWithinDistance ()の計算の使用方法が示されています。
この例では、ストーム・バッファから350kmの範囲内にあるすべての米国の郡が右側のビジュアライゼーションに示されています。結果がTrueとして返される郡のみがフィルタリングされて表示されます。
この例は、Falseが返され、ストームによる直接的な影響がない米国の郡を示しています。
ジオメトリ・データ型の制限事項
ジオメトリ・データ型は、マップベースのビジュアライゼーションおよび高度な空間分析に刺激的な可能性を提供します。ジオメトリ・データ型にはいくつかの制限がありますが、これらを理解すると、その機能を最大限に活用できます。
ジオメトリ・データ型の列に関する制限事項:
- ジオメトリ列は次の操作には使用できません:
- データベース表間の結合として使用する。
- ドリルするオブジェクトとして使用する
- 「フィルタ」文法フィールドにドラッグする
- カスタム・データ・アクションでコンテキストを渡すために使用する
- 形状の選択をフィルタリングするためにクリックする
- モバイル・デバイス上のマップにレンダリングする
- 予測、クラスタリング、外れ値/非外れ値、参照線、トレンド線などの高度な分析機能で使用する
- ジオメトリ列は:
- マップ・ビジュアライゼーションの「カテゴリ」文法フィールドにのみ指定できます。ジオメトリ列の内容は、マップ内で使用するか、空間計算の引数として使用する場合にのみ有効です
- マップで使用する場合、または空間計算の引数として使用する場合にのみ有効です。
- ジオメトリ・データは、データ・フローで使用する場合に制限があります。
- 異なるデータベース表またはデータセットからのジオメトリ・データ型間の空間結合または結合はサポートされていません。
- ジオメトリ・データ型レコードは、それぞれ128KB未満である必要があります。データ・ソースのレコードに、サイズが128KBを超えるジオメトリの表現がある場合、このレコードの投影はマップに表示されません。
- たとえば、表に米国の州に関するデータが含まれているとします。表には50行があり、州の形状を表すポリゴンを含むジオメトリ・データ型の列がそれぞれに含まれています。ある州の境界の定義の解像度が非常に高く、この州のジオメトリ・オブジェクトの文字列のサイズが128KBを超えているとします。ここで、Oracle Analyticsによってデータセットが作成され、データセットに対して行われた問合せで、データセットのすべての列が参照されるとします。ジオメトリをマップに投影すると、マップには49州のみが表示されます。128KBを超える州はマップに表示されず、マップ上の情報アイコンのダイアログに警告が表示されます。
ジオメトリ形状のサイズが128KBを超える場合は、次の代替の回避策を試すことができます:
- ポリゴンの定義を簡略化し(ポリゴンの境界を定める点の数を減らす)、技術的な保存量を減らします。
- ポリゴンを複数の別個のポリゴンに分割して、各ピースのサイズを小さくします。
- たとえば、表に米国の州に関するデータが含まれているとします。表には50行があり、州の形状を表すポリゴンを含むジオメトリ・データ型の列がそれぞれに含まれています。ある州の境界の定義の解像度が非常に高く、この州のジオメトリ・オブジェクトの文字列のサイズが128KBを超えているとします。ここで、Oracle Analyticsによってデータセットが作成され、データセットに対して行われた問合せで、データセットのすべての列が参照されるとします。ジオメトリをマップに投影すると、マップには49州のみが表示されます。128KBを超える州はマップに表示されず、マップ上の情報アイコンのダイアログに警告が表示されます。
- Oracle Analyticsでは、2Dマップ座標系のみがサポートされます。データ・ソースに定義されている既知の座標系は、WGS 84 (EPSG 4326)に投影されます。
- ジオメトリ・データを含むファイルベースのデータ・ソースは、ジオメトリ・フィールドがWell-Known Text (WKT)形式として表されるテキスト/CSVファイルである必要があります。WKTは、ベクトル・ジオメトリ・オブジェクトを表すテキスト・マークアップ言語です。Points、MultiPoints、LineString、Polygons、MultiPolygonsなどの個別のジオメトリ・オブジェクトを表すことができます。GeometryCollectionやFeatureCollectionなどのWKT形式の構文はサポートされていません。
- ジオメトリ・データを含むGeoJSON形式のファイルは、Oracle Analyticsでジオメトリを含むデータセットとしてインポートすることはサポートされていません。ジオメトリ列を含むデータセットを作成するには、まず、GeoJSONファイルをWKTジオメトリ形式でCSVに変換するか、SDO.Geometry形式でOracleデータベースにロードする必要があります。
ジオメトリ・データ型のパフォーマンスに関する考慮事項
ジオメトリ・データ型には、その機能を最大限に活用するために理解しておく必要があるパフォーマンス上の考慮事項があります。
ジオメトリ・データ型を使用する場合は、次のパフォーマンス上の考慮事項に留意する必要があります:
- マップによって取得されるデータの物理サイズ
- 多数の異なるジオメトリ・レコードを持つ大きいデータセットの場合、マップ・ビジュアライゼーションをレンダリングする際のパフォーマンスは、ネットワークを介してOracle Analyticsが実行されているブラウザに転送されるジオメトリ・データのサイズによって影響を受ける可能性があります。パフォーマンスは、マップに表される個別のジオメトリの数と、各ジオメトリの平均サイズ(KB単位)の組合せに左右されます。マップ・ビジュアライゼーションが作成されると、ネットワークを介して、マップ上の個別の形状ごと、および個別のレイヤーごとにジオメトリ定義がフェッチされます。ジオメトリのリストが非常に大きい場合、ジオメトリの定義が非常に細かいと(平均サイズが大きい)、レンダリングに時間がかかります。
- 緩和 マップでジオメトリを使用しすぎないようにします。システムで最大125,000個のジオメトリがサポートされている場合でも、使用数が多すぎると、マップのレンダリングが遅くなる可能性があります。一度に多数の形状を表示する必要がある場合は、特定の領域をフィルタリングして、ユーザーが一度に1つの領域を表示できるようにします。
- 空間デカルト結合
- GeometryDistance、GeometryRelate、GeometryWithinDistanceなどの空間計算関数では、2つの結合されたデータセットが必要な場合があります。これらの関数では、データ内のすべてのジオメトリのペアを計算するために、多対多の結合タイプが必要になる場合があります。問合せのパフォーマンスへの影響を最小限に抑えるために、このモデリングは慎重に設計する必要があります。
- 緩和
- データ・モデル、および最も重要であるジオメトリ・レコードに対するデータ・フィルタリングを使用して、デカルト結合の影響を回避します。
- データベースを使用する場合、空間計算によって関数がデータベースに送られて、Oracle Analyticsで計算の結果が取得されます。パフォーマンスを最適化する場合は、この関数の転送が適切に行われていることを確認してください。(データ・フローまたはワークブックに)他の計算が追加され、Oracle Analyticsが作業をデータベースにプッシュ・ダウンできないことがあります。パフォーマンスのトラブルシューティングのコンテキストでは、関数の転送を可能にするコンテキストを確認することが重要です。
Oracle Spatial計算のリスト
ジオメトリ・データ型を操作する場合は、Oracle Analytics計算ライブラリの次のリストにある空間関数を使用できます。
空間関数 | 構文 | 説明 |
---|---|---|
GeometryArea | GeometryArea(shape_expr) | 形状が占有する領域を計算します。 |
GeometryLength | GeometryLength(shape_expr) | 形状の円周を計算します。 |
GeometryAsText | GeometryAsText(shape_expr) | ジオメトリ列のlongvarbinary値をWell-Known Text (WKT)形式(ジオメトリ・オブジェクトを表すための標準形式)に変換します。 |
GeometryDistance | GeometryDistance(shape_expr1,shape_expr2) | 2つの形状間の距離を計算します。 |
GeometryRelate | GeometryRelate(shape_expr1,shape_expr2) | ある形状が別の形状の内側にあるかどうかを判別します。 |
GeometryWithinDistance | GeometryWithinDistance(shape_expr1, shape_expr2,distance_expr) | 2つの形状が相互に指定された距離内にあるかどうかを判断します。 |
ジオメトリ・データ型で使用できる引数の説明:
- shape_expr - 有効なジオメトリ列または形状式を表します。
- shape_expr1、shape_expr2 - 有効なジオメトリ列または形状式を表します。
- distance_expr - メートル単位の数値に評価される式を表します。