GeoJSON对象

    在本页面

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

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

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

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

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

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

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

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

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

    Point

    以下 example 指定了 GeoJSON

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

    LineString

    以下 example 指定了GeoJSONLineString

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

    多边形

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

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

    单环多边形

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

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

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

    具有多个环的多边形

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

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

    • 外圈不能 self-intersect。

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

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

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

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

    Diagram of a Polygon with internal ring.

    多点

    需要的版本

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

    1. {
    2. type: "MultiPoint",
    3. coordinates: [
    4. [ -73.9580, 40.8003 ],
    5. [ -73.9498, 40.7968 ],
    6. [ -73.9737, 40.7648 ],
    7. [ -73.9814, 40.7681 ]
    8. ]
    9. }

    MultiLineString

    需要的版本

    以下 example 指定了 GeoJSON MultiLineString:

    1. {
    2. type: "MultiLineString",
    3. coordinates: [
    4. [ [ -73.96943, 40.78519 ], [ -73.96082, 40.78095 ] ],
    5. [ [ -73.96415, 40.79229 ], [ -73.95544, 40.78854 ] ],
    6. [ [ -73.97162, 40.78205 ], [ -73.96374, 40.77715 ] ],
    7. [ [ -73.97880, 40.77247 ], [ -73.97036, 40.76811 ] ]
    8. ]
    9. }

    MultiPolygon

    需要的版本

    以下 example 指定了GeoJSONMultiPolygon:

    1. {
    2. type: "MultiPolygon",
    3. coordinates: [
    4. [ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.9814, 40.7681 ], [ -73.958, 40.8003 ] ] ],
    5. [ [ [ -73.958, 40.8003 ], [ -73.9498, 40.7968 ], [ -73.9737, 40.7648 ], [ -73.958, 40.8003 ] ] ]
    6. ]
    7. }

    GeometryCollection

    需要的版本

    以下 example store GeoJSON类型 GeometryCollection的坐标:

    1. {
    2. type: "GeometryCollection",
    3. geometries: [
    4. {
    5. type: "MultiPoint",
    6. coordinates: [
    7. [ -73.9580, 40.8003 ],
    8. [ -73.9498, 40.7968 ],
    9. [ -73.9737, 40.7648 ],
    10. [ -73.9814, 40.7681 ]
    11. ]
    12. },
    13. {
    14. type: "MultiLineString",
    15. coordinates: [
    16. [ [ -73.96943, 40.78519 ], [ -73.96082, 40.78095 ] ],
    17. [ [ -73.96415, 40.79229 ], [ -73.95544, 40.78854 ] ],
    18. [ [ -73.97162, 40.78205 ], [ -73.96374, 40.77715 ] ],
    19. [ [ -73.97880, 40.77247 ], [ -73.97036, 40.76811 ] ]
    20. ]
    21. }
    22. ]
    23. }

    译者:杨帅

    校对:杨帅

    参见

    原文 - GeoJSON Objects