Драйвер Mongo C # - от полигона GeoJson до GeoJsonLinearRingCoordinates ‹GeoJson2DCoordinates›

Я новичок в драйвере 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    ]  
]]}

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

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

person Lereveme    schedule 22.05.2016    source источник


Ответы (1)


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

    private GeoJsonPolygon<GeoJson2DCoordinates> GetMongoPolygon(string json)
    {
        return BsonSerializer.Deserialize<GeoJsonPolygon<GeoJson2DCoordinates>>(json);
    }
person Lereveme    schedule 22.05.2016