GeoJSON Objects

在本页面

Overview

MongoDB 支持此页面上列出的 GeoJSON 对象类型。

要指定 GeoJSON 数据,请使用具有以下内容的嵌入式文档:

  • 名为type的字段,用于指定GeoJSON 对象类型

  • 一个名为coordinates的字段,用于指定对象的坐标。

如果指定纬度和经度坐标,请先列出 经度 ,然后列出 latitude

  • 有效的经度值在-180180之间(包括两端值)。

    • 有效的纬度值在-9090之间(包括两端值)。
<field>: { type: <GeoJSON type> , coordinates: <coordinates> }

对 GeoJSON 对象的 MongoDB 地理空间查询是在球体上计算的; MongoDB 使用WGS84参考系统对 GeoJSON 对象进行地理空间查询。

Point

以下示例指定了 GeoJSON Point

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

LineString

以下示例指定了 GeoJSON LineString

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

Polygon

Polygons由 GeoJSON LinearRing坐标数组组成。这些LinearRings是封闭的LineStrings。闭合的LineStrings至少具有四个坐标对,并指定与第一个和最后一个坐标相同的位置。

连接曲面上两个点的线可能包含也可能不包含连接平面上这两个点的同一组坐标。连接曲面上两个点的线将是测地线。仔细检查点,以免出现共享边,重叠和其他类型的相交的错误。

单环多边形

以下示例指定了一个带外部环而没有内部环(或孔)的 GeoJSON Polygon。第一个和最后一个坐标必须匹配才能关闭多边形:

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

对于带有单个环的多边形,环不能自相交。

多环多边形

对于具有多个环的多边形:

  • 首先描述的环必须是外环。

  • 外圈不能自相交。

  • 任何内环必须完全被外环容纳。

  • 内圈不能相交或重叠。内圈不能共享边缘。

以下示例表示一个带内环的 GeoJSON 多边形:

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

带内环的多边形图。

MultiPoint

2.6 版的新功能:要求Versions

GeoJSON MultiPoint嵌入式文档对点列表进行编码。

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

MultiLineString

2.6 版的新功能:要求Versions

以下示例指定了 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 ] ]
  ]
}

MultiPolygon

2.6 版的新功能:要求Versions

以下示例指定了 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 ] ] ]
  ]
}

GeometryCollection

2.6 版的新功能:要求Versions

以下示例存储 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 ] ]
       ]
     }
  ]
}