2015-08-30 2 views
1

Трудно найти GeoJSON в MongoDb C# Driver.MongoDb C# - Как хранить 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.

Есть ли образец или документация для C# с BsonDocument и GeoJSON?

Любое другое предложение вставить значение GeoJSON?

ответ

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() } 
} 
+0

То же дело здесь http://stackoverflow.com/questions/11137127/store-geojson-polygons-in-mongodb – CallMeLaNN

Смежные вопросы