MongoDB geointersect无法找到大多边形

时间:2016-06-27 02:25:26

标签: mongodb geospatial

我正在使用mongo存储一些地理定位数据,目的是使用$ geointersect重新获取它们。具体来说,我将此文档存储在我的db:

  {
    "loc": {
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              -179.875,
              -89.875
            ],
            [
              179.875,
              -89.875
            ],
            [
              179.875,
              89.875
            ],
            [
              -179.875,
              89.875
            ],
            [
              -179.875,
              -89.875
            ]
          ]
        ]
      },
      "crs": {
        "type": "name",
        "properties": {
          "name": "urn:x-mongodb:crs:strictwinding:EPSG:4326"
        }
      },
      "type": "Feature",
      "properties": {}
    },
    "_id": "576af8e31d41c87fa1f1d04f"
  }

您可能会注意到几乎涵盖了整个世界。现在我为$ geointersect查询输入的坐标无关紧要,它永远不会被返回...有谁知道为什么?

我正在使用的查询示例可能是:

[
  {
    "loc.geometry": {
      "$geoIntersects": {
        "$geometry": {
          "type": "Polygon",
          "coordinates": [
            [
              [
                13.4307861328125,
                41.599013054830216
              ],
              [
                13.9801025390625,
                41.599013054830216
              ],
              [
                13.9801025390625,
                41.80407814427234
              ],
              [
                13.4307861328125,
                41.80407814427234
              ],
              [
                13.4307861328125,
                41.599013054830216
              ]
            ]
          ]
        }
      }
    }
  },
  {
    "loc": 1
  }
]

当然,查询的坐标包含在保存文档中的多边形内(我的意思是......它和世界一样大,呃!)但是由于某种原因它找不到任何匹配...我有点失落。

1 个答案:

答案 0 :(得分:0)

现在就调查一下。如果多边形是实心的并且比地球的半球大,那么mongo会返回该区域外的所有东西。在geoWithin文档中查看他们的大多数和crs