1

我是 Mongo C# 驱动程序的新手,我正在尝试在 C# 中创建一个相交查询。我的函数在 Javascript 中工作,但我在 Mongo 驱动程序中的一些类上苦苦挣扎。

目前我的 GeoJson 拉得很好,但是当我去创建要传递给相交查询的对象时,我似乎没有正确的参数。目前我正在使用以下帖子对我的过滤器进行建模: 从 MongoDB 加载完全包含已知多边形的多边形

如何将 geojson 字符串转换为“坐标”列表以创建 GeoJsonLinearRingCoordinates 对象?

这是我正在尝试使用的多边形示例(俄亥俄州卡罗尔县):

{[  [    
  [      -80.861994,      40.599404    ],    
  [      -80.863567,      40.555411    ],    
  [      -80.92092,      40.556315    ],    
  [      -80.924566,      40.467975    ],    
  [      -80.940153,      40.468349    ],    
  [      -80.941911,      40.4247    ],    
  [      -81.100097,      40.428928    ],    
  [      -81.212309,      40.433457    ],    
  [      -81.269951,      40.433486    ],    
  [      -81.264744,      40.565042    ],    
  [      -81.321659,      40.566648    ],    
  [      -81.317739,      40.651579    ],    
  [      -81.24125,      40.650534    ],    
  [      -81.237227,      40.723542    ],    
  [      -81.198599,      40.729172    ],    
  [      -81.087289,      40.727816    ],    
  [      -80.917172,      40.726934    ],    
  [      -80.918125,      40.643464    ],    
  [      -80.860822,      40.64257    ],    
  [      -80.861994,      40.599404    ]  
]]}

这是我在 Mongo shell 中使用的 JavaScript 查询:

db.MapPoints.find({ "GeoPoint.coordinates": { $geoIntersects: { $geometry: region.GeoJson.geometry } } })
4

1 回答 1

1

我创建了 Mongo 驱动程序测试类的快速修改,以获取我需要继续前进的对象。我不确定这是否适用于我的所有多边形,但它已经解决了当前的问题。如果其他人有更好的方法来做到这一点,请分享。谢谢!

    private GeoJsonPolygon<GeoJson2DCoordinates> GetMongoPolygon(string json)
    {
        return BsonSerializer.Deserialize<GeoJsonPolygon<GeoJson2DCoordinates>>(json);
    }
于 2016-05-22T17:00:35.807 回答