B HiveおよびSparkの空間SQL関数

この付録では、HiveおよびSparkの空間SQL関数に関する参照情報を提供します。

これらの関数を使用するには、必要に応じて次のいずれかで説明されている概念および技術を理解している必要があります。

これらの関数はアルファベット順に示します。ただし、これらは、ジオメトリ・コンストラクタ、単一のジオメトリ関数、および2つのジオメトリ関数にグループ化できます。

ジオメトリ・コンストラクタ:

単一のジオメトリ関数:

2つのジオメトリ関数:

B.1 ST_AnyInteract

形式

ST_AnyInteract(
  geometry1  ST_Geometry,
  geometry1  ST_Geometry,
  tolerance  NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

geometry1geometry2との空間的相互作用を持つかどうかを確認し、trueまたはfalseを返します。

パラメータ

geometry1

2次元および3次元のオブジェクト。

geometry2

もう1つの2次元および3次元のオブジェクト。

tolerance

geometry2が有効である許容差。

使用上の注意

これらのジオメトリは両方とも、同じ数の次元(2または3)および同じ空間参照システム(SRIDまたは座標系)を持つ必要があります。

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_AnyInteract(
  ST_Point('{ "type": "Point", "coordinates": [2, 3]}', 8307),
  ST_Polygon('{"type": "Polygon","coordinates": [[[1, 2], [5, 2], [5, 6], [1, 6], [1, 2]]]}', 8307))
from hivetable LIMIT 1; 
-- return true

B.2 ST_Area

形式

ST_Area(
  geometry   ST_Geometry
  tolerance  NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

ポリゴンまたはマルチポリゴン・ジオメトリの領域を返します。

パラメータ

geometry

ST_Geometryオブジェクト。

tolerance

2つの点が離れていながら同じであると見なすことができる距離を表す値。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Area(ST_Polygon('{"type": "Polygon","coordinates": [[[1, 2], [5, 2], [5, 7], [1, 7], [1, 2]]]}', 0))
  from hivetable LIMIT 1;  -- return 20

B.3 ST_AsWKB

形式

ST_AsWKB(
  geometry ST_Geometry); 

説明

ジオメトリのWKB (Well-Known Binary)表現を返します。

パラメータ

geometry

ST_Geometryオブジェクト。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_AsWKB( ST_Point('{ "type": "Point", "coordinates": [0, 5]}', 8307))
   from hivetable LIMIT 1;

B.4 ST_AsWKT

形式

ST_AsWKT(
  geometry ST_Geometry); 

説明

ジオメトリのWKT (Well-Known Text)表現を返します。

パラメータ

geometry

ST_Geometryオブジェクト。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_AsWKT(ST_Point('{ "type": "Point", "coordinates": [0, 5]}', 8307)) 
  from hivetable LIMIT 1;

B.5 ST_Buffer

形式

ST_Buffer(
  geometry     ST_Geometry,
  bufferWidth  NUMBER,
  arcTol       NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

入力ジオメトリがバッファされたバージョンである新しいST_Geometryオブジェクトを生成します。

パラメータ

geometry

任意の2次元オブジェクト。ジオメトリが測地である場合、これはWGS84空間参照システム内の緯度/情報値として解釈され、bufferWidthおよびtoleranceはメートルとして解釈されます。

bufferWidth

バッファに使用する距離値。

arcTol

測地円弧高密度化に使用する許容差。(非測地ジオメトリの場合は無視されます。)

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Buffer(ST_Point('{ "type": "Point", "coordinates": [0, 5]}', 0), 3)
  from hivetable LIMIT 1; 
-- return {"type":"Polygon", "coordinates": [[[-3,5],[-2.8977774789,4.2235428647],[-2.5980762114,3.5],[-2.1213203436,2.8786796564],[-1.5,2.4019237886],[-0.7764571353,2.1022225211],[0,2],[0.7764571353,2.1022225211],[1.5,2.4019237886],[2.1213203436,2.8786796564],[2.5980762114,3.5],[2.8977774789,4.2235428647],[3,5],[2.8977774789,5.7764571353],[2.5980762114,6.5],[2.1213203436,7.1213203436],[1.5,7.5980762114],[0.7764571353,7.8977774789],[0,8],[-0.7764571353,7.8977774789],[-1.5,7.5980762114],[-2.1213203436,7.1213203436],[-2.5980762114,6.5],[-2.8977774789,5.7764571353],[-3,5]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}

B.6 ST_Contains

形式

ST_Contains(
  geometry1  ST_Geometry,
  geometry1  ST_Geometry,
  tolerance  NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

geometry1geometry2が含まれるかどうかを確認し、trueまたはfalseを返します。

パラメータ

geometry1

ポリゴンまたは立体ジオメトリ・オブジェクト。

geometry2

もう1つの2次元および3次元のオブジェクト。

tolerance

geometry2が有効である許容差。

使用上の注意

これらのジオメトリは両方とも、同じ数の次元(2または3)および同じ空間参照システム(SRIDまたは座標系)を持つ必要があります。

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Contains(
  ST_Polygon('{"type": "Polygon","coordinates": [[[1, 2], [5, 2], [5, 6], [1, 6], [1, 2]]]}', 8307),
  ST_Point('{ "type": "Point", "coordinates": [2, 3]}', 8307))
from hivetable LIMIT 1; 
-- return true 

B.7 ST_ConvexHull

形式

ST_ConvexHull(
  geometry ST_Geometry); 

説明

入力ジオメトリの凸包をST_Geometryオブジェクトとして返します。

パラメータ

geometry

2次元のST_Geometryオブジェクト。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_ConvexHull(
  ST_MultiPoint(' { "type": "MultiPoint","coordinates": [ [1, 2], [-1, -2], [5, 6] ] }', 0))
from hivetable LIMIT 1; 
-- return {"type":"Polygon", "coordinates":[[[5,6],[1,2],[-1,-2],[5,6]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}} 

B.8 ST_Distance

形式

ST_Distance(
  geometry1  ST_Geometry,
  geometry1  ST_Geometry,
  tolerance  NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

2つの2次元ジオメトリ間の距離を確認します。

パラメータ

geometry1

2次元のジオメトリ・オブジェクト。

geometry2

2次元のジオメトリ・オブジェクト。

tolerance

geometry2が有効である許容差。

使用上の注意

この関数は、2つの特定のジオメトリ間の距離を返します。投影されたデータの場合、距離の単位は投影の単位と同じです。測地データの場合、距離はメートル単位です。

エラーが発生した場合、この関数は-1を返します。

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Distance(
  ST_Point('{ "type": "Point", "coordinates": [0, 0]}', 0),
  ST_Point('{ "type": "Point", "coordinates": [6, 8]}', 0))
from hivetable LIMIT 1; 
-- return 10.0 

B.9 ST_Envelope

形式

ST_Envelope(
  geometry ST_Geometry); 

説明

入力ジオメトリのエンベロープ(境界ポリゴン)をST_Geometryオブジェクトとして返します。

パラメータ

geometry

2次元のST_Geometryオブジェクト。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Envelope(
  ST_MultiPoint(' { "type": "MultiPoint","coordinates": [ [1, 2], [-1, -2], [5, 6] ] }', 0))  
from hivetable LIMIT 1; 
-- return {"type":"Polygon", "coordinates":[[[-1,-2],[5,-2],[5,6],[-1,6],[-1,-2]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}

B.10 ST_Geometry

形式

ST_GEOMETRY(
  geometry STRING
  srid INT); 

または

ST_GEOMETRY(
  geometry BINARY
  srid INT); 

または

ST_GEOMETRY(
  geometry Object
  hiveRecordInfoProvider STRING); 

説明

ジオメトリのGeoJSON文字列表現を作成し、ジオメトリのGeoJSON文字列表現を返します。

パラメータ

geometry

GeoJSONまたはWKT文字列からジオメトリを作成するには(最初の形式): GeoJSONまたはWKT形式のジオメトリ定義。

WKBオブジェクトからジオメトリを作成するには(2番目の形式): WKB形式のジオメトリ定義。

Hiveオブジェクトを使用してジオメトリを作成するには(3番目の形式): Hiveでサポートされているタイプのジオメトリ定義。

srid
空間参照システム(座標系)識別子。
hiveRecordInfoProvider
ジオメトリをGeoJSON形式で抽出するためのインタフェースoracle.spatial.hadoop.vector.hive.HiveRecordInfoProviderの実装の完全修飾名。

hiveRecordInfoProviderパラメータを使用した関数の形式は、Spark空間SQL関数には適用されません。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

-- creates a point using GeoJSON
select ST_Geometry (' { "type": "Point", "coordinates": [100.0, 0.0]}', 8307) from hivetable LIMIT 1;
-- creates a point using WKT
select ST_Geometry ('point(100.0 0.0)', 8307) from hivetable LIMIT 1;
-- creates the geometries using a HiveRecordInfoProvider
select ST_Geometry (geoColumn, ���hive.samples.SampleHiveRecordInfoProviderImpl���) from hivetable;

B.11 ST_Inside

形式

ST_Inside(
  geometry1  ST_Geometry,
  geometry1  ST_Geometry,
  tolerance  NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

geometry1geometry2内にあるかどうかを確認し、trueまたはfalseを返します。

パラメータ

geometry1

2次元および3次元のオブジェクト。

geometry2

ポリゴンまたは立体ジオメトリ・オブジェクト。

tolerance

geometry1が有効である許容差。

使用上の注意

これらのジオメトリは両方とも、同じ数の次元(2または3)および同じ空間参照システム(SRIDまたは座標系)を持つ必要があります。

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Inside(
  ST_Point('{ "type": "Point", "coordinates": [2, 3]}', 8307),
  ST_Polygon('{"type": "Polygon","coordinates": [[[1, 2], [5, 2], [5, 6], [1, 6], [1, 2]]]}', 8307))
from hivetable LIMIT 1; 
-- return true 

B.12 ST_Length

形式

ST_Length(
  geometry   ST_Geometry
  tolerance  NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

線またはポリゴン・ジオメトリの長さを返します。

パラメータ

geometry

ST_Geometryオブジェクト。

tolerance

2つの点が離れていながら同じであると見なすことができる距離を表す値。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Length(ST_Polygon('{"type": "Polygon","coordinates": [[[1, 2], [5, 2], [5, 6], [1, 6], [1, 2]]]}', 0))
  from hivetable LIMIT 1;  -- return 16

B.13 ST_LineString

形式

ST_LineString(
  geometry STRING
  srid INT); 

または

ST_LineString(
  geometry BINARY
  srid INT); 

または

ST_LineString(
  geometry Object
  hiveRecordInfoProvider STRING); 

説明

線ストリング・ジオメトリをGeoJSON形式で作成し、ジオメトリのGeoJSON文字列表現を返します。

パラメータ

geometry

GeoJSONまたはWKT文字列からジオメトリを作成するには(最初の形式): GeoJSONまたはWKT形式のジオメトリ定義。

WKBオブジェクトからジオメトリを作成するには(2番目の形式): WKB形式のジオメトリ定義。

Hiveオブジェクトを使用してジオメトリを作成するには(3番目の形式): Hiveでサポートされているタイプのジオメトリ定義。

srid
空間参照システム(座標系)識別子。
hiveRecordInfoProvider
ジオメトリをGeoJSON形式で抽出するためのインタフェースoracle.spatial.hadoop.vector.hive.HiveRecordInfoProviderの実装の完全修飾名。

hiveRecordInfoProviderパラメータを使用した関数の形式は、Spark空間SQL関数には適用されません。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

-- creates a line using GeoJSON
select ST_LineString (' { "type": "LineString","coordinates": [ [100.0, 0.0], [101.0, 1.0] ]} ', 8307) from hivetable LIMIT 1;
-- creates a line using WKT
select ST_LineString (' linestring(1 1, 5 5, 10 10, 20 20)', 8307) from hivetable LIMIT 1;
-- creates the lines using a HiveRecordInfoProvider
select ST_LineString (geoColumn, ���mypackage.hiveRecordInfoProviderImpl���) from hivetable;

B.14 ST_MultiLineString

形式

ST_MultiLineString(
  geometry STRING
  srid INT); 

または

ST_MultiLineString(
  geometry BINARY
  srid INT); 

または

ST_MultiLineString(
  geometry Object
  hiveRecordInfoProvider STRING); 

説明

複数の線ストリング・ジオメトリをGeoJSON形式で作成し、ジオメトリのGeoJSON文字列表現を返します。

パラメータ

geometry

GeoJSONまたはWKT文字列からジオメトリを作成するには(最初の形式): GeoJSONまたはWKT形式のジオメトリ定義。

WKBオブジェクトからジオメトリを作成するには(2番目の形式): WKB形式のジオメトリ定義。

Hiveオブジェクトを使用してジオメトリを作成するには(3番目の形式): Hiveでサポートされているタイプのジオメトリ定義。

srid
空間参照システム(座標系)識別子。
hiveRecordInfoProvider
ジオメトリをGeoJSON形式で抽出するためのインタフェースoracle.spatial.hadoop.vector.hive.HiveRecordInfoProviderの実装の完全修飾名。

hiveRecordInfoProviderパラメータを使用した関数の形式は、Spark空間SQL関数には適用されません。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

-- creates a MultiLineString using GeoJSON
select ST_ MultiLineString (' { "type": "MultiLineString","coordinates": [ [ [100.0, 0.0], [101.0, 1.0] ], [ [102.0, 2.0], [103.0, 3.0] ]] }', 8307) from hivetable LIMIT 1;
-- creates a MultiLineString using WKT
select ST_ MultiLineString ('multilinestring ((10 10, 20 20, 10 40),
(40 40, 30 30, 40 20, 30 10))', 8307) from hivetable LIMIT 1;
-- creates MultiLineStrings using a HiveRecordInfoProvider
select ST_ MultiLineString (geoColumn, ���mypackage.hiveRecordInfoProviderImpl���) from hivetable;

B.15 ST_MultiPoint

形式

ST_MultiPoint(
  geometry STRING
  srid INT); 

または

ST_MultiPoint(
  geometry BINARY
  srid INT); 

または

ST_MultiPoint(
  geometry Object
  hiveRecordInfoProvider STRING); 

説明

複数点ジオメトリをGeoJSON形式で作成し、ジオメトリのGeoJSON文字列表現を返します。

パラメータ

geometry

GeoJSONまたはWKT文字列からジオメトリを作成するには(最初の形式): GeoJSONまたはWKT形式のジオメトリ定義。

WKBオブジェクトからジオメトリを作成するには(2番目の形式): WKB形式のジオメトリ定義。

Hiveオブジェクトを使用してジオメトリを作成するには(3番目の形式): Hiveでサポートされているタイプのジオメトリ定義。

srid
空間参照システム(座標系)識別子。
hiveRecordInfoProvider
ジオメトリをGeoJSON形式で抽出するためのインタフェースoracle.spatial.hadoop.vector.hive.HiveRecordInfoProviderの実装の完全修飾名。

hiveRecordInfoProviderパラメータを使用した関数の形式は、Spark空間SQL関数には適用されません。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

-- creates a MultiPoint using GeoJSON
select ST_MultiPoint (' { "type": "MultiPoint","coordinates": [ [100.0, 0.0], [101.0, 1.0] ] }', 8307) from hivetable LIMIT 1;
-- creates a MultiPoint using WKT
select ST_ MultiPoint ('multipoint ((10 40), (40 30), (20 20), (30 10))', 8307) from hivetable LIMIT 1;
-- creates MultiPoints using a HiveRecordInfoProvider
select ST_ MultiPoint (geoColumn, ���mypackage.hiveRecordInfoProviderImpl���) from hivetable;

B.16 ST_MultiPolygon

形式

ST_MultiPolygon(
  geometry STRING
  srid INT); 

または

ST_MultiPolygon(
  geometry BINARY
  srid INT); 

または

ST_MultiPolygon(
  geometry Object
  hiveRecordInfoProvider STRING); 

説明

複数ポリゴン・ジオメトリをGeoJSON形式で作成し、ジオメトリのGeoJSON文字列表現を返します。

パラメータ

geometry

GeoJSONまたはWKT文字列からジオメトリを作成するには(最初の形式): GeoJSONまたはWKT形式のジオメトリ定義。

WKBオブジェクトからジオメトリを作成するには(2番目の形式): WKB形式のジオメトリ定義。

Hiveオブジェクトを使用してジオメトリを作成するには(3番目の形式): Hiveでサポートされているタイプのジオメトリ定義。

srid
空間参照システム(座標系)識別子。
hiveRecordInfoProvider
ジオメトリをGeoJSON形式で抽出するためのインタフェースoracle.spatial.hadoop.vector.hive.HiveRecordInfoProviderの実装の完全修飾名。

hiveRecordInfoProviderパラメータを使用した関数の形式は、Spark空間SQL関数には適用されません。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

-- creates a MultiPolygon using GeoJSON
select ST_ MultiPolygon (' { "type": "MultiPolygon","coordinates": [[[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]], [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]], [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]] ] }', 8307) from hivetable LIMIT 1;
-- creates a MultiPolygon using WKT
select ST_ MultiPolygon ('multipolygon(((30 20, 45 40, 10 40, 30 20)),
((15 5, 40 10, 10 20, 5 10, 15 5)))', 8307) from hivetable LIMIT 1;
-- creates MultiPolygons using a HiveRecordInfoProvider
select ST_ MultiPolygon (geoColumn, ���mypackage.hiveRecordInfoProviderImpl���) from hivetable;

B.17 ST_Point

形式

ST_Point(
  geometry STRING
  srid INT); 

または

ST_Point(
  geometry BINARY
  srid INT); 

または

ST_Point(
  geometry Object
  hiveRecordInfoProvider STRING); 

説明

点ジオメトリをGeoJSON形式で作成し、ジオメトリのGeoJSON文字列表現を返します。

パラメータ

geometry

GeoJSONまたはWKT文字列からジオメトリを作成するには(最初の形式): GeoJSONまたはWKT形式のジオメトリ定義。

WKBオブジェクトからジオメトリを作成するには(2番目の形式): WKB形式のジオメトリ定義。

Hiveオブジェクトを使用してジオメトリを作成するには(3番目の形式): Hiveでサポートされているタイプのジオメトリ定義。

srid
空間参照システム(座標系)識別子。
hiveRecordInfoProvider
ジオメトリをGeoJSON形式で抽出するためのインタフェースoracle.spatial.hadoop.vector.hive.HiveRecordInfoProviderの実装の完全修飾名。

hiveRecordInfoProviderパラメータの形式は、Spark空間SQL関数には適用されません。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

-- creates a point using GeoJSON
select ST_Point (' { "type": "Point", "coordinates": [100.0, 0.0]}', 8307) from hivetable LIMIT 1;
-- creates a point using WKT
select ST_Point ('point(100.0 0.0)', 8307) from hivetable LIMIT 1;
-- creates the points using a HiveRecordInfoProvider
select ST_Point (geoColumn, ���hive.samples.SampleHiveRecordInfoProviderImpl���) from hivetable;

B.18 ST_Polygon

形式

ST_Polygon(
  geometry STRING
  srid INT); 

または

ST_Polygon(
  geometry BINARY
  srid INT); 

または

ST_Polygon(
  geometry Object
  hiveRecordInfoProvider STRING); 

説明

ポリゴン・ジオメトリをGeoJSON形式で作成し、ジオメトリのGeoJSON文字列表現を返します。

パラメータ

geometry

GeoJSONまたはWKT文字列からジオメトリを作成するには(最初の形式): GeoJSONまたはWKT形式のジオメトリ定義。

WKBオブジェクトからジオメトリを作成するには(2番目の形式): WKB形式のジオメトリ定義。

Hiveオブジェクトを使用してジオメトリを作成するには(3番目の形式): Hiveでサポートされているタイプのジオメトリ定義。

srid
空間参照システム(座標系)識別子。
hiveRecordInfoProvider
ジオメトリをGeoJSON形式で抽出するためのインタフェースoracle.spatial.hadoop.vector.hive.HiveRecordInfoProviderの実装の完全修飾名。

hiveRecordInfoProviderパラメータを使用した関数の形式は、Spark空間SQL関数には適用されません。

使用上の注意

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

-- creates a polygon using GeoJSON
select ST_Polygon (' { "type": "Polygon","coordinates": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ]] }', 8307) from hivetable LIMIT 1;
-- creates a polygon using WKT
select ST_ Polygon ('polygon((0 0, 10 0, 10 10, 0 0))', 8307) from hivetable LIMIT 1;
-- creates the polygons using a HiveRecordInfoProvider
select ST_ Polygon (geoColumn, ���mypackage.hiveRecordInfoProviderImpl���) from hivetable;

B.19 ST_Simplify

形式

ST_Simplify(
  geometry   ST_Geometry,
  threshold  NUMBER); 

説明

Douglas-Peuckerアルゴリズムを使用して入力ジオメトリを簡素化することにより、新しいST_Geometryオブジェクトを生成します。

パラメータ

geometry

任意の2次元オブジェクト。ジオメトリが測地である場合、これはWGS84空間参照システム内の緯度/情報値として解釈され、bufferWidthおよびtoleranceはメートルとして解釈されます。

threshold

ジオメトリの簡素化に使用するしきい値。正数である必要があります。(ゼロを使用すると、入力ジオメトリが返されます。)入力ジオメトリが測地である場合、この値はメートル数です。入力ジオメトリが測地以外である場合、この値はデータに関連付けられた単位数です。

しきい値が下がると、生成されるジオメトリが入力ジオメトリに近くなる可能性があり、しきい値が上がると、返されるジオメトリ内の頂点の数が減る可能性があります。

使用上の注意

しきい値に応じて、ポリゴンを線または点に簡素化したり、線を点に簡素化したりできます。したがって、出力ジオメトリ・タイプが入力ジオメトリ・タイプとは異なる可能性があるため、出力オブジェクトのタイプをチェックする必要があります。

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Simplify(
  ST_POLYGON('{"type": "Polygon","coordinates": [[[1, 2], [1.01, 2.01], [5, 2], [5, 6], [1, 6], [1, 2]]]}', 0), 
  1) 
from hivetable LIMIT 1;
-- return {"type":"Polygon", "coordinates":[[[1,2],[5,2],[5,6],[1,6],[1,2]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}

B.20 ST_SimplifyVW

形式

ST_SimplifyVW(
  geometry   ST_Geometry,
  threshold  NUMBER); 

説明

Visvalingham-Whyattアルゴリズムを使用して入力ジオメトリを簡素化することにより、新しいST_Geometryオブジェクトを生成します。

パラメータ

geometry

任意の2次元オブジェクト。ジオメトリが測地である場合、これはWGS84空間参照システム内の緯度/情報値として解釈され、bufferWidthおよびtoleranceはメートルとして解釈されます。

threshold

ジオメトリの簡素化に使用するしきい値。正数である必要があります。(ゼロを使用すると、入力ジオメトリが返されます。)入力ジオメトリが測地である場合、この値はメートル数です。入力ジオメトリが測地以外である場合、この値はデータに関連付けられた単位数です。

しきい値が下がると、生成されるジオメトリが入力ジオメトリに近くなる可能性があり、しきい値が上がると、返されるジオメトリ内の頂点の数が減る可能性があります。

使用上の注意

しきい値に応じて、ポリゴンを線または点に簡素化したり、線を点に簡素化したりできます。したがって、出力ジオメトリ・タイプが入力ジオメトリ・タイプとは異なる可能性があるため、出力オブジェクトのタイプをチェックする必要があります。

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_SimplifyVW(
  ST_POLYGON('{"type": "Polygon","coordinates": [[[1, 2], [1.01, 2.01], [5, 2], [5, 6], [1, 6], [1, 2]]]}', 0), 
  50) 
from hivetable LIMIT 1; 
-- return {"type":"Polygon", "coordinates":[[[1,2],[5,6],[1,6],[1,2]]],"crs":{"type":"name","properties":{"name":"EPSG:0"}}}

B.21 ST_Volume

形式

ST_Volume(
  multipolygon  ST_MultiPolygon,
  tolerance     NUMBER DEFAULT 0 (nongeodetic geometries) or 0.05 (geodetic geometries)); 

説明

マルチポリゴン3次元ジオメトリの領域を返します。マルチポリゴンは立体として処理されます。

パラメータ

multipolygon

ST_Multipolygonオブジェクト。

tolerance

2つの点が離れていながら同じであると見なすことができる距離を表す値。

使用上の注意

投影されたデータの場合、ボリュームの単位は投影の単位と同じです。測地データの場合、ボリュームは立方メートルです。

エラーの場合、-1を返します。

概念と使用方法の詳細は、Oracle Big Data Spatial Vector Hive AnalysisおよびOracle Big Data Spatial Vector Analysis for Sparkも参照してください。

select ST_Volume(
  ST_MultiPolygon (' { "type": "MultiPolygon", "coordinates": 
    [[[[0, 0, 0], [0, 0, 1], [0, 1, 1], [0, 1, 0], [0, 0, 0]]], 
    [[[0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0], [0, 0, 0]]], 
    [[[0, 0, 0], [1, 0, 0], [1, 0, 1], [0, 0, 1], [0, 0, 0]]],
    [[[1, 1, 0], [1, 1, 1], [1, 0, 1], [1, 0, 0], [1, 1, 0]]],
    [[[0, 1, 0], [0, 1, 1], [1, 1, 1], [1, 1, 0], [0, 1, 0]]],
    [[[0, 0, 1], [1, 0, 1], [1, 1, 1], [0, 1, 1], [0, 0, 1]]]]}', 
    0))
  from hivetable LIMIT 1; -- return 1.0