Mongodb $ geoIntersects提供错误的查询结果

时间:2017-02-14 18:41:39

标签: mongodb geolocation mongodb-query polygon geo

当我试图让我存储的多边形与给定区域相交时,我会面临一个与mongodb相当奇怪的问题,并且当它应该“#t”时,它会抛出结果。

这是我存储的内容: enter image description here

它是存储在mongo中的唯一一个元素,在地图中看起来像这样: enter image description here

现在这是给我带来麻烦的查询(以及其他):

db.getCollection('collection').find({"geometry": {"$geoIntersects": {"$geometry":{"coordinates":[[
        [
          -25.13671875,
          16.636191878397664
        ],
        [
          -21.796875,
          16.636191878397664
        ],
        [
          -21.796875,
          19.145168196205297
        ],
        [
          -25.13671875,
          19.145168196205297
        ],
        [
          -25.13671875,
          16.636191878397664
        ]]],"type":"Polygon"}}}})

在地图中看起来像这样(包括前面提到的区域): enter image description here

正如你在地图中看到的那样(或用坐标做简单的数学计算)这些区域根本不相交,但mongo坚持认为它们会在查询给我结果时这样做。  我已经尝试在 $ geometry 运算符中使用以下内容,但结果是相同的

crs: {
    type: "name",
    properties: { name: "urn:x-mongodb:crs:strictwinding:EPSG:4326" }
}

最后但并非最不重要的是,如果查询中的区域是存储区域的东/西/南,结果是预期结果,则问题出在主要多边形以北的区域。

我做错了什么?

如果需要更多数据,请告诉我,谢谢大家的时间。

0 个答案:

没有答案