【问题标题】:MongoDb C# - How to store GeoJSON in a documentMongoDb C# - 如何将 GeoJSON 存储在文档中
【发布时间】:2015-11-24 11:22:19
【问题描述】:

在 MongoDb C# Driver 中很难找到 GeoJSON。

我尝试创建这样的文档:

new BsonDocument()
{
    { "PointType", "Building"},
    { "Name", "My Place"},
    { "Location", ??? }
}

并尝试在上面的??? 中填写类似GeoJson.Point(new GeoJson2DCoordinates(0.0000, 0.0000)).ToBsonDocument() 的内容。

但是一旦我为Location 创建索引并尝试插入此文档,MongoDb 就会不高兴。它抛出location object expected, location array not in correct format

是否有任何带有 BsonDocument 和 GeoJSON 的 C# 示例或文档?

还有其他插入 GeoJSON 值的建议吗?

【问题讨论】:

    标签: c# mongodb mongodb-.net-driver


    【解决方案1】:

    我应该使用IndexKeys.Geo2DSphere 而不是IndexKeys.Geo2D 来存储 GeoJSON 点。

    var keys = Builders<BsonDocument>.IndexKeys.Geo2DSphere("Location");
    await collection.Indexes.CreateOneAsync(keys);
    

    那我可以做:

    new BsonDocument()
    {
        { "PointType", "Building"},
        { "Name", "My Place"},
        { "Location", GeoJson.Point(new GeoJson2DCoordinates(lng, lat)).ToBsonDocument() }
    }
    

    【讨论】:

    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 2012-06-23
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多