Пользовательский кодек MongoDB для JTS (GeoTools)?

Я экспериментирую с клиентом Java для хранения пространственных данных в MongoDB, однако я сталкиваюсь с исключением:

org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.vividsolutions.jts.geom.Point.

Я предполагаю, что мой Java-клиент не включает кодек для классов JTS. Я думал, что такая библиотека будет существовать, поскольку это кажется довольно обычным делом. Я не нашел ничего, что явно (по крайней мере для меня) то, что я ищу.

Существует ли такая вещь? Если да, то есть ли зависимость, которую я могу добавить в свой файл pom.xml, чтобы включить эту функцию? Или мне нужно написать свой собственный кодек?

Спасибо


person Mike Stoddart    schedule 07.09.2017    source источник


Ответы (1)


GeoTools предоставляет неподдерживаемый mongodb-plugin, который должен обеспечивать эту функциональность. Вам нужно добавить

<dependency>
   <groupId>org.geotools</groupId>
   <artifactId>gt-mongodb</artifactId>
   <version>${geotools.version}</version>
 </dependency>

в свой pom и добавьте следующий репозиторий.

  <repository>
      <id>osgeo</id>
      <name>Open Source Geospatial Foundation Repository</name>
      <url>http://download.osgeo.org/webdav/geotools/</url>
  </repository>

Примечание: это неподдерживаемый модуль, поэтому в нем может отсутствовать документация и функциональность. Таким образом, обратная связь по списку пользователей была бы полезной, а PR — наиболее полезным.

person Ian Turton    schedule 08.09.2017
comment
Спасибо - я должен был упомянуть, что нашел это, но я не преследовал его, поскольку он не поддерживается. Не было никаких указаний на то, что его использование было рекомендовано. Я прочитаю это, но три не гарантируют, что у меня будет время реализовать это. В качестве примечания я могу написать JSONObject вместо экземпляра POJO, и пока это будет работать, пока я не получу работающий кодек. - person Mike Stoddart; 08.09.2017
comment
Я отметил ваш ответ как ответ, потому что я думаю, что это единственный реальный ответ на вопрос, основанный на моих поисках. Написание JSONObject является альтернативой, как я уже упоминал. - person Mike Stoddart; 08.09.2017