#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