Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb$geoIntersects给出错误的查询结果_Mongodb_Geolocation_Mongodb Query_Polygon_Geo - Fatal编程技术网

Mongodb$geoIntersects给出错误的查询结果

Mongodb$geoIntersects给出错误的查询结果,mongodb,geolocation,mongodb-query,polygon,geo,Mongodb,Geolocation,Mongodb Query,Polygon,Geo,我在mongodb中遇到了一个相当奇怪的问题,当我试图获取存储的多边形中哪些与给定区域相交,以及在不应该相交时的抛出结果 这是我存储的内容: 它是mongo中存储的唯一一个元素,在地图中看起来像这样: 现在,这个问题(以及其他问题)给我带来了麻烦: db.getCollection('collection').find({"geometry": {"$geoIntersects": {"$geometry":{"coordinates":[[ [ -25.

我在mongodb中遇到了一个相当奇怪的问题,当我试图获取存储的多边形中哪些与给定区域相交,以及在不应该相交时的抛出结果

这是我存储的内容:

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

现在,这个问题(以及其他问题)给我带来了麻烦:

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"}}}})
地图上的哪个区域看起来像这样(包括前面提到的区域):

正如你在地图上看到的(或者用坐标进行简单的数学计算),这些区域根本不相交,但mongo坚持认为它们是按照查询结果进行的。 我尝试在$geometry操作符中使用以下内容,但结果相同

crs: {
    type: "name",
    properties: { name: "urn:x-mongodb:crs:strictwinding:EPSG:4326" }
}
最后但并非最不重要的一点是,如果查询中的区域位于存储区域的东/西/南,则结果是预期结果,问题出在主多边形以北附近的区域

我做错了什么


如果需要更多数据,请告诉我,并感谢大家抽出时间。

我面临类似问题,有人找到了解决方案吗?