2016-05-22 5 views
1

Я новичок в драйвере Mongo C#, и я пытаюсь создать запрос на пересечение в C#. У меня есть функция, работающая в Javascript, но я борюсь с некоторыми классами в драйвере Mongo.Mongo C# Driver - GeoJson Polygon to GeoJsonLinearRingCoordinates <GeoJson2DCoordinates>

На данный момент у меня есть поцелуй GeoJson, но когда я иду, чтобы создать объект для перехода к запросу пересечения, у меня нет подходящих параметров. На данный момент я использую следующий пост для моделирования моего фильтра: Loading polygons from MongoDB that entirely contain a known polygon

Как преобразовать строку geojson в список «координат» для создания объекта GeoJonnLinearRingCoordinates?

Вот пример многоугольника, который я пытаюсь использовать (Carroll округа Огайо):

{[ [  
    [  -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 ] 
]]} 

А вот мой запрос JavaScript, который я использую в оболочке Монго:

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

ответ

0

Я создал быструю модификацию тестового класса драйвера Mongo, чтобы получить объект, который мне нужен для продвижения вперед. Я не уверен, что это будет работать для всех моих полигонов, но оно преодолевает текущую проблему. Если у кого-то есть лучший способ сделать это, пожалуйста, поделитесь. Благодаря!

private GeoJsonPolygon<GeoJson2DCoordinates> GetMongoPolygon(string json) 
    { 
     return BsonSerializer.Deserialize<GeoJsonPolygon<GeoJson2DCoordinates>>(json); 
    } 
Смежные вопросы