Docs Menu
Docs Home
/
MongoDB マニュアル
/ /

GeoJSON オブジェクト

項目一覧

  • Overview
  • Point
  • LineString
  • Polygon
  • MultiPoint
  • MultiLineString
  • MultiPolygon
  • GeometryCollection

MongoDB は、このページにリストされている GeoJSON オブジェクトタイプをサポートしています。

GeoJSON データを指定するには、以下の埋め込みドキュメントを使用します。

  • GeoJSON オブジェクトタイプを指定する typeという名前のフィールドと

  • オブジェクトの座標を指定する coordinates というフィールド。

<field>: { type: <GeoJSON type> , coordinates: <coordinates> }

重要

緯度と経度の座標を指定する場合は、最初に経度、次に緯度を指定します。

  • 有効な経度の値は、-180 以上、180 以下です。

  • 有効な緯度の値は-90 以上、90 以下です。

GeoJSON オブジェクトに対する MongoDB の地理空間クエリは球体上で計算されます。 MongoDB は、GeoJSON オブジェクトに対する地理空間クエリに WGS 84参照システムを使用します。

次の例では、GeoJSON ポイント を指定しています :

{ type: "Point", coordinates: [ 40, 5 ] }

次の例では、GeoJSON LineString を指定しています。

{ type: "LineString", coordinates: [ [ 40, 5 ], [ 41, 6 ] ] }

多角形 は GeoJSON LinearRing 座標配列で構成されます。これらの LinearRings は閉じた LineStrings です。閉じた LineStrings には少なくとも 4 つの座標ペアがあり、最初と最後の座標では同じ位置が指定されます。

曲面上の 2 点を結ぶ線には、平面上の 2 点を結ぶ同じ座標セットが含まれている場合と含まれていない場合があります。曲面上の 2 つの点を結ぶラインは測地線になります。共有エッジ、オーバーラップ、その他の種類の交差によりエラーが発生しないように、点を注意深くチェックしてください。

次の例では、外側の円はあるが内側の円(または穴)がない GeoJSON Polygon を指定します。多角形を閉じるには、最初と最後の座標が一致している必要があります。

{
type: "Polygon",
coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]
}

円が 1 つある多角形の場合、円は自己交差できません。

複数の円がある多角形の場合:

  • 最初に説明する円は、外側の円である必要があります。

  • 外側の円は自己交差できません。

  • 内側の円はすべて、外側の円で囲われている必要があります。

  • 内側の円は、互いに交差したり重なり合ったりすることはできません。内側の円同士でエッジを共有できません。

次の例は、内側の円が 1 つある GeoJSON 多角形を表しています。

{
type : "Polygon",
coordinates : [
[ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ],
[ [ 2 , 2 ] , [ 3 , 3 ] , [ 4 , 2 ] , [ 2 , 2 ] ]
]
}
内側の円がある多角形の図。

2dsphere インデックスが必要です。

GeoJSON MultiPoint 埋め込みドキュメントはポイントのリストをエンコードします。

{
type: "MultiPoint",
coordinates: [
[ -73.9580, 40.8003 ],
[ -73.9498, 40.7968 ],
[ -73.9737, 40.7648 ],
[ -73.9814, 40.7681 ]
]
}

2dsphere インデックスが必要です。

次の例では、GeoJSON MultiLineString を指定しています。

{
type: "MultiLineString",
coordinates: [
[ [ -73.96943, 40.78519 ], [ -73.96082, 40.78095 ] ],
[ [ -73.96415, 40.79229 ], [ -73.95544, 40.78854 ] ],
[ [ -73.97162, 40.78205 ], [ -73.96374, 40.77715 ] ],
[ [ -73.97880, 40.77247 ], [ -73.97036, 40.76811 ] ]
]
}

2dsphere インデックスが必要です。

次の例では、GeoJSON MultiPolygon :

{
type: "MultiPolygon",
coordinates: [
[ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.9814, 40.7681 ], [ -73.958, 40.8003 ] ] ],
[ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.958, 40.8003 ] ] ]
]
}

2dsphere インデックスが必要です。

次の例では、GeoJSON 型の GeometryCollection の座標を保存します。

{
type: "GeometryCollection",
geometries: [
{
type: "MultiPoint",
coordinates: [
[ -73.9580, 40.8003 ],
[ -73.9498, 40.7968 ],
[ -73.9737, 40.7648 ],
[ -73.9814, 40.7681 ]
]
},
{
type: "MultiLineString",
coordinates: [
[ [ -73.96943, 40.78519 ], [ -73.96082, 40.78095 ] ],
[ [ -73.96415, 40.79229 ], [ -73.95544, 40.78854 ] ],
[ [ -73.97162, 40.78205 ], [ -73.96374, 40.77715 ] ],
[ [ -73.97880, 40.77247 ], [ -73.97036, 40.76811 ] ]
]
}
]
}

戻る

レストランの検索