1.16 Oracle SpatialでのJSONおよびGeoJSONのサポート
Spatialでは、JSONおよびGeoJSONオブジェクトを使用したJSON (JavaScript Object Notation)形式の地理データの格納、索引付けおよび管理がサポートされます。
リリース18.1で導入されたJSONのサポートにより、以前のリリースで使用可能な制限付きのGeoJSONのサポートは大幅に拡張されており、2Dおよび3D、ソリッド、面、LRSジオメトリを含む広範囲のジオメトリがサポートされています。SpatialのGeoJSON固有のAPIは引き続きサポートされますが、より包括的なJSONサポートの使用をお薦めします。
- Oracle SpatialでのJSONのサポート
Spatialでは、JSONオブジェクトを使用したJSON (JavaScript Object Notation)形式の地理データの格納、索引付けおよび管理がサポートされます。 - Oracle SpatialでのGeoJSONのサポート
Oracle Spatialでは、GeoJSONオブジェクトを使用したJSON (JavaScript Object Notation)形式の地理データの格納、索引付けおよび管理がサポートされます。 - 空間ジオメトリ・オブジェクトのJSONスキーマ
Spatialは、空間データをJSON (JavaScript Object Notation)形式で格納するために内部スキーマを使用します。
親トピック: Spatialの概念
1.16.1 Oracle SpatialでのJSONのサポート
Spatialでは、JSONオブジェクトを使用したJSON (JavaScript Object Notation)形式の地理データの格納、索引付けおよび管理がサポートされます。
Oracle SpatialのSDO_GEOMETRYオブジェクトをJSONジオメトリ・オブジェクトに変換したり、JSONジオメトリ・オブジェクトをSDO_GEOMETRYオブジェクトに変換して返すことができます。
SpatialでのJSONのサポートには次のものが含まれます。
-
SDO_UTIL.TO_JSON: SDO_GEOMETRYオブジェクトをCLOB形式のJSONオブジェクトに変換します。
-
SDO_UTIL.TO_JSON_VARCHAR: SDO_GEOMETRYオブジェクトをVARCHAR2形式のJSONオブジェクトに変換します。
-
SDO_UTIL.FROM_JSON: JSONオブジェクト(CLOBまたはVARCHAR2形式)をSDO_GEOMETRYオブジェクトに変換します。このファンクションは、GeoJSONオブジェクトをSDO_GEOMETRYオブジェクトに変換することもできます。
例1-3 SpatialでのJSONのサポート
この例では、Oracle SpatialでJSONサポートを使用した操作をいくつか示します。この例では、JSON列(CLOB
、JSON
およびVARCHAR2
データ型)とSDO_GEOMETRY列を含む単純な表を作成し、サンプル・データを挿入し、単純な問合せを実行し、空間索引を作成し、SDO_WITHIN_DISTANCE演算子を使用して問合せを実行します。
例では、IS JSON
Oracle SQL条件をCREATE TABLE文内のチェック制約として使用して、CLOB列にJSONデータが含まれていることを確認します。詳細は、『Oracle Database JSON開発者ガイド』を参照してください。
例には、説明のコメントとSQL文の出力が含まれます。(出力は、簡単に読むことができるように、再フォーマットされています。)
-- Some operations using JSON support in Spatial.
-- Create a table with 3 columns: one JSONC (JSON CLOB), one JSONV (JSON VARCHAR2),
-- and one SDO_GEOMETRY.
CREATE TABLE JSON_TBL (
jsonc CLOB, jsonj JSON, jsonv VARCHAR2(4000),
geom SDO_GEOMETRY,
CONSTRAINT json_tbl_json CHECK (jsonc IS JSON) ) tablespace tbs_3;
Table created.
-- Test the constraint
INSERT INTO json_tbl VALUES ('Not JSON', NULL, NULL, NULL);
ORA-02290: check constraint (SCOTT.JSON_TBL_JSON) violated
-- Insert some data (2 points).
INSERT INTO JSON_TBL(jsonc)
VALUES ('{"srid": 4326, "point": {"directposition": [123.4, -10.1]}}');
1 row created.
INSERT INTO JSON_TBL(jsonc)
VALUES ('{"srid": 4326, "point": {"directposition": [123.5, -10.2]}}');
1 row created.
COMMIT;
Commit complete.
-- Update the table with the VARCHAR formatted JSON object and
-- an SDO_GEOMETRY created from a JSON object
UPDATE JSON_TBL SET
jsonj=SDO_UTIL.TO_JSON_JSON(SDO_UTIL.FROM_JSON(jsonc)),
jsonv=SDO_UTIL.TO_JSON_VARCHAR(SDO_UTIL.FROM_JSON(jsonc)),
geom=SDO_UTIL.FROM_JSON(jsonc);
2 rows updated.
COMMIT;
Commit complete.
SELECT jsonc, jsonj, jsonv, geom FROM json_tbl;
JSONC
--------------------------------------------------------------------------------
JSONJ
--------------------------------------------------------------------------------
JSONV
--------------------------------------------------------------------------------
GEOM(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)
--------------------------------------------------------------------------------
{"srid": 4326, "point": {"directposition": [123.4, -10.1]}}
{"srid": 4326, "point": {"directposition": [123.4, -10.1]}}
{"srid": 4326, "point": {"directposition": [123.4, -10.1]}}
SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(123.4, -10.1, NULL), NULL, NULL)
{"srid": 4326, "point": {"directposition": [123.5, -10.2]}}
{"srid": 4326, "point": {"directposition": [123.5,-10.2]}}
{"srid": 4326, "point": {"directposition": [123.5, -10.2]}}
SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(123.5, -10.2, NULL), NULL, NULL)
1.16.2 Oracle SpatialでのGeoJSONのサポート
Oracle Spatialでは、GeoJSONオブジェクトを使用したJSON (JavaScript Object Notation)形式の地理データの格納、索引付けおよび管理がサポートされます。
SpatialのSDO_GEOMETRYオブジェクトをGeoJSONオブジェクトに、また、GeoJSONオブジェクトをSDO_GEOMETRYオブジェクトに変換できます。空間演算子、ファンクションおよび特別なSDO_GEOMETRYメソッドを使用してGeoJSONデータを扱うことができます。
SpatialでのGeoJSONのサポートには次のものが含まれます。
-
SDO_GEOMETRYオブジェクトをGeoJSONオブジェクトに変換するSDO_UTIL.TO_GEOJSONファンクション。
-
GeoJSONオブジェクトをSDO_GEOMETRYオブジェクトに変換するSDO_UTIL.FROM_GEOJSONファンクション。
-
SDO_GEOMETRY型のGet_GeoJsonメソッド(メンバー・ファンクション)(説明と例については、「SDO_GEOMETRYのメソッド」を参照)。
例1-4 SpatialでのGeoJSONのサポート
この例では、SpatialでGeoJSONサポートを使用した操作をいくつか示します。例では、GeoJSON列とSDO_GEOMETRY列を持つ単純な表を作成し、サンプル・データを挿入して単純な問合せを実行します。空間索引を作成し、SDO_WITHIN_DISTANCE演算子を使用して問合せを実行します。
例では、次のJSON関連のOracle Databaseの機能を使用します(『Oracle Database JSON開発者ガイド』を参照)。
-
GeoJSONオブジェクトを反映したSDO_GEOMETRYオブジェクトを戻す、
RETURNING SDO_GEOMETRY
を指定したJSON_VALUE Oracle SQLファンクション -
列にJSONデータが含まれていることを確認する、CREATE TABLE文内のチェック制約のIS JSON Oracle SQL条件
例には、説明のコメントとSQL文の出力が含まれます。(出力は、簡単に読むことができるように、再フォーマットされています。)
-- Some operations using GeoJSON support in Spatial.
-- Create a table with 2 columns: one GeoJSON, one SDO_GEOMETRY.
CREATE TABLE GEO_TABLE (geojson_col VARCHAR2(4000), geom_col SDO_GEOMETRY,
CONSTRAINT CHECK (geojson_col IS JSON));
Table created.
-- Insert some data (2 points).
INSERT INTO GEO_TABLE(geojson_col)
values ('{"a":{"type":"Point","coordinates":[+123.4,+10.1]}}');
1 row created.
INSERT INTO GEO_TABLE(geojson_col)
values ('{"a":{"type":"Point","coordinates":[+123.5,-10.1]}}');
1 row created.
commit;
Commit complete.
SQL> -- For each geojson_col value, return what its SDO_GEOMETRY equivalent would be.
SQL> SELECT JSON_VALUE(geojson_col, '$.a' RETURNING SDO_GEOMETRY) from GEO_TABLE;
JSON_VALUE(GEOJSON_COL,'$.A'RETURNINGSDO_GEOMETRY)(SDO_GTYPE, SDO_SRID, SDO_POIN
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(123.4, 10.1, NULL), NULL, NULL)
SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(123.5, -10.1, NULL), NULL, NULL)
-- For a specified GeoJSON object definition, return what its SDO_GEOMETRY
-- equivalent would be.
SELECT JSON_VALUE('{"type":"Point","coordinates":[+123.5,-10.1]}',
'$' RETURNING SDO_GEOMETRY) from DUAL;
JSON_VALUE('{"TYPE":"POINT","COORDINATES":[+123.5,-10.1]}','$'RETURNINGSDO_GEOME
--------------------------------------------------------------------------------
SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(123.5, -10.1, NULL), NULL, NULL)
-- Update to populate geom_col with SDO_GEOMETRY objects reflecting the JSON data
-- in the geojson_col column.
UPDATE GEO_TABLE
set geom_col = JSON_VALUE(geojson_col, '$.a' RETURNING SDO_GEOMETRY);
2 rows updated.
commit;
Commit complete.
-- Create spatial index on the returned SDO_GEOMETRY objects from the JSON data.
CREATE INDEX GEO_TABLE_IX
ON GEO_TABLE
(
JSON_VALUE(geojson_col, '$.a' RETURNING SDO_GEOMETRY)
)
INDEXTYPE IS MDSYS.SPATIAL_INDEX_V2;
Index created.
-- SDO_WITHIN_DISTANCE query: Are two grometries within 100 miles apart?
SELECT 1
FROM GEO_TABLE
WHERE SDO_WITHIN_DISTANCE(
JSON_VALUE(geojson_col, '$.a' RETURNING SDO_GEOMETRY),
JSON_VALUE('{"type":"Point","coordinates":[+123.5,-10.1]}',
'$' RETURNING SDO_GEOMETRY),
'distance=100 unit=mile') = 'TRUE';
1
----------
1
1.16.3 空間ジオメトリ・オブジェクトのJSONスキーマ
Spatialは、空間データをJSON (JavaScript Object Notation)形式で格納するために内部スキーマを使用します。
このトピックが役立つのは、クライアント側でこのようなデータを読み取るパーサーを記述する場合です。空間データに使用されるJSONスキーマは、次のとおりです。
"$schema": "http://json-schema.org/draft-06/schema#",
"type": "object",
"anyOf": [
{ "$ref": "#/definitions/CompoundCurveSchema" },
{ "$ref": "#/definitions/CurveSchema" },
{ "$ref": "#/definitions/MultiGeometrySchema" },
{ "$ref": "#/definitions/PointSchema" },
{ "$ref": "#/definitions/PolygonSchema" },
{ "$ref": "#/definitions/SolidSchema" },
{ "$ref": "#/definitions/SurfaceSchema" }
],
"definitions": {
"CompoundCurveSchema": {
"description": "A JSON schema for compound curve geometry",
"type": "object",
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"compoundcurve": { "$ref": "#/definitions/compoundcurve" }
}
},
"CurveSchema": {
"description": "A JSON schema for curve geometry",
"type": "object",
"oneOf": [{
"required": [ "circulararc" ],
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"circulararc": { "$ref": "#/definitions/circulararc" }
}
}, {
"required": [ "line " ],
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"line": { "$ref": "#/definitions/line" }
}
}, {
"required": [ "nurbscurve " ],
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"nurbscurve": { "$ref": "#/definitions/nurbscurve" }
}}]
},
"MultiGeometrySchema": {
"description": "JSON schema for collections & multi-* curves, points and polygons",
"type": "object",
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"geometrycollection": { "$ref": "#/definitions/geometrycollection" }
}
},
"PointSchema": {
"description": "A JSON schema for point geometry",
"type": "object",
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"point": { "$ref": "#/definitions/point" }
}
},
"PolygonSchema": {
"description": "A JSON schema for polygon geometry",
"type": "object",
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"polygon": { "$ref": "#/definitions/polygon" }
}
},
"SolidSchema": {
"description": "A JSON schema for surface geometry",
"type": "object",
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"polygon": { "$ref": "#/definitions/solid" }
}
},
"SurfaceSchema": {
"description": "A JSON schema for surface geometry",
"type": "object",
"properties": {
"srid": { "$ref": "#/definitions/srid" },
"spatialdimension": { "$ref": "#/definitions/spatialdimension" },
"polygon": { "$ref": "#/definitions/polygons" }
}
},
"circle": {
"description": "An SDO_GEOMETRY optimized circle Polygon",
"type": "object",
"required": [ "datapoints" ],
"properties": {
"datapoints": { "$ref": "#/definitions/datapoints" }
}
},
"circulararc": {
"description": "An SDO_GEOMETRY arc string",
"type": "object",
"required": [ "datapoints" ],
"properties": {
"datapoints": { "$ref": "#/definitions/datapoints" }
}
},
"geometrycollection": {
"description": "A collection of SDO_GEOMETRY",
"type": "object",
"required": [ "geometries" ],
"properties": {
"geometries": { "$ref": "#/definitions/geometries" }
}
},
"knot": {
"description": "A Knot (value/multiplicity pair) in a NURBS curve",
"type": "object",
"required": [ "value", "multiplicity" ],
"properties": {
"value": { "$ref": "#/definitions/value" },
"multiplicity": { "$ref": "#/definitions/multiplicity" }
}
},
"line": {
"description": "An SDO_GEOMETRY linestring",
"type": "object",
"required": [ "datapoints" ],
"properties": {
"datapoints": { "$ref": "#/definitions/datapoints" }
}
},
"multipoint": {
"description": "An SDO_GEOMETRY MultiPoint",
"type": "object",
"required": [ "datapoints" ],
"properties": {
"datapoints": { "$ref": "#/definitions/datapoints" }
}
},
"nurbscurve": {
"description": "An SDO_GEOMETRY nurbscurve",
"type": "object",
"required": [ "degree", "controlpoints", "knots" ],
"properties": {
"degree": { "type": "integer" },
"controlpoints": { "$ref": "#/definitions/controlpoints" },
"knots": { "$ref": "#/definitions/knots" }
}
},
"nurbspoint": {
"description": "A weighted point/weight pair in a NURBS curve",
"type": "object",
"required": [ "weightedpoint", "weight" ],
"properties": {
"weightedpoint": { "$ref": "#/definitions/weightedpoint" },
"weight": { "$ref": "#/definitions/weight" }
}
},
"point": {
"description": "An SDO_GEOMETRY Point",
"type": "object",
"required": [ "directposition" ],
"properties": {
"optimized": { "$ref": "#/definitions/optimized" },
"directposition": { "$ref": "#/definitions/directposition" }
}
},
"polygon": {
"description": "An SDO_GEOMETRY Polygon",
"type": "object",
"required": [ "boundary" ],
"properties": {
"boundary": { "$ref": "#/definitions/boundary" }
}
},
"rectangle": {
"description": "An SDO_GEOMETRY optimized rectangle Polygon",
"type": "object",
"required": [ "datapoints" ],
"properties": {
"datapoints": { "$ref": "#/definitions/datapoints" }
}
},
"solid": {
"description": "An SDO_GEOMETRY solid",
"type": "object",
"required": [ "surfaces" ],
"properties": {
"datapoints": { "$ref": "#/definitions/surfaces" }
}
},
"surface": {
"description": "An SDO_GEOMETRY surface",
"type": "object",
"required": [ "polygons" ],
"properties": {
"datapoints": { "$ref": "#/definitions/polygons" }
}
},
"boundary": {
"description": "An array of geometries that make up a polygon's boundary",
"type": "array",
"minItems": 1,
"items":{
"anyOf": [
{ "$ref": "#/definitions/circle" },
{ "$ref": "#/definitions/circulararc" },
{ "$ref": "#/definitions/compoundcurve" },
{ "$ref": "#/definitions/line" },
{ "$ref": "#/definitions/rectangle" }
]
}
},
"compoundcurve": {
"description": "An array of curves the make up the compound curve",
"type": "array",
"minItems": 2,
"items":{
"anyOf": [
{ "$ref": "#/definitions/circulararc" },
{ "$ref": "#/definitions/line" },
{ "$ref": "#/definitions/nurbscurve" }
]
}
},
"controlpoints": {
"description": "An array of nurbspoints in a NURBS curve",
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/nurbspoint" }
},
"datapoints": {
"description": "An array of coordinates",
"type": "array",
"minItems": 4,
"items": { "type": "number" }
},
"directposition": {
"description": "A single coordinate",
"type": "array",
"minItems": 2,
"maxItems": 3,
"items": { "type": "number" }
},
"geometries": {
"description": "An array of geometries",
"type": "array",
"minItems": 1,
"items":{
"anyOf": [
{ "$ref": "#/definitions/circulararc" },
{ "$ref": "#/definitions/line" },
{ "$ref": "#/definitions/nurbscurve" },
{ "$ref": "#/definitions/point" },
{ "$ref": "#/definitions/polygon" },
{ "$ref": "#/definitions/multipoint" }
]
}
},
"knots": {
"description": "An array of Knots in a NURBS curve",
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/knot" }
},
"multiplicity": {
"description": "A Multiplicity in a NURBS curve",
"type": "integer",
"minimum": 1
},
"optimized": {
"description": "An SDO optimized point",
"type": "boolean",
"default": true
},
"polygons": {
"description": "An array of polygon geometries that make up a surface",
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/polygon" }
},
"spatialdimension": {
"description": "A geometry's spatial dimension ",
"minimum": 2,
"maximum": 3,
"type": "integer"
},
"srid": {
"description": "A geometry's SRID",
"type": "integer"
},
"surfaces": {
"description": "An array of surface geometries that make up a solid",
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/surface" }
},
"value": {
"description": "A Value in a NURBS curve",
"type": "number"
},
"weight": {
"description": "Weight of a weighted point in a NURBS curve",
"type": "integer"
},
"weightedpoint": {
"description": "An array of weighted points in a NURBS curve",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": { "type": "number" }
}
}
}
例1-5 様々な空間ジオメトリのJSON表現
次の例は、様々なタイプの空間ジオメトリに対してSpatialによって生成されるJSON表現を示しています。
Point: JGeometry (gtype=1, dim=2, srid=0, Point=(10.0,5.0))
{
"point" : {
"directposition" : [ 10.0, 5.0 ]
}
}
Line segment: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,1),
Ordinates(10.0,10.0
20.0,10.0
))
{
"line" : {
"datapoints" : [ [ 10.0, 10.0 ], [ 20.0, 10.0 ] ]
}
}
Arc segment: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,2),
Ordinates(10.0,15.0
15.0,20.0
20.0,15.0
))
{
"circulararc" : {
"datapoints" : [ [ 10.0, 15.0 ], [ 15.0, 20.0 ], [ 20.0, 15.0 ] ]
},
"interpolation" : "CIRCULAR"
}
Line string: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,1),
Ordinates(10.0,25.0
20.0,30.0
25.0,25.0
30.0,30.0
))
{
"line" : {
"datapoints" : [ [ 10.0, 25.0 ], [ 20.0, 30.0 ], [ 25.0, 25.0 ], [ 30.0, 30.0 ] ]
}
}
Arc string: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,2),
Ordinates(10.0,35.0
15.0,40.0
20.0,35.0
25.0,30.0
30.0,35.0
))
{
"circulararc" : {
"datapoints" : [ [ 10.0, 35.0 ], [ 15.0, 40.0 ], [ 20.0, 35.0 ], [ 25.0, 30.0 ], [ 30.0, 35.0 ] ]
},
"interpolation" : "CIRCULAR"
}
Compound line string: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,4,3,1,2,1,3,2,2,7,2,1),
Ordinates(10.0,45.0
20.0,45.0
23.0,48.0
20.0,51.0
10.0,51.0
))
{
"compoundcurve" : [ {
"line" : {
"datapoints" : [ [ 10.0, 45.0 ], [ 20.0, 45.0 ] ]
}
}, {
"circulararc" : {
"datapoints" : [ [ 20.0, 45.0 ], [ 23.0, 48.0 ], [ 20.0, 51.0 ] ]
},
"interpolation" : "CIRCULAR"
}, {
"line" : {
"datapoints" : [ [ 20.0, 51.0 ], [ 10.0, 51.0 ] ]
}
} ]
}
Closed line string: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,1),
Ordinates(10.0,55.0
15.0,55.0
20.0,60.0
10.0,60.0
10.0,55.0
))
{
"line" : {
"datapoints" : [ [ 10.0, 55.0 ], [ 15.0, 55.0 ], [ 20.0, 60.0 ], [ 10.0, 60.0 ], [ 10.0, 55.0 ] ]
}
}
Closed arc string: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,2),
Ordinates(15.0,65.0
10.0,68.0
15.0,70.0
20.0,68.0
15.0,65.0
))
{
"circulararc" : {
"datapoints" : [ [ 15.0, 65.0 ], [ 10.0, 68.0 ], [ 15.0, 70.0 ], [ 20.0, 68.0 ], [ 15.0, 65.0 ] ]
},
"interpolation" : "CIRCULAR"
}
Closed mixed line: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,4,2,1,2,1,7,2,2),
Ordinates(10.0,78.0
10.0,75.0
20.0,75.0
20.0,78.0
15.0,80.0
10.0,78.0
))
{
"compoundcurve" : [ {
"line" : {
"datapoints" : [ [ 10.0, 78.0 ], [ 10.0, 75.0 ], [ 20.0, 75.0 ], [ 20.0, 78.0 ] ]
}
}, {
"circulararc" : {
"datapoints" : [ [ 20.0, 78.0 ], [ 15.0, 80.0 ], [ 10.0, 78.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
Self-crossing line: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,1),
Ordinates(10.0,-75.0
20.0,-70.0
20.0,-75.0
10.0,-70.0
10.0,-75.0
))
{
"line" : {
"datapoints" : [ [ 10.0, -75.0 ], [ 20.0, -70.0 ], [ 20.0, -75.0 ], [ 10.0, -70.0 ], [ 10.0, -75.0 ] ]
}
}
Polygon: JGeometry (gtype=3, dim=2, srid=0,
ElemInfo(1,1003,1),
Ordinates(10.0,-55.0
15.0,-55.0
20.0,-50.0
10.0,-50.0
10.0,-55.0
))
{
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 10.0, -55.0 ], [ 15.0, -55.0 ], [ 20.0, -50.0 ], [ 10.0, -50.0 ], [ 10.0, -55.0 ] ]
}
} ]
}
}
Arc polygon: JGeometry (gtype=3, dim=2, srid=0,
ElemInfo(1,1003,2),
Ordinates(15.0,-45.0
20.0,-42.0
15.0,-40.0
10.0,-42.0
15.0,-45.0
))
{
"polygon" : {
"boundary" : [ {
"circulararc" : {
"datapoints" : [ [ 15.0, -45.0 ], [ 20.0, -42.0 ], [ 15.0, -40.0 ], [ 10.0, -42.0 ], [ 15.0, -45.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
}
Compound polygon: JGeometry (gtype=3, dim=2, srid=0,
ElemInfo(1,1005,2,1,2,1,7,2,2),
Ordinates(10.0,-32.0
10.0,-35.0
20.0,-35.0
20.0,-32.0
15.0,-30.0
10.0,-32.0
))
{
"polygon" : {
"boundary" : [ {
"compoundcurve" : [ {
"line" : {
"datapoints" : [ [ 10.0, -32.0 ], [ 10.0, -35.0 ], [ 20.0, -35.0 ], [ 20.0, -32.0 ] ]
}
}, {
"circulararc" : {
"datapoints" : [ [ 20.0, -32.0 ], [ 15.0, -30.0 ], [ 10.0, -32.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
} ]
}
}
Rectangle: JGeometry (gtype=3, dim=2, srid=0,
ElemInfo(1,1003,1),
Ordinates(10.0,-25.0
20.0,-25.0
20.0,-20.0
10.0,-20.0
10.0,-25.0
))
{
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 10.0, -25.0 ], [ 20.0, -25.0 ], [ 20.0, -20.0 ], [ 10.0, -20.0 ], [ 10.0, -25.0 ] ]
}
} ]
}
}
Circle: JGeometry (gtype=3, dim=2, srid=0,
ElemInfo(1,1003,2),
Ordinates(15.0,-15.0
20.0,-10.0
15.0,-5.0
10.0,-10.0
15.0,-15.0
))
{
"polygon" : {
"boundary" : [ {
"circulararc" : {
"datapoints" : [ [ 15.0, -15.0 ], [ 20.0, -10.0 ], [ 15.0, -5.0 ], [ 10.0, -10.0 ], [ 15.0, -15.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
}
Point cluster: JGeometry (gtype=5, dim=2, srid=0,
ElemInfo(1,1,3),
Ordinates(50.0,5.0
55.0,7.0
60.0,5.0
))
{
"multipoint" : {
"datapoints" : [ [ 50.0, 5.0 ], [ 55.0, 7.0 ], [ 60.0, 5.0 ] ]
}
}
Multipoint: JGeometry (gtype=5, dim=2, srid=0,
ElemInfo(1,1,3),
Ordinates(65.0,5.0
70.0,7.0
75.0,5.0
))
{
"multipoint" : {
"datapoints" : [ [ 65.0, 5.0 ], [ 70.0, 7.0 ], [ 75.0, 5.0 ] ]
}
}
Multiline: JGeometry (gtype=6, dim=2, srid=0,
ElemInfo(1,2,1,5,2,1),
Ordinates(50.0,15.0
55.0,15.0
60.0,15.0
65.0,15.0
))
{
"geometrycollection" : {
"geometries" : [ {
"line" : {
"datapoints" : [ [ 50.0, 15.0 ], [ 55.0, 15.0 ] ]
}
}, {
"line" : {
"datapoints" : [ [ 60.0, 15.0 ], [ 65.0, 15.0 ] ]
}
} ]
}
}
Multiline - crossing: JGeometry (gtype=6, dim=2, srid=0,
ElemInfo(1,2,1,5,2,1),
Ordinates(50.0,22.0
60.0,22.0
55.0,20.0
55.0,25.0
))
{
"geometrycollection" : {
"geometries" : [ {
"line" : {
"datapoints" : [ [ 50.0, 22.0 ], [ 60.0, 22.0 ] ]
}
}, {
"line" : {
"datapoints" : [ [ 55.0, 20.0 ], [ 55.0, 25.0 ] ]
}
} ]
}
}
Multiarc: JGeometry (gtype=6, dim=2, srid=0,
ElemInfo(1,2,2,7,2,2),
Ordinates(50.0,35.0
55.0,40.0
60.0,35.0
65.0,35.0
70.0,30.0
75.0,35.0
))
{
"geometrycollection" : {
"geometries" : [ {
"circulararc" : {
"datapoints" : [ [ 50.0, 35.0 ], [ 55.0, 40.0 ], [ 60.0, 35.0 ] ]
},
"interpolation" : "CIRCULAR"
}, {
"circulararc" : {
"datapoints" : [ [ 65.0, 35.0 ], [ 70.0, 30.0 ], [ 75.0, 35.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
}
Multiline - closed: JGeometry (gtype=6, dim=2, srid=0,
ElemInfo(1,2,1,9,2,1),
Ordinates(50.0,55.0
50.0,60.0
55.0,58.0
50.0,55.0
56.0,58.0
60.0,55.0
60.0,60.0
56.0,58.0
))
{
"geometrycollection" : {
"geometries" : [ {
"line" : {
"datapoints" : [ [ 50.0, 55.0 ], [ 50.0, 60.0 ], [ 55.0, 58.0 ], [ 50.0, 55.0 ] ]
}
}, {
"line" : {
"datapoints" : [ [ 56.0, 58.0 ], [ 60.0, 55.0 ], [ 60.0, 60.0 ], [ 56.0, 58.0 ] ]
}
} ]
}
}
Multiarc - touching: JGeometry (gtype=6, dim=2, srid=0,
ElemInfo(1,2,2,7,2,2),
Ordinates(50.0,65.0
50.0,70.0
55.0,68.0
55.0,68.0
60.0,65.0
60.0,70.0
))
{
"geometrycollection" : {
"geometries" : [ {
"circulararc" : {
"datapoints" : [ [ 50.0, 65.0 ], [ 50.0, 70.0 ], [ 55.0, 68.0 ] ]
},
"interpolation" : "CIRCULAR"
}, {
"circulararc" : {
"datapoints" : [ [ 55.0, 68.0 ], [ 60.0, 65.0 ], [ 60.0, 70.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
}
Multipolygon - disjoint: JGeometry (gtype=7, dim=2, srid=0,
ElemInfo(1,1003,1,11,1003,1),
Ordinates(50.0,-55.0
55.0,-55.0
60.0,-50.0
50.0,-50.0
50.0,-55.0
62.0,-52.0
65.0,-52.0
65.0,-48.0
62.0,-48.0
62.0,-52.0
))
{
"geometrycollection" : {
"geometries" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 50.0, -55.0 ], [ 55.0, -55.0 ], [ 60.0, -50.0 ], [ 50.0, -50.0 ], [ 50.0, -55.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 62.0, -52.0 ], [ 65.0, -52.0 ], [ 65.0, -48.0 ], [ 62.0, -48.0 ], [ 62.0, -52.0 ] ]
}
} ]
}
} ]
}
}
Multipolygon - touching: JGeometry (gtype=7, dim=2, srid=0,
ElemInfo(1,1003,1,11,1003,1),
Ordinates(50.0,-45.0
55.0,-45.0
55.0,-40.0
50.0,-40.0
50.0,-45.0
55.0,-40.0
58.0,-40.0
58.0,-38.0
55.0,-38.0
55.0,-40.0
))
{
"geometrycollection" : {
"geometries" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 50.0, -45.0 ], [ 55.0, -45.0 ], [ 55.0, -40.0 ], [ 50.0, -40.0 ], [ 50.0, -45.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 55.0, -40.0 ], [ 58.0, -40.0 ], [ 58.0, -38.0 ], [ 55.0, -38.0 ], [ 55.0, -40.0 ] ]
}
} ]
}
} ]
}
}
Polygon with void: JGeometry (gtype=3, dim=2, srid=0,
ElemInfo(1,1003,1,11,2003,1),
Ordinates(50.0,-25.0
60.0,-25.0
60.0,-20.0
50.0,-20.0
50.0,-25.0
51.0,-24.0
51.0,-21.0
59.0,-21.0
59.0,-24.0
51.0,-24.0
))
{
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 50.0, -25.0 ], [ 60.0, -25.0 ], [ 60.0, -20.0 ], [ 50.0, -20.0 ], [ 50.0, -25.0 ] ]
}
}, {
"line" : {
"datapoints" : [ [ 51.0, -24.0 ], [ 51.0, -21.0 ], [ 59.0, -21.0 ], [ 59.0, -24.0 ], [ 51.0, -24.0 ] ]
}
} ]
}
}
Polygon+void+island touch: JGeometry (gtype=7, dim=2, srid=0,
ElemInfo(1,1003,1,11,2003,1,31,1003,1),
Ordinates(50.0,8.0
50.0,0.0
55.0,0.0
55.0,8.0
50.0,8.0
51.0,7.0
54.0,7.0
54.0,1.0
51.0,1.0
51.0,2.0
52.0,3.0
51.0,4.0
51.0,5.0
51.0,6.0
51.0,7.0
52.0,6.0
52.0,2.0
53.0,2.0
53.0,6.0
52.0,6.0
))
{
"geometrycollection" : {
"geometries" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 50.0, 8.0 ], [ 50.0, 0.0 ], [ 55.0, 0.0 ], [ 55.0, 8.0 ], [ 50.0, 8.0 ] ]
}
}, {
"line" : {
"datapoints" : [ [ 51.0, 7.0 ], [ 54.0, 7.0 ], [ 54.0, 1.0 ], [ 51.0, 1.0 ], [ 51.0, 2.0 ], [ 52.0, 3.0 ], [ 51.0, 4.0 ], [ 51.0, 5.0 ], [ 51.0, 6.0 ], [ 51.0, 7.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 52.0, 6.0 ], [ 52.0, 2.0 ], [ 53.0, 2.0 ], [ 53.0, 6.0 ], [ 52.0, 6.0 ] ]
}
} ]
}
} ]
}
}
NURBS deg=3 CP=7: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,3),
Ordinates(3.0,7.0
0.0,0.0
1.0,-0.5
1.0,1.0
0.2,2.0
1.0,0.5
3.5,1.0
0.8,2.0
1.0,0.9
1.0,1.0
0.3,0.0
1.0,11.0
0.0,0.0
0.0,0.0
0.25,0.5
0.75,1.0
1.0,1.0
,1.0))
{
"nurbscurve" : {
"degree" : 3,
"controlpoints" : [ {
"nurbspoint" : {
"weightedpoint" : [ 0.0, 0.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ -0.5, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.2, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.5, 3.5 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.8, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.9, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.3, 0.0 ],
"weight" : 1.0
}
} ],
"knots" : [ {
"value" : 0.0,
"multiplicity" : 4
}, {
"value" : 0.25,
"multiplicity" : 1
}, {
"value" : 0.5,
"multiplicity" : 1
}, {
"value" : 0.75,
"multiplicity" : 1
}, {
"value" : 1.0,
"multiplicity" : 4
} ]
}
}
Compound, linestring + NURBS: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,4,2,1,2,1,5,2,3),
Ordinates(-1.0,-1.0
0.0,0.0
3.0,7.0
0.0,0.0
1.0,-0.5
1.0,1.0
0.2,2.0
1.0,0.5
3.5,1.0
0.8,2.0
1.0,0.9
1.0,1.0
0.3,0.0
1.0,11.0
0.0,0.0
0.0,0.0
0.25,0.5
0.75,1.0
1.0,1.0
,1.0))
{
"compoundcurve" : [ {
"line" : {
"datapoints" : [ [ -1.0, -1.0 ], [ 0.0, 0.0 ] ]
}
}, {
"nurbscurve" : {
"degree" : 3,
"controlpoints" : [ {
"nurbspoint" : {
"weightedpoint" : [ 0.0, 0.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ -0.5, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.2, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.5, 3.5 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.8, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.9, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.3, 0.0 ],
"weight" : 1.0
}
} ],
"knots" : [ {
"value" : 0.0,
"multiplicity" : 4
}, {
"value" : 0.25,
"multiplicity" : 1
}, {
"value" : 0.5,
"multiplicity" : 1
}, {
"value" : 0.75,
"multiplicity" : 1
}, {
"value" : 1.0,
"multiplicity" : 4
} ]
}
} ]
}
3D optimized point: JGeometry (gtype=1, dim=3, srid=0, Point=(11.0,22.0,33.0))
{
"spatialdimension" : 3,
"point" : {
"directposition" : [ 11.0, 22.0, 33.0 ]
}
}
3D elemInfo point: JGeometry (gtype=1, dim=3, srid=0,
ElemInfo(1,1,1),
Ordinates(11.0,22.0,33.0
))
{
"spatialdimension" : 3,
"point" : {
"directposition" : [ 11.0, 22.0, 33.0 ]
}
}
Geom1:
JGeometry (gtype=1, dim=3, srid=0, Point=(11.0,22.0,33.0))
Geom2:
JGeometry (gtype=1, dim=3, srid=0,
ElemInfo(1,1,1),
Ordinates(11.0,22.0,33.0
))
3D multipoint: JGeometry (gtype=5, dim=3, srid=0,
ElemInfo(1,1,2),
Ordinates(1.0,1.0,1.0
0.0,0.0,0.0
))
{
"spatialdimension" : 3,
"multipoint" : {
"datapoints" : [ [ 1.0, 1.0, 1.0 ], [ 0.0, 0.0, 0.0 ] ]
}
}
3D linestring: JGeometry (gtype=2, dim=3, srid=0,
ElemInfo(1,2,1),
Ordinates(1.0,1.0,1.0
0.0,0.0,0.0
))
{
"spatialdimension" : 3,
"line" : {
"datapoints" : [ [ 1.0, 1.0, 1.0 ], [ 0.0, 0.0, 0.0 ] ]
}
}
3D polygon A: JGeometry (gtype=3, dim=3, srid=0,
ElemInfo(1,1003,1),
Ordinates(0.5,0.0,0.0
0.5,1.0,0.0
0.0,1.0,1.0
0.0,0.0,1.0
0.5,0.0,0.0
))
{
"spatialdimension" : 3,
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 0.5, 0.0, 0.0 ], [ 0.5, 1.0, 0.0 ], [ 0.0, 1.0, 1.0 ], [ 0.0, 0.0, 1.0 ], [ 0.5, 0.0, 0.0 ] ]
}
} ]
}
}
3D polygon B: JGeometry (gtype=3, dim=3, srid=0,
ElemInfo(1,1003,1),
Ordinates(6.0,6.0,6.0
5.0,6.0,10.0
3.0,4.0,8.0
4.0,4.0,4.0
6.0,6.0,6.0
))
{
"spatialdimension" : 3,
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 6.0, 6.0, 6.0 ], [ 5.0, 6.0, 10.0 ], [ 3.0, 4.0, 8.0 ], [ 4.0, 4.0, 4.0 ], [ 6.0, 6.0, 6.0 ] ]
}
} ]
}
}
3D polygon C: JGeometry (gtype=7, dim=3, srid=0,
ElemInfo(1,1003,1,16,1003,1),
Ordinates(6.0,6.0,6.0
5.0,6.0,10.0
3.0,4.0,8.0
4.0,4.0,4.0
6.0,6.0,6.0
0.5,0.0,0.0
0.5,1.0,0.0
0.0,1.0,1.0
0.0,0.0,1.0
0.5,0.0,0.0
))
{
"spatialdimension" : 3,
"geometrycollection" : {
"geometries" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 6.0, 6.0, 6.0 ], [ 5.0, 6.0, 10.0 ], [ 3.0, 4.0, 8.0 ], [ 4.0, 4.0, 4.0 ], [ 6.0, 6.0, 6.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 0.5, 0.0, 0.0 ], [ 0.5, 1.0, 0.0 ], [ 0.0, 1.0, 1.0 ], [ 0.0, 0.0, 1.0 ], [ 0.5, 0.0, 0.0 ] ]
}
} ]
}
} ]
}
}
3D polygon with hole all on one plane: JGeometry (gtype=3, dim=3, srid=0,
ElemInfo(1,1003,1,16,2003,1),
Ordinates(0.5,0.0,0.0
0.5,1.0,0.0
0.0,1.0,1.0
0.0,0.0,1.0
0.5,0.0,0.0
0.25,0.5,0.5
0.15,0.5,0.7
0.15,0.6,0.7
0.25,0.6,0.5
0.25,0.5,0.5
))
{
"spatialdimension" : 3,
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 0.5, 0.0, 0.0 ], [ 0.5, 1.0, 0.0 ], [ 0.0, 1.0, 1.0 ], [ 0.0, 0.0, 1.0 ], [ 0.5, 0.0, 0.0 ] ]
}
}, {
"line" : {
"datapoints" : [ [ 0.25, 0.5, 0.5 ], [ 0.15, 0.5, 0.7 ], [ 0.15, 0.6, 0.7 ], [ 0.25, 0.6, 0.5 ], [ 0.25, 0.5, 0.5 ] ]
}
} ]
}
}
Multicurve end-to-end, mixed: JGeometry (gtype=6, dim=2, srid=0,
ElemInfo(1,2,1,5,2,2,11,2,1),
Ordinates(10.0,45.0
20.0,45.0
23.0,48.0
20.0,51.0
20.0,45.0
23.0,48.0
10.0,51.0
))
{
"geometrycollection" : {
"geometries" : [ {
"line" : {
"datapoints" : [ [ 10.0, 45.0 ], [ 20.0, 45.0 ] ]
}
}, {
"circulararc" : {
"datapoints" : [ [ 23.0, 48.0 ], [ 20.0, 51.0 ], [ 20.0, 45.0 ] ]
},
"interpolation" : "CIRCULAR"
}, {
"line" : {
"datapoints" : [ [ 23.0, 48.0 ], [ 10.0, 51.0 ] ]
}
} ]
}
}
Mixed curve from Oracle docs: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,4,2,1,2,1,3,2,2),
Ordinates(10.0,10.0
10.0,14.0
6.0,10.0
14.0,10.0
))
{
"compoundcurve" : [ {
"line" : {
"datapoints" : [ [ 10.0, 10.0 ], [ 10.0, 14.0 ] ]
}
}, {
"circulararc" : {
"datapoints" : [ [ 10.0, 14.0 ], [ 6.0, 10.0 ], [ 14.0, 10.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
Closed mixed curve: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,4,2,1,2,1,7,2,2),
Ordinates(10.0,78.0
10.0,75.0
20.0,75.0
20.0,78.0
15.0,80.0
10.0,78.0
))
{
"compoundcurve" : [ {
"line" : {
"datapoints" : [ [ 10.0, 78.0 ], [ 10.0, 75.0 ], [ 20.0, 75.0 ], [ 20.0, 78.0 ] ]
}
}, {
"circulararc" : {
"datapoints" : [ [ 20.0, 78.0 ], [ 15.0, 80.0 ], [ 10.0, 78.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
Compound polygon: JGeometry (gtype=3, dim=2, srid=0,
ElemInfo(1,1005,2,1,2,1,7,2,2),
Ordinates(10.0,-32.0
10.0,-35.0
20.0,-35.0
20.0,-32.0
15.0,-30.0
10.0,-32.0
))
{
"polygon" : {
"boundary" : [ {
"compoundcurve" : [ {
"line" : {
"datapoints" : [ [ 10.0, -32.0 ], [ 10.0, -35.0 ], [ 20.0, -35.0 ], [ 20.0, -32.0 ] ]
}
}, {
"circulararc" : {
"datapoints" : [ [ 20.0, -32.0 ], [ 15.0, -30.0 ], [ 10.0, -32.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
} ]
}
}
Point cluster: JGeometry (gtype=5, dim=2, srid=0,
ElemInfo(1,1,1,3,1,1,5,1,1),
Ordinates(50.0,5.0
55.0,7.0
60.0,5.0
))
{
"geometrycollection" : {
"geometries" : [ {
"point" : {
"directposition" : [ 50.0, 5.0 ]
}
}, {
"point" : {
"directposition" : [ 55.0, 7.0 ]
}
}, {
"point" : {
"directposition" : [ 60.0, 5.0 ]
}
} ]
}
}
Multipoint: JGeometry (gtype=5, dim=2, srid=0,
ElemInfo(1,1,1,3,1,1,5,1,1),
Ordinates(65.0,5.0
70.0,7.0
75.0,5.0
))
{
"geometrycollection" : {
"geometries" : [ {
"point" : {
"directposition" : [ 65.0, 5.0 ]
}
}, {
"point" : {
"directposition" : [ 70.0, 7.0 ]
}
}, {
"point" : {
"directposition" : [ 75.0, 5.0 ]
}
} ]
}
}
Multiarc: JGeometry (gtype=4, dim=2, srid=0,
ElemInfo(1,2,2,7,2,2),
Ordinates(50.0,35.0
55.0,40.0
60.0,35.0
65.0,35.0
70.0,30.0
75.0,35.0
))
{
"geometrycollection" : {
"geometries" : [ {
"circulararc" : {
"datapoints" : [ [ 50.0, 35.0 ], [ 55.0, 40.0 ], [ 60.0, 35.0 ] ]
},
"interpolation" : "CIRCULAR"
}, {
"circulararc" : {
"datapoints" : [ [ 65.0, 35.0 ], [ 70.0, 30.0 ], [ 75.0, 35.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
}
Multiarc - touching: JGeometry (gtype=4, dim=2, srid=0,
ElemInfo(1,2,2,7,2,2),
Ordinates(50.0,65.0
50.0,70.0
55.0,68.0
55.0,68.0
60.0,65.0
60.0,70.0
))
{
"geometrycollection" : {
"geometries" : [ {
"circulararc" : {
"datapoints" : [ [ 50.0, 65.0 ], [ 50.0, 70.0 ], [ 55.0, 68.0 ] ]
},
"interpolation" : "CIRCULAR"
}, {
"circulararc" : {
"datapoints" : [ [ 55.0, 68.0 ], [ 60.0, 65.0 ], [ 60.0, 70.0 ] ]
},
"interpolation" : "CIRCULAR"
} ]
}
}
Heterogeneous collection: JGeometry (gtype=4, dim=2, srid=0,
ElemInfo(1,1,1,3,2,1,7,1003,1),
Ordinates(10.0,5.0
10.0,10.0
20.0,10.0
10.0,-55.0
15.0,-55.0
20.0,-50.0
10.0,-50.0
10.0,-55.0
))
{
"geometrycollection" : {
"geometries" : [ {
"point" : {
"directposition" : [ 10.0, 5.0 ]
}
}, {
"line" : {
"datapoints" : [ [ 10.0, 10.0 ], [ 20.0, 10.0 ] ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 10.0, -55.0 ], [ 15.0, -55.0 ], [ 20.0, -50.0 ], [ 10.0, -50.0 ], [ 10.0, -55.0 ] ]
}
} ]
}
} ]
}
}
NURBS deg=3 CP=7: JGeometry (gtype=2, dim=2, srid=0,
ElemInfo(1,2,3),
Ordinates(3.0,7.0
0.0,0.0
1.0,-0.5
1.0,1.0
0.2,2.0
1.0,0.5
3.5,1.0
0.8,2.0
1.0,0.9
1.0,1.0
0.3,0.0
1.0,11.0
0.0,0.0
0.0,0.0
0.25,0.5
0.75,1.0
1.0,1.0
,1.0))
{
"nurbscurve" : {
"degree" : 3,
"controlpoints" : [ {
"nurbspoint" : {
"weightedpoint" : [ 0.0, 0.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ -0.5, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.2, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.5, 3.5 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.8, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.9, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.3, 0.0 ],
"weight" : 1.0
}
} ],
"knots" : [ {
"value" : 0.0,
"multiplicity" : 4
}, {
"value" : 0.25,
"multiplicity" : 1
}, {
"value" : 0.5,
"multiplicity" : 1
}, {
"value" : 0.75,
"multiplicity" : 1
}, {
"value" : 1.0,
"multiplicity" : 4
} ]
}
}
Multicurve linestring/NURBS: JGeometry (gtype=6, dim=2, srid=0,
ElemInfo(1,2,1,5,2,3),
Ordinates(-1.0,-1.0
0.0,0.0
3.0,7.0
0.0,0.0
1.0,-0.5
1.0,1.0
0.2,2.0
1.0,0.5
3.5,1.0
0.8,2.0
1.0,0.9
1.0,1.0
0.3,0.0
1.0,11.0
0.0,0.0
0.0,0.0
0.25,0.5
0.75,1.0
1.0,1.0
,1.0))
{
"geometrycollection" : {
"geometries" : [ {
"line" : {
"datapoints" : [ [ -1.0, -1.0 ], [ 0.0, 0.0 ] ]
}
}, {
"nurbscurve" : {
"degree" : 3,
"controlpoints" : [ {
"nurbspoint" : {
"weightedpoint" : [ 0.0, 0.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ -0.5, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.2, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.5, 3.5 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.8, 2.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.9, 1.0 ],
"weight" : 1.0
}
}, {
"nurbspoint" : {
"weightedpoint" : [ 0.3, 0.0 ],
"weight" : 1.0
}
} ],
"knots" : [ {
"value" : 0.0,
"multiplicity" : 4
}, {
"value" : 0.25,
"multiplicity" : 1
}, {
"value" : 0.5,
"multiplicity" : 1
}, {
"value" : 0.75,
"multiplicity" : 1
}, {
"value" : 1.0,
"multiplicity" : 4
} ]
}
} ]
}
}
3D elemInfo point: JGeometry (gtype=1, dim=3, srid=0,
ElemInfo(1,1,1),
Ordinates(11.0,22.0,33.0
))
{
"spatialdimension" : 3,
"point" : {
"directposition" : [ 11.0, 22.0, 33.0 ]
}
}
Geom1:
JGeometry (gtype=1, dim=3, srid=0, Point=(11.0,22.0,33.0))
Geom2:
JGeometry (gtype=1, dim=3, srid=0,
ElemInfo(1,1,1),
Ordinates(11.0,22.0,33.0
))
3D multipoint: JGeometry (gtype=5, dim=3, srid=0,
ElemInfo(1,1,1,4,1,1),
Ordinates(1.0,1.0,1.0
0.0,0.0,0.0
))
{
"spatialdimension" : 3,
"geometrycollection" : {
"geometries" : [ {
"point" : {
"directposition" : [ 1.0, 1.0, 1.0 ]
}
}, {
"point" : {
"directposition" : [ 0.0, 0.0, 0.0 ]
}
} ]
}
}
Simple SOLID with 6 polygons - All polygons are described using the optimized rectangle representation: JGeometry (gtype=8, dim=3, srid=0,
ElemInfo(1,1007,1,1,1006,6,1,1003,3,7,1003,3,13,1003,3,19,1003,3,25,1003,3,31,1003,3),
Ordinates(1.0,0.0,-1.0
1.0,1.0,1.0
1.0,0.0,1.0
0.0,0.0,-1.0
0.0,1.0,1.0
0.0,0.0,-1.0
0.0,1.0,-1.0
1.0,1.0,1.0
0.0,0.0,1.0
1.0,1.0,1.0
1.0,1.0,-1.0
0.0,0.0,-1.0
))
{
"spatialdimension" : 3,
"solid" : {
"surfaces" : [ {
"surface" : {
"polygons" : [ {
"polygon" : {
"boundary" : [ {
"rectangle" : {
"datapoints" : [ [ 1.0, 0.0, -1.0 ], [ 1.0, 1.0, 1.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"rectangle" : {
"datapoints" : [ [ 1.0, 0.0, 1.0 ], [ 0.0, 0.0, -1.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"rectangle" : {
"datapoints" : [ [ 0.0, 1.0, 1.0 ], [ 0.0, 0.0, -1.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"rectangle" : {
"datapoints" : [ [ 0.0, 1.0, -1.0 ], [ 1.0, 1.0, 1.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"rectangle" : {
"datapoints" : [ [ 0.0, 0.0, 1.0 ], [ 1.0, 1.0, 1.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"rectangle" : {
"datapoints" : [ [ 1.0, 1.0, -1.0 ], [ 0.0, 0.0, -1.0 ] ]
}
} ]
}
} ]
}
} ]
}
}
MULTISOLID, 2x using optimized representation: JGeometry (gtype=9, dim=3, srid=0,
ElemInfo(1,1007,3,7,1007,3),
Ordinates(-2.0,1.0,3.0
-3.0,-1.0,0.0
0.0,0.0,0.0
1.0,1.0,1.0
))
{
"spatialdimension" : 3,
"geometrycollection" : {
"geometries" : [ {
"solid" : {
"surfaces" : [ {
"box" : {
"datapoints" : [ [ -2.0, 1.0, 3.0 ], [ -3.0, -1.0, 0.0 ] ]
}
} ]
}
}, {
"solid" : {
"surfaces" : [ {
"box" : {
"datapoints" : [ [ 0.0, 0.0, 0.0 ], [ 1.0, 1.0, 1.0 ] ]
}
} ]
}
} ]
}
}
Multi-Solid - like multi-polygon in 2D - disjoint solids: JGeometry (gtype=9, dim=3, srid=0,
ElemInfo(1,1007,1,1,1006,6,1,1003,1,16,1003,1,31,1003,1,46,1003,1,61,1003,1,76,1003,1,91,1007,1,91,1006,7,91,1003,1,106,1003,1,121,1003,1,136,1003,1,151,1003,1,166,1003,1,184,1003,1),
Ordinates(1.0,0.0,4.0
1.0,1.0,4.0
1.0,1.0,6.0
1.0,0.0,6.0
1.0,0.0,4.0
1.0,0.0,6.0
0.0,0.0,6.0
0.0,0.0,4.0
1.0,0.0,4.0
1.0,0.0,6.0
0.0,1.0,6.0
0.0,1.0,4.0
0.0,0.0,4.0
0.0,0.0,6.0
0.0,1.0,6.0
1.0,1.0,4.0
0.0,1.0,4.0
0.0,1.0,6.0
1.0,1.0,6.0
1.0,1.0,4.0
1.0,1.0,6.0
0.0,1.0,6.0
0.0,0.0,6.0
1.0,0.0,6.0
1.0,1.0,6.0
1.0,1.0,4.0
1.0,0.0,4.0
0.0,0.0,4.0
0.0,1.0,4.0
1.0,1.0,4.0
2.0,0.0,3.0
2.0,0.0,0.0
4.0,2.0,0.0
4.0,2.0,3.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,0.0
2.0,0.0,0.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,-2.0,0.0
4.5,-2.0,0.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,2.0,3.0
-2.0,2.0,0.0
-2.0,-2.0,0.0
-2.0,-2.0,3.0
4.0,2.0,3.0
4.0,2.0,0.0
-2.0,2.0,0.0
-2.0,2.0,3.0
4.0,2.0,3.0
2.0,0.0,3.0
4.0,2.0,3.0
-2.0,2.0,3.0
-2.0,-2.0,3.0
4.5,-2.0,3.0
2.0,0.0,3.0
2.0,0.0,0.0
4.5,-2.0,0.0
-2.0,-2.0,0.0
-2.0,2.0,0.0
4.0,2.0,0.0
2.0,0.0,0.0
))
{
"spatialdimension" : 3,
"geometrycollection" : {
"geometries" : [ {
"solid" : {
"surfaces" : [ {
"surface" : {
"polygons" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, 0.0, 4.0 ], [ 1.0, 1.0, 4.0 ], [ 1.0, 1.0, 6.0 ], [ 1.0, 0.0, 6.0 ], [ 1.0, 0.0, 4.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, 0.0, 6.0 ], [ 0.0, 0.0, 6.0 ], [ 0.0, 0.0, 4.0 ], [ 1.0, 0.0, 4.0 ], [ 1.0, 0.0, 6.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 0.0, 1.0, 6.0 ], [ 0.0, 1.0, 4.0 ], [ 0.0, 0.0, 4.0 ], [ 0.0, 0.0, 6.0 ], [ 0.0, 1.0, 6.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, 1.0, 4.0 ], [ 0.0, 1.0, 4.0 ], [ 0.0, 1.0, 6.0 ], [ 1.0, 1.0, 6.0 ], [ 1.0, 1.0, 4.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, 1.0, 6.0 ], [ 0.0, 1.0, 6.0 ], [ 0.0, 0.0, 6.0 ], [ 1.0, 0.0, 6.0 ], [ 1.0, 1.0, 6.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, 1.0, 4.0 ], [ 1.0, 0.0, 4.0 ], [ 0.0, 0.0, 4.0 ], [ 0.0, 1.0, 4.0 ], [ 1.0, 1.0, 4.0 ] ]
}
} ]
}
} ]
}
} ]
}
}, {
"solid" : {
"surfaces" : [ {
"surface" : {
"polygons" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 3.0 ], [ 2.0, 0.0, 0.0 ], [ 4.0, 2.0, 0.0 ], [ 4.0, 2.0, 3.0 ], [ 2.0, 0.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.5, -2.0, 3.0 ], [ 4.5, -2.0, 0.0 ], [ 2.0, 0.0, 0.0 ], [ 2.0, 0.0, 3.0 ], [ 4.5, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.5, -2.0, 3.0 ], [ -2.0, -2.0, 3.0 ], [ -2.0, -2.0, 0.0 ], [ 4.5, -2.0, 0.0 ], [ 4.5, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -2.0, -2.0, 3.0 ], [ -2.0, 2.0, 3.0 ], [ -2.0, 2.0, 0.0 ], [ -2.0, -2.0, 0.0 ], [ -2.0, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.0, 2.0, 3.0 ], [ 4.0, 2.0, 0.0 ], [ -2.0, 2.0, 0.0 ], [ -2.0, 2.0, 3.0 ], [ 4.0, 2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 3.0 ], [ 4.0, 2.0, 3.0 ], [ -2.0, 2.0, 3.0 ], [ -2.0, -2.0, 3.0 ], [ 4.5, -2.0, 3.0 ], [ 2.0, 0.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 0.0 ], [ 4.5, -2.0, 0.0 ], [ -2.0, -2.0, 0.0 ], [ -2.0, 2.0, 0.0 ], [ 4.0, 2.0, 0.0 ], [ 2.0, 0.0, 0.0 ] ]
}
} ]
}
} ]
}
} ]
}
} ]
}
}
SOLID with a hole: JGeometry (gtype=8, dim=3, srid=0,
ElemInfo(1,1007,1,1,1006,7,1,1003,1,16,1003,1,31,1003,1,46,1003,1,61,1003,1,76,1003,1,94,1003,1,112,2006,6,112,2003,1,127,2003,1,142,2003,1,157,2003,1,172,2003,1,187,2003,1),
Ordinates(2.0,0.0,3.0
2.0,0.0,0.0
4.0,2.0,0.0
4.0,2.0,3.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,0.0
2.0,0.0,0.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,-2.0,0.0
4.5,-2.0,0.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,2.0,3.0
-2.0,2.0,0.0
-2.0,-2.0,0.0
-2.0,-2.0,3.0
4.0,2.0,3.0
4.0,2.0,0.0
-2.0,2.0,0.0
-2.0,2.0,3.0
4.0,2.0,3.0
2.0,0.0,3.0
4.0,2.0,3.0
-2.0,2.0,3.0
-2.0,-2.0,3.0
4.5,-2.0,3.0
2.0,0.0,3.0
2.0,0.0,0.0
4.5,-2.0,0.0
-2.0,-2.0,0.0
-2.0,2.0,0.0
4.0,2.0,0.0
2.0,0.0,0.0
1.0,1.0,2.5
-1.0,1.0,2.5
-1.0,1.0,0.5
1.0,1.0,0.5
1.0,1.0,2.5
-1.0,1.0,2.5
-1.0,-1.0,2.5
-1.0,-1.0,0.5
-1.0,1.0,0.5
-1.0,1.0,2.5
-1.0,-1.0,2.5
1.0,-1.0,2.5
1.0,-1.0,0.5
-1.0,-1.0,0.5
-1.0,-1.0,2.5
1.0,-1.0,2.5
1.0,1.0,2.5
1.0,1.0,0.5
1.0,-1.0,0.5
1.0,-1.0,2.5
-1.0,-1.0,2.5
-1.0,1.0,2.5
1.0,1.0,2.5
1.0,-1.0,2.5
-1.0,-1.0,2.5
1.0,1.0,0.5
-1.0,1.0,0.5
-1.0,-1.0,0.5
1.0,-1.0,0.5
1.0,1.0,0.5
))
{
"spatialdimension" : 3,
"solid" : {
"surfaces" : [ {
"surface" : {
"polygons" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 3.0 ], [ 2.0, 0.0, 0.0 ], [ 4.0, 2.0, 0.0 ], [ 4.0, 2.0, 3.0 ], [ 2.0, 0.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.5, -2.0, 3.0 ], [ 4.5, -2.0, 0.0 ], [ 2.0, 0.0, 0.0 ], [ 2.0, 0.0, 3.0 ], [ 4.5, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.5, -2.0, 3.0 ], [ -2.0, -2.0, 3.0 ], [ -2.0, -2.0, 0.0 ], [ 4.5, -2.0, 0.0 ], [ 4.5, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -2.0, -2.0, 3.0 ], [ -2.0, 2.0, 3.0 ], [ -2.0, 2.0, 0.0 ], [ -2.0, -2.0, 0.0 ], [ -2.0, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.0, 2.0, 3.0 ], [ 4.0, 2.0, 0.0 ], [ -2.0, 2.0, 0.0 ], [ -2.0, 2.0, 3.0 ], [ 4.0, 2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 3.0 ], [ 4.0, 2.0, 3.0 ], [ -2.0, 2.0, 3.0 ], [ -2.0, -2.0, 3.0 ], [ 4.5, -2.0, 3.0 ], [ 2.0, 0.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 0.0 ], [ 4.5, -2.0, 0.0 ], [ -2.0, -2.0, 0.0 ], [ -2.0, 2.0, 0.0 ], [ 4.0, 2.0, 0.0 ], [ 2.0, 0.0, 0.0 ] ]
}
} ]
}
} ]
}
}, {
"surface" : {
"polygons" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, 1.0, 2.5 ], [ -1.0, 1.0, 2.5 ], [ -1.0, 1.0, 0.5 ], [ 1.0, 1.0, 0.5 ], [ 1.0, 1.0, 2.5 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -1.0, 1.0, 2.5 ], [ -1.0, -1.0, 2.5 ], [ -1.0, -1.0, 0.5 ], [ -1.0, 1.0, 0.5 ], [ -1.0, 1.0, 2.5 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -1.0, -1.0, 2.5 ], [ 1.0, -1.0, 2.5 ], [ 1.0, -1.0, 0.5 ], [ -1.0, -1.0, 0.5 ], [ -1.0, -1.0, 2.5 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, -1.0, 2.5 ], [ 1.0, 1.0, 2.5 ], [ 1.0, 1.0, 0.5 ], [ 1.0, -1.0, 0.5 ], [ 1.0, -1.0, 2.5 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -1.0, -1.0, 2.5 ], [ -1.0, 1.0, 2.5 ], [ 1.0, 1.0, 2.5 ], [ 1.0, -1.0, 2.5 ], [ -1.0, -1.0, 2.5 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 1.0, 1.0, 0.5 ], [ -1.0, 1.0, 0.5 ], [ -1.0, -1.0, 0.5 ], [ 1.0, -1.0, 0.5 ], [ 1.0, 1.0, 0.5 ] ]
}
} ]
}
} ]
}
} ]
}
}
Geom1:
JGeometry (gtype=8, dim=3, srid=0,
ElemInfo(1,1007,1,1,1006,7,1,1003,1,16,1003,1,31,1003,1,46,1003,1,61,1003,1,76,1003,1,94,1003,1,112,1006,6,112,1003,1,127,1003,1,142,1003,1,157,1003,1,172,1003,1,187,1003,1),
Ordinates(2.0,0.0,3.0
2.0,0.0,0.0
4.0,2.0,0.0
4.0,2.0,3.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,0.0
2.0,0.0,0.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,-2.0,0.0
4.5,-2.0,0.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,2.0,3.0
-2.0,2.0,0.0
-2.0,-2.0,0.0
-2.0,-2.0,3.0
4.0,2.0,3.0
4.0,2.0,0.0
-2.0,2.0,0.0
-2.0,2.0,3.0
4.0,2.0,3.0
2.0,0.0,3.0
4.0,2.0,3.0
-2.0,2.0,3.0
-2.0,-2.0,3.0
4.5,-2.0,3.0
2.0,0.0,3.0
2.0,0.0,0.0
4.5,-2.0,0.0
-2.0,-2.0,0.0
-2.0,2.0,0.0
4.0,2.0,0.0
2.0,0.0,0.0
1.0,1.0,2.5
-1.0,1.0,2.5
-1.0,1.0,0.5
1.0,1.0,0.5
1.0,1.0,2.5
-1.0,1.0,2.5
-1.0,-1.0,2.5
-1.0,-1.0,0.5
-1.0,1.0,0.5
-1.0,1.0,2.5
-1.0,-1.0,2.5
1.0,-1.0,2.5
1.0,-1.0,0.5
-1.0,-1.0,0.5
-1.0,-1.0,2.5
1.0,-1.0,2.5
1.0,1.0,2.5
1.0,1.0,0.5
1.0,-1.0,0.5
1.0,-1.0,2.5
-1.0,-1.0,2.5
-1.0,1.0,2.5
1.0,1.0,2.5
1.0,-1.0,2.5
-1.0,-1.0,2.5
1.0,1.0,0.5
-1.0,1.0,0.5
-1.0,-1.0,0.5
1.0,-1.0,0.5
1.0,1.0,0.5
))
Geom2:
JGeometry (gtype=8, dim=3, srid=0,
ElemInfo(1,1007,1,1,1006,7,1,1003,1,16,1003,1,31,1003,1,46,1003,1,61,1003,1,76,1003,1,94,1003,1,112,2006,6,112,2003,1,127,2003,1,142,2003,1,157,2003,1,172,2003,1,187,2003,1),
Ordinates(2.0,0.0,3.0
2.0,0.0,0.0
4.0,2.0,0.0
4.0,2.0,3.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,0.0
2.0,0.0,0.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,-2.0,0.0
4.5,-2.0,0.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,2.0,3.0
-2.0,2.0,0.0
-2.0,-2.0,0.0
-2.0,-2.0,3.0
4.0,2.0,3.0
4.0,2.0,0.0
-2.0,2.0,0.0
-2.0,2.0,3.0
4.0,2.0,3.0
2.0,0.0,3.0
4.0,2.0,3.0
-2.0,2.0,3.0
-2.0,-2.0,3.0
4.5,-2.0,3.0
2.0,0.0,3.0
2.0,0.0,0.0
4.5,-2.0,0.0
-2.0,-2.0,0.0
-2.0,2.0,0.0
4.0,2.0,0.0
2.0,0.0,0.0
1.0,1.0,2.5
-1.0,1.0,2.5
-1.0,1.0,0.5
1.0,1.0,0.5
1.0,1.0,2.5
-1.0,1.0,2.5
-1.0,-1.0,2.5
-1.0,-1.0,0.5
-1.0,1.0,0.5
-1.0,1.0,2.5
-1.0,-1.0,2.5
1.0,-1.0,2.5
1.0,-1.0,0.5
-1.0,-1.0,0.5
-1.0,-1.0,2.5
1.0,-1.0,2.5
1.0,1.0,2.5
1.0,1.0,0.5
1.0,-1.0,0.5
1.0,-1.0,2.5
-1.0,-1.0,2.5
-1.0,1.0,2.5
1.0,1.0,2.5
1.0,-1.0,2.5
-1.0,-1.0,2.5
1.0,1.0,0.5
-1.0,1.0,0.5
-1.0,-1.0,0.5
1.0,-1.0,0.5
1.0,1.0,0.5
))
Composite Solid, cube on a cube on a cube: JGeometry (gtype=8, dim=3, srid=0,
ElemInfo(1,1008,2,1,1007,1,1,1006,6,1,1003,1,16,1003,1,31,1003,1,46,1003,1,61,1003,1,76,1003,1,91,1007,1,91,1006,7,91,1003,1,106,1003,1,121,1003,1,136,1003,1,151,1003,1,166,1003,1,184,1003,1),
Ordinates(-2.0,1.0,3.0
-2.0,1.0,0.0
-3.0,1.0,0.0
-3.0,1.0,3.0
-2.0,1.0,3.0
-3.0,1.0,3.0
-3.0,1.0,0.0
-3.0,-1.0,0.0
-3.0,-1.0,3.0
-3.0,1.0,3.0
-3.0,-1.0,3.0
-3.0,-1.0,0.0
-2.0,-1.0,0.0
-2.0,-1.0,3.0
-3.0,-1.0,3.0
-2.0,-1.0,3.0
-2.0,-1.0,0.0
-2.0,1.0,0.0
-2.0,1.0,3.0
-2.0,-1.0,3.0
-2.0,-1.0,3.0
-2.0,1.0,3.0
-3.0,1.0,3.0
-3.0,-1.0,3.0
-2.0,-1.0,3.0
-2.0,1.0,0.0
-2.0,-1.0,0.0
-3.0,-1.0,0.0
-3.0,1.0,0.0
-2.0,1.0,0.0
2.0,0.0,3.0
2.0,0.0,0.0
4.0,2.0,0.0
4.0,2.0,3.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,0.0
2.0,0.0,0.0
2.0,0.0,3.0
4.5,-2.0,3.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,-2.0,0.0
4.5,-2.0,0.0
4.5,-2.0,3.0
-2.0,-2.0,3.0
-2.0,2.0,3.0
-2.0,2.0,0.0
-2.0,-2.0,0.0
-2.0,-2.0,3.0
4.0,2.0,3.0
4.0,2.0,0.0
-2.0,2.0,0.0
-2.0,2.0,3.0
4.0,2.0,3.0
2.0,0.0,3.0
4.0,2.0,3.0
-2.0,2.0,3.0
-2.0,-2.0,3.0
4.5,-2.0,3.0
2.0,0.0,3.0
2.0,0.0,0.0
4.5,-2.0,0.0
-2.0,-2.0,0.0
-2.0,2.0,0.0
4.0,2.0,0.0
2.0,0.0,0.0
))
{
"spatialdimension" : 3,
"compositesolid" : {
"solids" : [ {
"solid" : {
"surfaces" : [ {
"surface" : {
"polygons" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -2.0, 1.0, 3.0 ], [ -2.0, 1.0, 0.0 ], [ -3.0, 1.0, 0.0 ], [ -3.0, 1.0, 3.0 ], [ -2.0, 1.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -3.0, 1.0, 3.0 ], [ -3.0, 1.0, 0.0 ], [ -3.0, -1.0, 0.0 ], [ -3.0, -1.0, 3.0 ], [ -3.0, 1.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -3.0, -1.0, 3.0 ], [ -3.0, -1.0, 0.0 ], [ -2.0, -1.0, 0.0 ], [ -2.0, -1.0, 3.0 ], [ -3.0, -1.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -2.0, -1.0, 3.0 ], [ -2.0, -1.0, 0.0 ], [ -2.0, 1.0, 0.0 ], [ -2.0, 1.0, 3.0 ], [ -2.0, -1.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -2.0, -1.0, 3.0 ], [ -2.0, 1.0, 3.0 ], [ -3.0, 1.0, 3.0 ], [ -3.0, -1.0, 3.0 ], [ -2.0, -1.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -2.0, 1.0, 0.0 ], [ -2.0, -1.0, 0.0 ], [ -3.0, -1.0, 0.0 ], [ -3.0, 1.0, 0.0 ], [ -2.0, 1.0, 0.0 ] ]
}
} ]
}
} ]
}
} ]
}
}, {
"solid" : {
"surfaces" : [ {
"surface" : {
"polygons" : [ {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 3.0 ], [ 2.0, 0.0, 0.0 ], [ 4.0, 2.0, 0.0 ], [ 4.0, 2.0, 3.0 ], [ 2.0, 0.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.5, -2.0, 3.0 ], [ 4.5, -2.0, 0.0 ], [ 2.0, 0.0, 0.0 ], [ 2.0, 0.0, 3.0 ], [ 4.5, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.5, -2.0, 3.0 ], [ -2.0, -2.0, 3.0 ], [ -2.0, -2.0, 0.0 ], [ 4.5, -2.0, 0.0 ], [ 4.5, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ -2.0, -2.0, 3.0 ], [ -2.0, 2.0, 3.0 ], [ -2.0, 2.0, 0.0 ], [ -2.0, -2.0, 0.0 ], [ -2.0, -2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 4.0, 2.0, 3.0 ], [ 4.0, 2.0, 0.0 ], [ -2.0, 2.0, 0.0 ], [ -2.0, 2.0, 3.0 ], [ 4.0, 2.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 3.0 ], [ 4.0, 2.0, 3.0 ], [ -2.0, 2.0, 3.0 ], [ -2.0, -2.0, 3.0 ], [ 4.5, -2.0, 3.0 ], [ 2.0, 0.0, 3.0 ] ]
}
} ]
}
}, {
"polygon" : {
"boundary" : [ {
"line" : {
"datapoints" : [ [ 2.0, 0.0, 0.0 ], [ 4.5, -2.0, 0.0 ], [ -2.0, -2.0, 0.0 ], [ -2.0, 2.0, 0.0 ], [ 4.0, 2.0, 0.0 ], [ 2.0, 0.0, 0.0 ] ]
}
} ]
}
} ]
}
} ]
}
} ]
}
}