GeoJSONデータの定義
type
フィールドの値は、オブジェクトが示すジオメトリ形状の種類を指定します。type
フィールドの値は、各種ジオメトリに対応する次の文字列のいずれかである必要があります。
-
Point
-
LineSegment
-
Polygon
-
MultiPoint
-
MultiLineString
-
MultiPolygon
-
GeometryCollection
coordinates
値は、ジオメトリ形状を定義する要素の配列です。例外はGeometryCollectionタイプで、これについては後述します。coordinates
の値はジオメトリの形状によって異なりますが、すべての場合に複数の位置が指定されます。positionは、地球の表面上の位置を2つの倍精度数値の配列として定義します。1つ目の数値は経度、2つ目の数値は緯度です。経度と緯度は度数で指定され、それぞれ-180から+180と-90から+90の範囲内である必要があります。
ノート:
GeoJSON仕様では、位置の高度を示す3番目の座標を使用できますが、Oracle NoSQL Databaseでは高度はサポートされていません。ジオメトリの種類は次のように定義されます。種類ごとにオブジェクトの例を示します。
{ "type" : "point", "coordinates" : [ 23.549, 35.2908 ] }
{
"type" : "LineString",
"coordinates" : [
[-121.9447, 37.2975],
[-121.9500, 37.3171],
[-121.9892, 37.3182],
[-122.1554, 37.3882],
[-122.2899, 37.4589],
[-122.4273, 37.6032],
[-122.4304, 37.6267],
[-122.3975, 37.6144]
]
}
Polygon —ポリゴンは、その外周の長さと領域内にある穴(ある場合)の外周の長さを指定して、表面積を定義します。より正確には、ポリゴンは1つ以上の輪になった線で構成されます。ここで、(a)輪になった線は、4つ以上の位置を持つ閉じたLineStringです。(b)最初と最後の位置は等しく、これらは同一の値を含んでいる必要があります。(c)輪になった線は、表面の境界または表面内にある穴の境界です。(d)輪になった直線は、それが境界を決定している領域を基準とした右手の法則に従う必要があります。つまり、外側の輪の位置は反時計回りに並んでいる必要があり、穴の位置は時計回りに並んでいる必要があります。ポリゴンのcoordinatesフィールドは、輪になった線の座標配列の配列である必要があります。最初の座標は外側の輪である必要があり、その他すべての座標は内側の輪である必要があります。
{
"type" : "polygon",
"coordinates" : [ [
[23.48, 35.16],
[24.30, 35.16],
[24.30, 35.50],
[24.16, 35.61],
[23.74, 35.70],
[23.56, 35.60],
[23.48, 35.16]
]
]
}
{
"type" : "MultiPoint",
"coordinates" : [
[-121.9447, 37.2975],
[-121.9500, 37.3171],
[-122.3975, 37.6144]
]
}
{
"type": "MultiLineString",
"coordinates": [
[ [100.0, 0.0], [01.0, 1.0] ],
[ [102.0, 2.0], [103.0, 3.0] ]
]
}
{
"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]
]
]
]
}
{ "type": "GeometryCollection",
"geometries": [
{
"type": "Point",
"coordinates": [100.0, 0.0]
},
{"type": "LineString",
"coordinates": [ [101.0, 0.0], [102.0, 1.0] ]
}
]
}
ノート:
GeoJSON仕様では、その他にFeatureとFeatureCollectionという2種類のエンティティが定義されています。Oracle NoSQL Databaseでは、これらのエンティティはサポートされません。