2017-09-07 5 views
2

J'expérimente avec un client Java pour stocker des données spatiales dans MongoDB, mais je suis frappé l'exception:Codec MongoDB personnalisé pour JTS (GeoTools)?

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

Je suppose que mon client Java ne comprend pas un codec pour les classes JTS. Je pensais qu'une telle bibliothèque existerait car il semble que ce soit une chose assez commune à vouloir faire. Je n'ai rien trouvé qui soit évidemment (pour moi au moins) ce que je cherche.

Une telle chose existe-t-elle? Si oui, y a-t-il une dépendance que je peux ajouter à mon fichier pom.xml pour inclure cette fonctionnalité? Ou dois-je écrire mon propre codec?

Merci

Répondre

0

GeoTools fournit une mongodb-plugin non pris en charge qui devrait fournir cette fonctionnalité. Vous devez ajouter

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

à votre pom et d'ajouter le référentiel suivant.

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

Remarque c'est un module non pris en charge il peut manquer la documentation et la fonctionnalité. Donc, des commentaires sur la liste des utilisateurs seraient utiles et les PR seraient plus utiles.

+0

Merci - J'aurais dû mentionner que j'ai trouvé cela, mais je n'ai pas poursuivi car il n'est pas pris en charge. Il n'y avait aucune indication que l'utilisation a été recommandée. Je vais lire dans ce document, mais trois ne garantit pas que j'aurai le temps de l'implémenter. En note, je suis capable d'écrire un JSONObject à la place de l'instance POJO et pour l'instant cela fonctionnera jusqu'à ce que j'obtienne un codec fonctionnel. –

+0

J'ai marqué votre réponse comme la réponse parce que je pense que c'est la seule vraie réponse à la question, basée sur mes recherches. L'écriture d'un JSONObject est une alternative comme je l'ai mentionné. –