GeoJSON对象

在本页面

总览

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

要指定 GeoJSON 数据,请使用嵌入式文档:

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

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

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

  • 有效的经度值介于**[-180 180]**。

  • 有效纬度值介于**[-90 90]**。

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

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

Point

以下 example 指定了 GeoJSON

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

LineString

以下 example 指定了GeoJSONLineString

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

多边形

多边形由一组 GeoJSON LinearRing坐标数组组成。这些LinearRings已关闭LineStrings。 Closed LineStrings至少有四个坐标对,并指定与第一个和最后一个坐标相同的位置。

连接曲面上两个点的 line 可能包含也可能不包含在平面上连接这两个点的同一组 co-ordinates。连接曲面上两点的 line 将是一个测地线。仔细检查点以避免共享边缘的错误,以及重叠和其他类型的交叉点。

单环多边形

以下 example 指定具有外环并且没有内环(或孔)的 GeoJSON Polygon。第一个和最后一个坐标必须 order 在 order 中才能关闭多边形:

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

对于具有单个环的多边形,环不能 self-intersect。

具有多个环的多边形

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

  • 第一个描述的环必须是外环。

  • 外圈不能 self-intersect。

  • 任何内圈必须完全由外圈包含。

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

以下 example 表示具有内部环的 GeoJSON 多边形:

{
    type : "Polygon",
    coordinates : [
    [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ],
    [ [ 2 , 2 ] , [ 3 , 3 ] , [ 4 , 2 ] , [ 2 , 2 ] ]
    ]
  }
Diagram of a Polygon with internal ring.

多点

需要的版本

GeoJSONMultiPoint嵌入式文档编码点列表。

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

MultiLineString

需要的版本

以下 example 指定了 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

需要的版本

以下 example 指定了GeoJSONMultiPolygon:

{
  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

需要的版本

以下 example store 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 ] ]
           ]
        }
    ]
  }

译者:杨帅

校对:杨帅

最后更新于