GeoJSON对象


进入MongoDB中文手册(4.2版本)目录

1 概述

MongoDB支持本章节列出的GeoJSON对象类型。
要指定GeoJSON数据,请使用具有以下内容的嵌入式文档:

  • 一个GeoJSON对象类型的命名为type的字段;
  • 以及一个指定对象坐标的coordinates字段。
    如果指定纬度和经度坐标,请先列出经度(longitude ),然后再列出纬度(纬度)
    • 有效的经度值介于-180和之间180,并且包括-180和180;
    • 有效的纬度值介于-90和之间90,并且包括-90和90。
<field>: { type: <GeoJSON type> , coordinates: <coordinates> }

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

2 Point

以下示例指定了GeoJSON Point

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

3 LineString

以下示例指定了GeoJSON LineString:

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

4 Polygon

Polygons由GeoJSON LinearRing坐标数组组成。这些 LinearRings都是闭合线(Closed LineStrings)。闭合线(Closed LineStrings)的至少具有四个坐标对(coordinate pairs),并指定与第一个和最后一个坐标相同的位置。
连接曲面上两个点(point)的线可能包含也可能不包含连接平面上这两个点的同一组坐标。连接曲面上两个点的线将是测地线(geodesic)。仔细检查point,以免出现共享边,重叠和其他相交的类型(types of intersections)的错误。

4.1 单环多边形(Polygons with a Single Ring)

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

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

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

4.2 多环多边形(Polygons with Multiple Rings)

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

  • 描述的第一个环必须是外环。
  • 外环不能自相交。
  • 任何内环必须完全由外环容纳。
  • 内环不能相交或重叠。内环不能共享边缘。

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

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

在这里插入图片描述

5 MultiPoint

对应版本参见版本
GeoJSON MultiPoint 的文档为点的列表:

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

6 MultiLineString

对应版本参见版本
以下示例指定了一个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 ] ]
  ]
}

7 MultiPolygon

对应版本参见版本
以下示例指定了一个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 ] ] ]
  ]
}

8 空间集合(GeometryCollection)

对应版本参见版本
以下示例存储了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 ] ]
       ]
     }
  ]
}


进入MongoDB中文手册(4.2版本)目录

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值