Геометрические данные (GeoJSON) не отображаются на моем уровне геосервера (подключен к Mongo)

#mongodb #geoserver

#mongodb #геосервер

Вопрос:

В настоящее время работает Geoserver 2.15. У меня есть база данных Mongo с данными о местоположении GeoJSON. Я могу подключиться к своей базе данных Mongo с помощью плагина gt-mongo, и я запустил индекс 2dsphere для своих геометрических данных. Слой отображается, и я опубликовал его через Geoserver, однако, когда я смотрю на вывод KML / GML / GeoJSON (из предварительного просмотра слоя), данных геометрии там нет. Вместо этого Geoserver сообщает, что поле геометрии равно «null», хотя я знаю, что там есть данные.

Документ Mongo (соответствующие поля геометрии):

 'feature_collection': {
    'features: [ {
         'geometry': { "type":"Point", 
         'coordinates: [-1.3696973576336684, 51.828414753283056]
    } ]
}
 

Поле геометрии содержит типы «Точка» и «Полигон», а также может быть пустым в зависимости от документа.

Файл схемы, созданный Geoserver при добавлении слоя:

     "typeName" : "location" ,
    "userData" : {
        "collection" : "location"} ,
    "geometryDescriptor" : {
        "localName" : "feature_collection.features.geometry" ,
         "crs" : {
              "type" : "name" ,
               "properties" : {
                   "name" : "urn:ogc:def:crs:EPSG:4326"}}} ,
    "attributeDescriptors" : [

        { "localName" : "extended_data.feature_collection.features.geometry" ,
        "type" : {
            "binding" : "org.locationtech.jts.geom.Geometry"} ,
        "userData" : {
            "encoding" : "GeoJSON" ,
            "mapping" : ".feature_collection.features.geometry"}
        }]
    }
 

Как я могу заставить GeoServer отображать / распознавать геометрические данные, которые есть в моей базе данных?

Комментарии:

1. У вас могут быть недопустимые геометрии, из документов «Самопересекающиеся полигоны — распространенная проблема с данными, препятствующая функционированию MongoDBDataStore. Пожалуйста, обратите внимание, что самопересечение может возникнуть из-за преобразования в координаты WGS84 (что является необходимым предварительным шагом для импорта данных в MongoDB), даже если они не существовали в исходном наборе данных «.

2. Я не вижу никаких ошибок при запуске индекса / добавлении слоя или в журналах сервера, когда я запрашиваю вывод GML. Из того, что я видел, эти ошибки, как правило, появляются при добавлении или проверке слоя.

3. Может ли это быть связано с тем фактом, что «объекты» представляют собой массив геометрических точек, а не один отдельный геометрический объект? Похоже, у плагина есть некоторые проблемы с распознаванием других свойств из моей базы данных в этом формате.

4. Вероятно, вам следует преобразовать это в многоточечное значение, а не в массив

5. Извините, я думаю, это было неясно. Это не будет многоточечным, поле Mongo уровня «features» представляет собой массив встроенных документов, которые могут содержать, например, как геометрию «point», так и геометрию «polygon». Это уже коллекция функций geojson